[Notes] 图上组合优化问题

基本概念

独立集

点独立集

定义:对于图 \(G=(V,E)\),若 \(V'\subseteq V\) 满足 \(V'\) 中任意不相同的两点都不相邻,则 \(V'\) 为图 \(G\) 的一个点独立集。

  • 点独立数:最大点独立集的大小,记作 \(\alpha_0(G)\)

引理:对于任意图 \(G=(V,E)\),若 \(\forall v\in V,\deg(v)\leq d\),则 \(\alpha_0(G)\geq\dfrac{|V|}{d+1}\)

边独立集

定义:对于图 \(G=(V,E)\),若 \(E'\subseteq E\) 满足 \(E'\) 中任意不相同的两边无公共端点,则 \(E'\) 为图 \(G\) 的一个边独立集。

  • 边独立数:最大边独立集的大小,记作 \(\alpha_1(G)\)

匹配

定义:对于图 \(G=(V,E)\),若 \(E'\subseteq E\) 满足 \(E'\) 中任意不相同的两边无公共端点且 \(E'\)不存在自环,则 \(E'\) 为图 \(G\) 的一个边独立集。

  • 匹配数:最大匹配的大小,记作 \(\nu(G)\)

  • 完美匹配:使得图中所有点均饱和的匹配方案。

定义:对于图 \(G=(V,E)\),若 \(V'\subseteq V\) 满足 \(V'\) 中任意不相同的两点均相邻,则 \(V'\) 为图 \(G\) 的一个团。

  • 最大团大小:记作 \(\omega(G)\)

引理:图 \(G\) 的图与其补图的独立集一一对应。

定理:对于任意图 \(G\)\(\omega(G)=\alpha_0(G)\)

支配集

点支配集

无限图支配集:对于无向图 \(G=(V,E)\),设 \(V'\subseteq V\),如果对于任意 \(y\in(V-V')\),都存在一个 \(x\in V'\),使得 \((x,y)\in E\),则 \(V'\) 为图 \(G\) 的一个点支配集。

  • 点支配数:最小点支配集的大小,记作 \(\gamma_0(G)\)

出/入-支配集:对于有向图 \(G=(V,E)\),设 \(V'\subseteq V\),如果对于任意 \(y\in(V-V')\),都存在一个 \(x\in V'\),使得 \((x,y)\in E\),则 \(V'\) 为图 \(G\) 的一个出支配集;若如果对于任意 \(y\in(V-V')\),都存在一个 \(x\in V'\),使得 \((y,x)\in E\),则 \(V'\) 为图 \(G\) 的一个入支配集。

  • 出支配数:最小出支配集的大小,记作 \(\gamma^{+}(G)\)

  • 入支配数:最小入支配集的大小,记作 \(\gamma^{-}(G)\)

定理 1(极小支配集判定):图 \(G\) 的支配集 \(S\)\(G\)极小点支配集,当且仅当 \(S\)任意节点均满足下列条件之一:

  • \(\exists y\in V-S,\ N(y)\cap S=\{x\}\)
  • \(S\cap N(x)\not=\varnothing\)
  • (\(N(x)\) 表示 \(x\) 的邻域)

定理 2:若图 \(G\) 中无孤立点,\(S\)极小点支配集,则 \(\overline{S}=V-S\) 也为支配集。

定理 3:图 \(G\) 的一个点集 \(S\) 是一个独立支配集,当且仅当 \(S\) 是一个极大独立集。

  • 推论:若无向图 \(G\) 中无孤立点,则 \(G\) 的极大点独立集都是极小支配集,逆命题不一定成立。

定理 4:对于任意图 \(G\)\(\alpha_0(G)\geq \gamma_0(G)\)

边支配集

定义:对于图 \(G=(V,E)\),若 \(E'\subseteq E\) 满足 \(\forall e\in (E-E')\) 都存在 \(E'\) 中的边与其有公共点,则 \(E'\) 为图 \(G'\) 的一个边支配集。

  • 边支配数:最小边支配集的大小,记作 \(\gamma_1(G)\)

覆盖

点覆盖

定义:对于图 \(G=(V,E)\),若 \(V'\subseteq V\) 满足 \(\forall e\in E\) 都有 \(e\) 的至少一个端点属于 \(V'\),则 \(V'\) 为图 \(G\) 的一个点覆盖。

  • 点覆盖数:最小点覆盖的大小,记作 \(\beta_0(G)\)

引理 1:若图 \(G\) 中无孤立点,其点覆盖集必为点支配集,极小点覆盖集不一定为极小点支配集,支配集不一定是点覆盖集。

定理 1:图 \(G\) 的一个点集 \(S\) 是点覆盖集的充分必要条件是其补集 \(V-S\) 是点独立集。

  • 推论:对于任意图 \(G\)\(\alpha_0(G)+\beta_0(G)=|V(G)|\)

定理 2:若图 \(G\) 中无孤立点,其最大匹配 \(M\) 中的所有端点组成的点集 \(V_M\) 是一个点覆盖集。

定理 3:对于任意图 \(G\)\(\nu(G)\leq\beta_0(G)\)

边覆盖

定义:对于图 \(G=(V,E)\),若 \(E'\subseteq E\) 满足 \(\forall v\in V\) 都有 \(v\)\(E'\) 中至少一条边的端点,则 \(E'\) 为图 \(G\) 的一个边覆盖。

  • 边覆盖数:最小边覆盖的大小,记作 \(\beta_1(G)\)

贪心构造:由于每条边至多覆盖两个点,因此考虑求出最大匹配使得覆盖两个点的边尽可能多,在此基础上补齐边覆盖未被覆盖的点即可。

定理 1:若图 \(G\) 中无自环,\(\beta_1(G)+\nu(G)=\beta_1(G)+\alpha_1(G)=|V(G)|\)

定理 2:对于任意图 \(G\)\(\nu(G)\leq\beta_1(G)\),当且仅当 \(G\) 存在完美匹配时等号成立。

无向图匹配

无向图最大匹配

增广路

交错路径起点为非匹配点,由匹配边和非匹配边交替构成。

增广路径起点和终点均为非匹配点交错路径

对称差:两个集合 \(A,B\) 的对称差为 \(A\oplus B =(A-B)\cup(B-A)\)

引理:若 \(M\) 为图 \(G\) 的一个匹配,\(P\) 为某条增广路径,则 \(|M\oplus P|=|M|+1\)

增广路引理:若图 \(G\) 中不存在增广路径,则当前匹配 \(M\) 为图 \(G\) 的最大匹配。

关键边

关键边判定:设 \(M\) 为最大匹配,\(e\in M\)\(e\) 不在任何偶交错路径或交错回路上,则边 \(e\) 为关键边。

可行边判定:设 \(M\) 为最大匹配,若 \(e\in M\)\(e\) 在某条偶交错路径或交错回路上,则边 \(e\) 为可行边。

二分图最大匹配

匈牙利算法

算法过程:从二分图一部的每个点出发 \(\text{dfs}\) 寻找增广路径。

引理:匈牙利算法中每个点至多只会进行一次增广。

Hopcroft-Karp 算法

核心思想:使用多路增广的方式优化匈牙利算法,与 \(\text{Dinic}\) 等网络流求解匹配没有本质区别。

二分图完全匹配

完全匹配:设在带有二分划 \((V_1,V_2)\) 的二分图 \(G=(V, E)\) 中,\(M\)\(G\) 的一个匹配且 \(V_1\) 中的所有点饱和,则 \(M\) 为图 \(G\)\(V_1\)\(V_2\) 的完全匹配(又称完备匹配)。

Hall 定理

Hall 条件\(\forall S\subseteq V, |S|\leq |N(S)|\)

Hall 定理:带有二分划 \((V_1,V_2)\) 的二分图 \(G=(V, E)\) 中存在 \(V_1\)\(V_2\) 的完全匹配,当且仅当 \(V_1\) 满足 Hall 条件。

  • \(|V_1|=|V_2|\) 时,存在完美匹配。(霍尔婚姻定理

二分图博弈

定义:给出一张二分图和起始点,\(A,B\) 两人轮流操作,每次只能选与上一个被选择的点相邻的点,且不能选择已经选择过的点,无法选点的人判负。

定理:二分图博弈中,如果最大匹配一定包含 \(H\),那么 \(H\) 为必胜态,否则为必败态。

  • 推论:如果未规定起始点 \(H\),若最大匹配为完全匹配,先手必败,否则先手必胜。

二分图最佳匹配

最大权匹配:边权和最大的匹配。

最佳匹配:边权和最大的完美匹配

最大权匹配转最佳匹配:将点数较少的集合补齐并添加边使得图被补为完全二分图,将原图中不存在的边边权设置为 \(0\)

KM 算法

核心思想:通过不断调整顶点标号使得许可子图出现完美匹配

标号\(label(x)+label(y)=w(x,y)\)

时间复杂度\(O(|V|^4)\)

二分图上组合优化问题

Kőnig 定理

引理:二分图 \(G\) 的一个最大匹配为 \(M\),则一定可以构造出一个大小为 \(|M|\) 的点覆盖。

  • 构造方法:从二分图 \(R\)所有未被匹配上的点出发,给所有交错可达的点打上标记。\(L\) 部的标记点+\(R\) 部的未标记点构成点覆盖

Kőnig 定理:二分图 \(G\) 中,\(\nu(G)=\beta_0(G)\)

最小点权覆盖集/最大点权独立集

算法:网络最大流求解即可。

DAG 最小路径覆盖

DAG 最小不相交路径覆盖

不相交路径覆盖

  • 每个顶点属于且只属于一条路径。
  • 路径上除终点外每个点出发只有一条边指向路径上的另一顶点。

算法

  • 将点 \(i\) 拆点为 \((x_i, y_i)\),对于边 \((i,j)\),连接 \((x_i, y_j)\)
  • 拼接数量等于边独立集的大小
  • 对于点 \(i\)
    • 只有 \(x_i\) 被匹配,则 \(i\) 为某路径起点。
    • 只有 \(y_i\) 被匹配,则 \(i\) 为某路径终点。
    • \(x_i,y_i\) 均被匹配,则 \(i\) 为某路径上的中介点
  • 中介点尽可能多,则路径数量就会尽可能少,因此求解二分图最大匹配即可。

DAG 最小可相交路径覆盖

算法

  • \(\text{Floyd}\) 求解出传递闭包后,若点 \(i,j\) 连通,则添加边 \((i,j)\)
  • 对加入了传递闭包的新图求解 DAG 最小不相交路径覆盖即可。

最小不相交环覆盖

算法:与 DAG 最小不相交路径覆盖原理类似,若最大匹配 \(M\) 为一个完美匹配,则最小不相交环覆盖存在。

posted @ 2025-06-23 15:46  剑履山河  阅读(22)  评论(0)    收藏  举报