Bruce12138
Machine Learning
Software Enterprise
Graph Theory
Algorithm II
Machine Learning
Software Enterprise
Graph Theory
Algorithm II
  • Algorithm II

    • Contents
    • Lecture 5
    • Lecture 6
    • Lecture 7

Lecture 6

回顾

  • LP 的对偶性
  • Weak Duality
  • String Duality
  • Complementarity slackness

最小费用完美匹配的对偶性与互补松弛性

Duality and Complementarity Slackness of Min-Cost Perfect Matching

定义

令 G=(A∪B,E)G=(A\cup B, E)G=(A∪B,E) 是带有边权 c:E→Rc: E\to \mathbb{R}c:E→R 的二分图。我们想要找到一个有最小费用 ∑e∈Mce\sum_{e\in M}c_e∑e∈M​ce​ 的完美匹配 MMM。

令 xex_exe​ 为表示是否选了边 eee 的变量,xe=1x_e=1xe​=1 表示边 eee 在匹配中,xe=0x_e=0xe​=0 表示边 eee 不在匹配中。 在一个完美匹配中,每一个点恰有一条邻边。于是我们可以写出这个问题的线性规划:

Minimize∑e∈ExeceSubject to:∑b∈B:(a,b)∈Exab=1∀a∈A∑a∈A:(a,b)∈Exab=1∀b∈Bxe≥0∀e∈E\begin{align*} \text{Minimize}\quad & \sum_{e\in E} x_ec_e\\ \text{Subject to:}\quad & \sum_{b\in B:(a,b)\in E} x_{ab} = 1 &&\forall a\in A\\ & \sum_{a\in A:(a,b)\in E} x_{ab} = 1 &&\forall b\in B\\ & x_e \geq 0&& \forall e\in E \end{align*} MinimizeSubject to:​e∈E∑​xe​ce​b∈B:(a,b)∈E∑​xab​=1a∈A:(a,b)∈E∑​xab​=1xe​≥0​​∀a∈A∀b∈B∀e∈E​

在之前的笔记中,已经证明了这样的线性规划的极点是整数解。所以我们可以通过求解上述线性规划来求解最小费用问题。

对偶

为了取得上述 LP 的对偶,我们首先将它写成之前常见的不等式形式。对于每个等式,我们考虑用两个不等式来替换它,这样仍然只有交点(等于的情况)满足条件。于是我们可以得到以下等价的线性规划:

Minimize∑e∈ExeceSubject to:∑b∈B:(a,b)∈Exab≥1∀a∈A∑b∈B:(a,b)∈Exab≤1∀a∈A∑a∈A:(a,b)∈Exab≥1∀b∈B∑a∈A:(a,b)∈Exab≤1∀b∈Bxe≥0∀e∈E\begin{align*} \text{Minimize}\quad & \sum_{e\in E} x_ec_e\\ \text{Subject to:}\quad & \sum_{b\in B:(a,b)\in E} x_{ab} \geq 1 &&\forall a\in A\\ & \sum_{b\in B:(a,b)\in E} x_{ab} \leq 1 &&\forall a\in A\\ & \sum_{a\in A:(a,b)\in E} x_{ab} \geq 1 &&\forall b\in B\\ & \sum_{a\in A:(a,b)\in E} x_{ab} \leq 1 &&\forall b\in B\\ & x_e \geq 0&& \forall e\in E \end{align*} MinimizeSubject to:​e∈E∑​xe​ce​b∈B:(a,b)∈E∑​xab​≥1b∈B:(a,b)∈E∑​xab​≤1a∈A:(a,b)∈E∑​xab​≥1a∈A:(a,b)∈E∑​xab​≤1xe​≥0​​∀a∈A∀a∈A∀b∈B∀b∈B∀e∈E​

适当调整符号得到

