设二部图,其中,,为与点相连的边的集合。若且其中任意两条边没有公共顶点,即不存在长度的路径,则称为匹配(matching),其可表示为向量满足对任意有。若使得的每条边都至少有一个顶点属于,则称为覆盖(cover),其可表示为向量使得对任意有。
设是二部图对应的关联矩阵,即,则 \begin{align*} \forall v \in \Vcal, \sum_{e \in \delta(v)} x_e \le 1 & \Longleftrightarrow \Av \xv \le \ev \\ \forall (u,v) \in \Ecal, ~ z_u + z_v \ge 1 & \Longleftrightarrow \Av^\top \zv \ge \ev \end{align*}
最大匹配
所有匹配中,势最大的称为最大匹配,求解最大匹配可形式化成 \begin{align} \label{eq: max-matching} \max_{\xv} \{ \ev^\top \xv : \xv \in \Zbb_+^{|\Ecal|}, ~ \Av \xv \le \ev \} \end{align} 由于第一个约束的存在,这是一个整数规划,难以直接求解,将可行域放松成连续域可得线性规划 \begin{align} \label{eq: relax-max-matching} \max_{\xv} \{ \ev^\top \xv : \xv \ge \zerov, ~ \Av \xv \le \ev \} \end{align} 注意,由于二部图的关联矩阵必然是全幺模矩阵,故也是全幺模矩阵,又是整数向量,故凸多面体的极点是整数向量。由于线性规划必然在极点处取最优,因此式(\ref{eq: relax-max-matching})的最优解就是式(\ref{eq: max-matching})的最大匹配。
上述将离散整数约束替换为连续实数约束的操作,其实是将可行域由匹配集合扩大成其凸包。
定理1:记匹配对应的表示向量为,,定义为: \begin{align*} \Qcal (\Gcal) = \{ \xv \mid \xv \ge \zerov, ~ \Av \xv \le \ev \} = \left\{ \xv \in \Rbb_+^{|\Vcal|} \mid \forall v \in \Vcal, \sum_{e \in \delta(v)} x_e \le 1 \right\} \end{align*} 那么。
证明:正向比较简单,对任意,易知 \begin{align*} \sum_{e \in \delta(v)} x_e & = \sum_{e \in \delta(v)} \sum_{i \in [n]} \alpha^{(\Mcal_i)} x^{(\Mcal_i)}_e = \sum_{i \in [n]} \alpha^{(\Mcal_i)} \underbrace{\sum_{e \in \delta(v)} x^{(\Mcal_i)}_e}_{\le 1} \le \sum_{i \in [n]} \alpha^{(\Mcal_i)} = 1 \end{align*} 其中不等号是因为对任意匹配,点相连的边中最多只有一条属于该匹配。
反向较为麻烦,对任意,设。下面对进行归纳,若,则就是零匹配;若,显然可以表示成零匹配和单边匹配的凸组合。若,分两种情况讨论:
不是匹配,则包含长度的路径,不妨就设为,由于,故,否则。引入 \begin{align*} d_e = \begin{cases} 1 & e = e_1 \\ -1 & e = e_2 \\ 0 & \ow \end{cases} \end{align*} 现考虑,当增大时,增大,减小,当变为零时,记此时的为,定义;同理对于,当增大时,减小,增大,当变为零时,记此时的为,定义,那么 \begin{align*} \epsilon_2 \epsilon_1 \dv = \epsilon_2 \xv_1 - \epsilon_2 \xv = \epsilon_1 \xv - \epsilon_1 \xv_2 \Longrightarrow \xv = \frac{\epsilon_2}{\epsilon_1 + \epsilon_2} \xv_1 + \frac{\epsilon_1}{\epsilon_1 + \epsilon_2} \xv_2 = \conv\{ \xv_1, \xv_2 \} \end{align*} 注意,由归纳假设知,于是。
是匹配,不妨设且,定义 \begin{align*} \Mcal_i \triangleq \{ e_i, e_{i+1}, \ldots, e_n \}, \quad \xv^{(\Mcal_i)} = [\underbrace{0, \ldots, 0}_{1:i-1}, \underbrace{1, 1, \ldots, 1}_{i:n}, \underbrace{0, \ldots, 0}_{n+1:|\Ecal|}], \quad i \in [n] \end{align*} 则 \begin{align*} \xv & = \begin{bmatrix} x_{e_1} \\ x_{e_2} \\ x_{e_3} \\ \vdots \\ x_{e_n} \\ \zerov \end{bmatrix} = \begin{bmatrix} x_{e_1} \\ x_{e_1} \\ x_{e_1} \\ \vdots \\ x_{e_1} \\ \zerov \end{bmatrix} + \begin{bmatrix} 0 \\ x_{e_2} - x_{e_1} \\ x_{e_2} - x_{e_1} \\ \vdots \\ x_{e_2} - x_{e_1} \\ \zerov \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \\ x_{e_3} - x_{e_2} \\ \vdots \\ x_{e_3} - x_{e_2} \\ \zerov \end{bmatrix} + \cdots \\ & = x_{e_1} \xv^{(\Mcal_1)} + (x_{e_2} - x_{e_1}) \xv^{(\Mcal_2)} + (x_{e_3} - x_{e_2}) \xv^{(\Mcal_3)} \\ & \qquad + \cdots + (x_{e_n} - x_{e_{n-1}}) \xv^{(\Mcal_n)} + (1 - x_{e_n}) \zerov \in \Pcal (\Gcal) \end{align*}
由定义知的任意极点都是的匹配,反过来结论也成立。
定理2:的任意匹配都是的极点。
证明:对任意匹配和非零向量,不妨设,注意,因此总有一个不属于,即总有一个不属于,故是的极点。
完美匹配
若匹配使得在子图中,所有点都有且仅有一条相连的边,则称为完美匹配(perfect matching)。完美匹配可表示为向量满足对任意有,显然完美匹配是匹配的真子集。
定理3:设为的所有完美匹配构成的凸包,定义为: \begin{align*} \Qcal^\star (\Gcal) = \{ \xv \mid \xv \ge \zerov, ~ \class{blue}{\Av \xv = \ev} \} = \left\{ \xv \in \Rbb_+^{|\Vcal|} \mid \forall v \in \Vcal, \class{blue}{\sum_{e \in \delta(v)} x_e = 1} \right\} \end{align*} 则。
证明:一方面,对任意,易知 \begin{align*} \sum_{e \in \delta(v)} x_e & = \sum_{e \in \delta(v)} \sum_{i \in [n]} \alpha^{(\Mcal_i^\star)} x^{(\Mcal_i^\star)}_e = \sum_{i \in [n]} \alpha^{(\Mcal_i^\star)} \sum_{e \in \delta(v)} x_e^{(\Mcal_i^\star)} = \sum_{i \in [n]} \alpha^{(\Mcal_i^\star)} = 1 \Longrightarrow \xv \in \Qcal^\star (\Gcal) \end{align*}
另一方面,对任意,设。用反证法,若其凸组合表示中存在不完美匹配,设不是中边的顶点,则 \begin{align*} \sum_{e \in \delta(v)} x_e = \sum_{e \in \delta(v)} \sum_{i \in [n] \setminus \{j\}} \alpha^{(\Mcal_i)} x_e^{(\Mcal_i)} = \sum_{i \in [n] \setminus \{j\}} \alpha^{(\Mcal_i)} \sum_{e \in \delta(v)} x_e^{(\Mcal_i)} \le \sum_{i \in [n] \setminus \{j\}} \alpha^{(\Mcal_i)} < 1 \end{align*} 这和的定义矛盾,故的凸组合表示中不存在不完美匹配,即。
定理4:的任意完美匹配都是的极点。
证明:完美匹配也是匹配,因此是的极点,故无法由中其它点的凸组合表示,又,因此也无法由中其它点的凸组合表示,从而也是的极点
对于完全二部图有,对任意有 \begin{align*} \xv \in \Rbb_+^{n^2}, ~ \forall v \in \Vcal, \sum_{e \in \delta(v)} x_e = 1 \end{align*} 又每个点恰有条相连的边,因此也可以写成一个的双随机矩阵(所有行和、列和均为)。另一方面,对于完美匹配,每个点有且仅有一条相连的边,其对应的可以写成置换矩阵(每行、每列有且仅有一个,其余为零),由定理4知双随机矩阵集合的极点是置换矩阵,这就是Birkhoff-von Neumann定理。
König定理
前文已述最大匹配问题可放松成线性规划 \begin{align*} \max_{\xv} \{ \ev^\top \xv : \xv \ge \zerov, ~ \Av \xv \le \ev \} \end{align*} 引入Lagrange对偶函数,易知 \begin{align*} \frac{\partial \Lcal}{\partial \xv} = \ev + \yv - \Av^\top \zv = \zerov \Longrightarrow \Av^\top \zv - \ev = \yv \geq \zerov \end{align*} 故对偶问题为 \begin{align} \label{eq: relax-min-vertex-cover} \min_{\zv} \{ \ev^\top \zv : \zv \ge \zerov, ~ \Av^\top \zv \ge \ev \} \end{align} 显然这是将最小点覆盖问题 \begin{align} \label{eq: min-vertex-cover} \min_{\zv} \{ \ev^\top \zv : \zv \in \Zbb_+^{|\Vcal|}, ~ \Av^\top \zv \ge \ev \} \end{align} 的离散可行域放松成连续域得到的线性规划。同理由以及是全幺模矩阵知凸多面体的极点是整数向量。由于线性规划必然在极点处取最优,因此式(\ref{eq: relax-min-vertex-cover})的最优解就是式(\ref{eq: min-vertex-cover})的最小点覆盖。
综上,最大匹配、最小点覆盖这两类整数规划问题,其最优解就是将整数约束放松后导出的线性规划的最优解,且这两类相应的线性规划互为对偶问题。
定理5:对于二部图,设最大匹配问题的最优值为,最小点覆盖问题的最优值为,则有。
证明:是显然的,因为对最大匹配中的任意一条边,至少要覆盖其中一个顶点。
下面证明另一个方向,若,则,故不妨设非空。对进行归纳,若,易知。若,设是最小点覆盖问题的最优解,由于存在点使得,故根据互补松弛条件可得 \begin{align*} z_v^\star (\Av_{v,:} \xv^\star - 1) = 0 \Longrightarrow 1 = \Av_{v,:} \xv^\star = \sum_{e \in \delta(v)} x_e^\star \end{align*} 又原问题的最优解是最大匹配,故出现在所有的最大匹配中,记为删除点及其相连边后得到的图,于是 \begin{align*} \maxm(\Gcal') = \maxm(\Gcal) - 1 \end{align*} 由归纳假设知,于是 \begin{align*} \minvc(\Gcal) & \le \minvc(\Gcal') + 1 \\ & = \maxm(\Gcal') + 1 \\ & = \maxm(\Gcal) \end{align*}
König定理还可进一步推广,设-匹配对应的表示向量满足对任意有;-点覆盖对应的表示向量满足对任意有,易知有 \begin{align*} \max_{\xv} \{ \cv^\top \xv : \xv \ge \zerov, ~ \Av \xv \le \bv \} = \min_{\zv} \{ \bv^\top \zv : \zv \ge \zerov, ~ \Av^\top \zv \ge \cv \} \end{align*} 即最大-加权-匹配等于最小-加权-点覆盖。
最大流与最小割
类似于最大匹配和最小点覆盖,最大流和最小割也是一组对偶问题。给定有向流网络、源点、汇点,设是以点为终点的入边集合、是以点为起点的出边集合,是对应的关联矩阵,即 \begin{align*} a_{v,e} = \begin{cases} 1 & e \in \delta_{\text{in}} (v) \\ -1 & e \in \delta_{\text{out}} (v) \\ 0 & \ow \end{cases} \end{align*} 为去掉、对应行的子矩阵,注意有向流网络中源点只有出边、汇点只有入边,因此其实也是删除、及其所有相连边后的有向图的关联矩阵,故是全幺模矩阵。
最大流问题可形式化为线性规划: \begin{align*} \max_{\xv} \{ \av^\top \xv : \zerov \le \xv \le \cv, ~ \Av' \xv = \zerov \} \end{align*} 其中是中汇点对应的行,约束流的上下界,约束非源点、汇点的流量要守恒。注意 \begin{align*} \{ \xv \mid \zerov \le \xv \le \cv, ~ \Av' \xv = \zerov \} \Longleftrightarrow [\Av'; -\Av'; \Iv; -\Iv] \xv \leq [\zerov; \zerov; \cv; \zerov] \end{align*} 由是全幺模矩阵知也是全幺模矩阵,若流量上限是整数向量,则可行域的极点也是整数向量,即最大流是整数流。
引入Lagrange对偶函数,易知 \begin{align*} \frac{\partial \Lcal}{\partial \xv} = \av + \yv - \zv - \Av'^\top \wv' = \zerov \Longrightarrow \Av'^\top \wv' + \zv \ge \av \end{align*} 故对偶问题为 \begin{align*} \min_{\wv', \zv} \{ \cv^\top \zv : \zv \ge \zerov, ~ \Av'^\top \wv' + \zv \ge \av \} \end{align*} 注意 \begin{align*} \{ \zv \mid \zv \ge \zerov, ~ \Av'^\top \wv' + \zv \ge \av \} \Longleftrightarrow [-\Av'^\top, -\Iv; \zerov, -\Iv] [\wv'; \zv] \leq [-\av; \zerov] \end{align*} 由是全幺模矩阵知也是全幺模矩阵,故对偶问题的最优解、也是整数向量。
的维度为,与的行对应,现添加、将其扩充为,与的行对应,于是。由于非负,故应尽量的小,从而,即对有。
定义,,显然、,将边分为四类:
- 为所有起点、终点均属于的边的集合;
- 为所有起点、终点均属于的边的集合;
- 为所有起点属于、终点属于的边的集合;
- 为所有起点属于、终点属于的边的集合;
注意在将所有中的边删除后,、不再连通,因此称为割(cut)。
由于都是整数,因此对任意有,因此 \begin{align*} \cv^\top \zv^\star \ge \sum_{e \in \delta_{\text{out}}(\Scal)} c_e z_e^\star \ge \sum_{e \in \delta_{\text{out}}(\Scal)} c_e \ge \sum_{e \in \delta_{\text{out}}(\Scal)} x_e^\star \ge \sum_{e \in \delta_{\text{in}}(t)} x_e^\star = \av^\top \xv^\star \ge \cv^\top \zv^\star \end{align*} 其中第一个不等号是因为;第二个不等号是因为对任意有;第三个不等号是因为是边的流量上限;第四个不等号是因为上的流量未必会全部进入汇点,可能会有一部分通过再折回;第五个不等号是因为弱对偶性。
综上所有的不等号都取等号,由此可以得到一些有趣的结论:
- 根据第一个不等号取等号,对任意有,即对任意、、中的边,都有;
- 根据第二个不等号取等号,对任意有,故只可能是、,于是对任意,必然有,否则,与前一个结论矛盾,依此类推,对所有中的点都有。同理,对所有中的点都有;
- 根据第三个不等号取等号,当流量达到最大时,中每条边的流量都达到上限,这个也可由互补松弛条件得到:;
- 根据第四个不等号取等号,上的流量全部进入,不存在折回的情况,即上的流量为零,这个也可由互补松弛条件得到:,故,从而。