Minimize∑e∈ExeceSubject to:∑b∈B:(a,b)∈Exab≥1∀a∈A−∑b∈B:(a,b)∈Exab≥−1∀a∈A∑a∈A:(a,b)∈Exab≥1∀b∈B−∑a∈A:(a,b)∈Exab≥−1∀b∈Bxe≥0∀e∈E\begin{align*} \text{Minimize}\quad & \sum_{e\in E} x_ec_e\\ \text{Subject to:}\quad & \sum_{b\in B:(a,b)\in E} x_{ab} \geq 1 &&\forall a\in A\\ & - \sum_{b\in B:(a,b)\in E} x_{ab} \geq -1 &&\forall a\in A\\ & \sum_{a\in A:(a,b)\in E} x_{ab} \geq 1 &&\forall b\in B\\ & - \sum_{a\in A:(a,b)\in E} x_{ab} \geq -1 &&\forall b\in B\\ & x_e \geq 0&& \forall e\in E \end{align*} MinimizeSubject to:​e∈E∑​xe​ce​b∈B:(a,b)∈E∑​xab​≥1−b∈B:(a,b)∈E∑​xab​≥−1a∈A:(a,b)∈E∑​xab​≥1−a∈A:(a,b)∈E∑​xab​≥−1xe​≥0​​∀a∈A∀a∈A∀b∈B∀b∈B∀e∈E​

对于每个 a∈Aa\in Aa∈A,我们将一个变量 ua+u_a^+ua+​ 关联到 aaa 的第一个约束 (∑b∈B:(a,b)∈Exab≥1)\big(\sum_{b\in B:(a,b)\in E} x_{ab} \geq 1)(∑b∈B:(a,b)∈E​xab​≥1) 上,将变量 ua−u_a^-ua−​ 关联到 aaa 的第二个约束 (−∑b∈B:(a,b)∈Exab≥−1)\big(- \sum_{b\in B:(a,b)\in E} x_{ab} \geq -1)(−∑b∈B:(a,b)∈E​xab​≥−1) 上。同样地,我们有 vb+v_b^+vb+​ 和 vb−v_b^-vb−​。

所以我们现在有了对偶 LP

Maximize∑a∈A(ua+−ua−)+∑b∈B(vb+−vb−)Subject to:(ua+−ua−)+(vb+−vb−)≤c(e)∀e=(a,b)∈Eua+,ua−,vb+,vb−≥0∀a∈A,b∈B\begin{align*} \text{Maximize}\quad &\sum_{a\in A}(u_a^+ - u_a^-) + \sum_{b\in B}(v_b^+-v_b^-)\\ \text{Subject to:}\quad &(u_a^+-u_a^-) + (v_b^+-v_b^-) \leq c(e) &&\forall e=(a,b)\in E\\ &u_a^+,u_a^-,v_b^+,v_b^-\geq 0 &&\forall a\in A,b\in B \end{align*} MaximizeSubject to:​a∈A∑​(ua+​−ua−​)+b∈B∑​(vb+​−vb−​)(ua+​−ua−​)+(vb+​−vb−​)≤c(e)ua+​,ua−​,vb+​,vb−​≥0​​∀e=(a,b)∈E∀a∈A,b∈B​

笔者注:这部分推广得太快了。学习的时候很难理解这个关联(原文为associate)的意思,所以打算更仔细地写一下。

互补松弛

Complementarity Slackness 告诉我们如果 x,(u+,u−,v+,v−)x,(u^+,u^-,v^+,v^-)x,(u+,u−,v+,v−) 是可行解,那么当且仅当下面条件成立的时候,它们是最优的。

xe>0    ⇒    (ua+−ua−)+(vb+−vb−)=c(e)∀e=(a,b)∈Eua+>0    ⇒    ∑b∈B:(a,b)∈Exab=1∀a∈Aua−>0    ⇒    −∑b∈B:(a,b)∈Exab=−1∀a∈Avb+>0    ⇒    ∑a∈A:(a,b)∈Exab=1∀b∈Bvb−>0    ⇒    −∑a∈A:(a,b)∈Exab=−1∀b∈B\begin{align*} x_e>0 &\;\;\Rightarrow\;\; & (u_a^+-u_a^-) + (v_b^+-v_b^-) & = c(e) && \forall e=(a,b)\in E\\ u_a^+>0 &\;\;\Rightarrow\;\; & \sum_{b\in B:(a,b)\in E} x_{ab} & = 1 && \forall a\in A \\ u_a^->0 &\;\;\Rightarrow\;\; & - \sum_{b\in B:(a,b)\in E} x_{ab} & = -1 && \forall a\in A\\ v_b^+>0 &\;\;\Rightarrow\;\; & \sum_{a\in A:(a,b)\in E} x_{ab} & = 1 && \forall b\in B\\ v_b^->0 &\;\;\Rightarrow\;\; & -\sum_{a\in A:(a,b)\in E} x_{ab} & = -1 && \forall b\in B \end{align*} xe​>0ua+​>0ua−​>0vb+​>0vb−​>0​⇒⇒⇒⇒⇒​(ua+​−ua−​)+(vb+​−vb−​)b∈B:(a,b)∈E∑​xab​−b∈B:(a,b)∈E∑​xab​a∈A:(a,b)∈E∑​xab​−a∈A:(a,b)∈E∑​xab​​=c(e)=1=−1=1=−1​​∀e=(a,b)∈E∀a∈A∀a∈A∀b∈B∀b∈B​

简化符号

我们用 uau_aua​ 代替 (ua+−ua−)(u_a^+-u_a^-)(ua+​−ua−​),用 vbv_bvb​ 代替 (vb+−vb−)(v_b^+-v_b^-)(vb+​−vb−​)。

原始线性规划:

Minimize∑e∈ExeceSubject to:∑b∈B:(a,b)∈Exab=1∀a∈A∑a∈A:(a,b)∈Exab=1∀b∈Bxe≥0∀e∈E\begin{align*} \text{Minimize}\quad & \sum_{e\in E} x_ec_e\\ \text{Subject to:}\quad & \sum_{b\in B:(a,b)\in E} x_{ab} = 1 &&\forall a\in A\\ & \sum_{a\in A:(a,b)\in E} x_{ab} = 1 &&\forall b\in B\\ & x_e \geq 0&& \forall e\in E \end{align*} MinimizeSubject to:​e∈E∑​xe​ce​b∈B:(a,b)∈E∑​xab​=1a∈A:(a,b)∈E∑​xab​=1xe​≥0​​∀a∈A∀b∈B∀e∈E​

对偶线性规划:

Maximize∑a∈Aua+∑b∈BvbSubject to:ua+vb≤c(e)∀e=(a,b)∈E\begin{align*} \text{Maximize}\quad & \sum_{a\in A} u_a + \sum_{b\in B}v_b\\ \text{Subject to:}\quad & u_a+v_b \leq c(e) &&\forall e=(a,b)\in E \end{align*} MaximizeSubject to:​a∈A∑​ua​+b∈B∑​vb​ua​+vb​≤c(e)​​∀e=(a,b)∈E​

在这种简化方式下,互补松弛告诉我们,如果 x,(u,v))x,(u,v))x,(u,v)) 是可行的,那么他们当且仅当下式成立的时候最优。

xe>0⇒ua+vb=c(e)∀e=(a,b)∈E,ua≠0⇒∑b∈B:(a,b)∈Exab=1∀a∈A,vb≠0⇒∑a∈A:(a,b)∈Exab=1∀b∈B\begin{align} x_e>0 &\Rightarrow u_a+v_b = c(e) &&\forall e=(a,b)\in E,\\ u_a\neq 0 &\Rightarrow \sum_{b\in B:(a,b)\in E} x_{ab} = 1 &&\forall a\in A,\\ v_b\neq 0 &\Rightarrow \sum_{a\in A:(a,b)\in E} x_{ab} = 1 &&\forall b\in B \end{align} xe​>0ua​=0vb​=0​⇒ua​+vb​=c(e)⇒b∈B:(a,b)∈E∑​xab​=1⇒a∈A:(a,b)∈E∑​xab​=1​​∀e=(a,b)∈E,∀a∈A,∀b∈B​​

最后,我们发现后两个等式总是成立,因为他们直接源于 xxx 是原始可行的事实(回顾原始的线性规划,我们的表达形式恰为这样的等式)。因此,我们总结以上内容

引理

一个完美匹配 MMM 的成本是最小的,当且仅当存在一个可行的对偶解 u,vu,vu,v 使得

ua+vb=c(e)∀e∈(a,b)∈M.u_a+v_b=c(e)\qquad \forall e\in(a,b)\in M. ua​+vb​=c(e)∀e∈(a,b)∈M.

匈牙利算法

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

/

Last Updated: 10/7/25, 1:11 AM
Contributors: Zhixiang Dai
Prev
Lecture 5
Next
Lecture 7