线性规划
字数 6850 2025-12-16 00:59:27

好的,我已经记住你之前听过的所有题目。现在,我为你讲解一个线性规划领域的新算法题目。

基于线性规划的图最小割问题的线性规划建模、对偶问题及其与最大流等价性证明示例

题目描述

在图论和组合优化中,最小割问题最大流问题是经典的等价问题。给定一个有向图 \(G = (V, E)\),其中 \(V\) 是顶点集,\(E\) 是边集。每条边 \(e \in E\) 有一个非负容量 \(c_e \geq 0\)。我们指定一个源点 \(s \in V\) 和一个汇点 \(t \in V\) ( \(s \neq t\) )。一个 \(s-t\) 割是将顶点集 \(V\) 划分为两个集合 \(S\)\(T\),使得 \(s \in S\)\(t \in T\)。割的容量定义为所有从 \(S\) 指向 \(T\) 的边的容量之和,即 \(c(S, T) = \sum_{e: \text{tail}(e) \in S, \text{head}(e) \in T} c_e\)

最小割问题 的目标是:找到一个 \(s-t\)\((S, T)\),使得其容量 \(c(S, T)\) 最小。

本题要求:

  1. 建立最小割问题的线性规划模型
  2. 写出该线性规划模型的对偶问题
  3. 证明该对偶问题正是最大流问题的线性规划模型,从而通过线性规划对偶理论,直观地证明“最小割容量等于最大流值”这一著名的最大流最小割定理

我们将一步步推导,确保清晰。


解题过程

步骤 1:建立最小割问题的线性规划模型

  1. 变量定义:我们需要用变量描述一个割 \((S, T)\)。一个自然的想法是为每个顶点 \(v \in V\) 引入一个0-1变量:

    • \(x_v = 0\) 表示顶点 \(v\) 在集合 \(S\) 中。
    • \(x_v = 1\) 表示顶点 \(v\) 在集合 \(T\) 中。
      那么,源点 \(s\) 必须在 \(S\) 中,汇点 \(t\) 必须在 \(T\) 中。
  2. 目标函数:割的容量是\(S\)\(T\) 的边的容量之和。对于一条有向边 \(e = (u, v) \in E\),如果 \(u \in S\) (\(x_u = 0\)) 且 \(v \in T\) (\(x_v = 1\)),那么这条边会穿过割,对容量有贡献 \(c_e\)。这可以表示为 \(x_v - x_u\)。因为当 \(x_u=0, x_v=1\) 时,\(x_v - x_u = 1\),贡献为 \(c_e \times 1 = c_e\);在其他情况下 (\(x_u=0,x_v=0\), 或 \(x_u=1,x_v=0\), 或 \(x_u=1,x_v=1\)), \(x_v - x_u\) 的值为 0 或 -1,但我们希望它不产生正的贡献。所以,我们的目标是最小化所有边上的 \(c_e \cdot \max(0, x_v - x_u)\)。但线性规划中不能直接用 max 函数。

  3. 引入辅助变量:为了避免 max 函数,我们为每条边 \(e = (u, v)\) 引入一个辅助的0-1变量 \(z_{uv}\)。我们希望 \(z_{uv} = 1\) 当且仅当\((u, v)\)\(S\) 跨到 \(T\),即 \(x_u = 0\)\(x_v = 1\)

    • 约束:我们需要用线性约束来刻画这种“当且仅当”关系。一个经典的方法是使用以下两个约束:

\[ z_{uv} \geq x_v - x_u \quad \quad \text{ (1)} \]

\[ z_{uv} \geq 0 \quad \quad \text{ (2)} \]

    约束(1)是关键。分析一下:
    *   如果 $ x_u=0, x_v=1 $, 则 $ x_v - x_u = 1 $, 那么 (1) 要求 $ z_{uv} \geq 1 $。由于 $ z_{uv} $ 是0-1变量,并且我们希望最小化目标(目标函数包含 $ c_e z_{uv} $),最优解中会令 $ z_{uv} = 1 $。
    *   如果 $ x_u=0, x_v=0 $, 则 $ x_v - x_u = 0 $, (1) 要求 $ z_{uv} \geq 0 $。在最小化目标下,最优解会取 $ z_{uv} = 0 $。
    *   如果 $ x_u=1, x_v=0 $, 则 $ x_v - x_u = -1 $, (1) 要求 $ z_{uv} \geq -1 $,这是一个很松的约束。同样,最小化目标会令 $ z_{uv} = 0 $。
    *   如果 $ x_u=1, x_v=1 $, 则 $ x_v - x_u = 0 $, 同第二种情况, $ z_{uv} = 0 $。
    因此,在最优解中,$ z_{uv} $ 恰好等于 1 当且仅当边 $ (u, v) $ 穿过割(从 $ S $ 到 $ T $)。
  1. 顶点集约束

    • 源点 \(s\) 必须在 \(S\) 中:\(x_s = 0\)
    • 汇点 \(t\) 必须在 \(T\) 中:\(x_t = 1\)
    • 对于其他顶点,\(x_v\) 可以是 0 或 1。
  2. 完整的线性规划模型(原始问题)

\[ \begin{aligned} \text{Minimize:} \quad & \sum_{(u,v) \in E} c_{uv} z_{uv} & \\ \text{Subject to:} \quad & z_{uv} \geq x_v - x_u, & \forall (u,v) \in E \\ & x_s = 0, & \\ & x_t = 1, & \\ & x_v \in \{0, 1\}, & \forall v \in V \\ & z_{uv} \in \{0, 1\}, & \forall (u,v) \in E \end{aligned} \]

**注意**:这是一个**整数线性规划**,因为变量是0-1的。但是,它的线性规划松弛(将 $ x_v, z_{uv} \in \{0, 1\} $ 松弛为 $ 0 \leq x_v \leq 1, 0 \leq z_{uv} \leq 1 $)的最优解总是整数的(这是一个可以证明的性质,但超出了本例的核心)。我们可以直接从松弛的线性规划开始分析其对偶。

步骤 2:写出对偶问题

我们将上面的模型(先考虑其线性规划松弛)写成标准形式,然后应用对偶变换。

  1. 将原问题写成矩阵形式

    • 变量: \(\mathbf{x} = (..., x_v, ...)^T\)\(\mathbf{z} = (..., z_{uv}, ...)^T\)
    • 目标: \(\min \, \mathbf{c}^T \mathbf{z}\), 其中 \(\mathbf{c}\) 是容量向量。
    • 约束 \(z_{uv} - x_v + x_u \geq 0\) 可以写成 \(\mathbf{z} - A\mathbf{x} \geq 0\),其中 \(A\) 是关联矩阵的转置形式。
    • 约束 \(x_s = 0\)\(x_t = 1\) 可以拆成两个不等式:\(x_s \leq 0, -x_s \leq 0\) 以及 \(x_t \leq 1, -x_t \leq -1\)
    • 变量边界: \(0 \leq x_v \leq 1\)\(0 \leq z_{uv} \leq 1\)
  2. 应用对偶理论(更直观的写法)
    对于每个原问题约束,我们引入一个对偶变量。

    • 对每个约束 \(z_{uv} \geq x_v - x_u\), 我们引入对偶变量 \(f_{uv} \geq 0\)。这个变量将对应于从 \(u\)\(v\)
    • 对约束 \(x_s = 0\),我们引入一个自由的对偶变量 \(\pi_s\)(因为等式约束)。
    • 对约束 \(x_t = 1\),我们引入一个自由的对偶变量 \(\pi_t\)
    • 对约束 \(0 \leq x_v \leq 1\) (\(v \neq s, t\)),其对应的对偶约束来自互补松弛条件,但我们通常直接根据对偶规则推导。
  3. 构造对偶问题
    根据线性规划对偶规则:

    • 原问题目标\(\min \sum c_{uv} z_{uv}\)
    • 对偶变量
      • \(f_{uv} \geq 0\) 对应约束 \(z_{uv} - x_v + x_u \geq 0\)
      • \(\pi_v\) 对应关于 \(x_v\) 的约束(包括边界)。为了统一,我们可以为每个顶点 \(v\) 引入一个势变量 \(p_v\),它来自对偶约束中与 \(x_v\) 相关的部分。
    • 对偶目标:来自原问题的右端项。原问题只有 \(x_t = 1\) 的右端项非零(为1),所以对偶目标为 \(\max \, p_t \cdot 1 - p_s \cdot 0 = \max \, p_t\)(因为我们通常设 \(p_s = 0\) 作为参考点,实际上它等于 \(p_t - p_s\))。
    • 对偶约束
      1. 关于 \(z_{uv}\) 的约束:原问题中 \(z_{uv}\) 的系数在对偶中出现在两个地方:目标函数系数 \(c_{uv}\) 和它所在的约束 \((z_{uv} - x_v + x_u \geq 0)\)。这个约束对应的对偶变量是 \(f_{uv}\)。因此,对偶中关于 \(z_{uv}\) 的约束是:

\[ \text{原问题 } z_{uv} \text{ 的系数 } (1) \times f_{uv} \leq \text{原目标中 } z_{uv} \text{ 的系数 } (c_{uv}) \]

        即:

\[ f_{uv} \leq c_{uv}, \quad \forall (u,v) \in E \quad \text{(容量约束)} \]

    2.  **关于 $ x_v $ 的约束**:这是关键。原问题中,变量 $ x_v $ 出现在所有以 $ v $ 为起点的边(形如 $ (v, w) $)和以 $ v $ 为终点的边(形如 $ (u, v) $)的约束中。
        *   在约束 $ z_{vw} \geq x_w - x_v $ 中,$ x_v $ 的系数是 $ -1 $,对应的对偶变量是 $ f_{vw} $。
        *   在约束 $ z_{uv} \geq x_v - x_u $ 中,$ x_v $ 的系数是 $ +1 $,对应的对偶变量是 $ f_{uv} $。
        此外,$ x_v $ 本身没有在原问题的目标函数中。因此,在对偶问题中,与 $ x_v $ 相关的约束是这些系数的加权和等于0(因为原问题中 $ x_v $ 没有成本系数,且其自身边界约束的对应推导会得到一个等式)。具体来说,对于每个顶点 $ v $:

\[ \sum_{u: (u,v) \in E} f_{uv} - \sum_{w: (v,w) \in E} f_{vw} = 0, \quad \forall v \in V \setminus \{s, t\} \]

\[ \sum_{u: (u,s) \in E} f_{us} - \sum_{w: (s,w) \in E} f_{sw} = -p_s \]

\[ \sum_{u: (u,t) \in E} f_{ut} - \sum_{w: (t,w) \in E} f_{tw} = -p_t \]

        通常我们设 $ p_s = 0 $,并让 $ p_t $ 成为目标函数。那么上面关于 $ s $ 和 $ t $ 的式子变为流量守恒的推广:

\[ \sum_{u: (u,v) \in E} f_{uv} - \sum_{w: (v,w) \in E} f_{vw} = \begin{cases} -F, & \text{if } v = s \\ +F, & \text{if } v = t \\ 0, & \text{otherwise} \end{cases} \]

        其中 $ F = p_t $ 就是从 $ s $ 流出的总净流量(也是流入 $ t $ 的总净流量)。
  1. 完整的对偶线性规划模型

\[ \begin{aligned} \text{Maximize:} \quad & F & \\ \text{Subject to:} \quad & \sum_{w: (v,w) \in E} f_{vw} - \sum_{u: (u,v) \in E} f_{uv} = \begin{cases} F, & v = s \\ -F, & v = t \\ 0, & v \neq s, t \end{cases} & \quad \text{(流量守恒)} \\ & 0 \leq f_{uv} \leq c_{uv}, & \forall (u,v) \in E \quad \text{(容量约束)} \end{aligned} \]

这恰好是**最大流问题**的线性规划模型!变量 $ f_{uv} $ 就是边 $ (u, v) $ 上的流值, $ F $ 是从源点 $ s $ 到汇点 $ t $ 的净流量,目标就是最大化 $ F $。

步骤 3:证明最小割与最大流的等价性(最大流最小割定理)

通过线性规划对偶理论,我们已经完成了一个优雅的证明:

  1. 原问题(整数规划):我们建立了最小割问题的一个整数线性规划模型。其最优值是最小割容量,记作 \(OPT_{mincut}\)
  2. 松弛与对偶:我们考虑了原模型的线性规划松弛,并写出了它的对偶问题。
  3. 对偶问题的解释:我们发现,这个对偶问题正是最大流问题的线性规划模型。其最优值是最大流值,记作 \(OPT_{maxflow}\)
  4. 对偶定理的应用:根据线性规划强对偶定理,如果原问题和对偶问题都是可行的且有有限最优解,那么原问题(松弛后)的最优值等于对偶问题的最优值。即:

\[ \text{松弛后最小割LP的最优值} = OPT_{maxflow} \]

  1. 整性证明(结论):一个关键的事实是,我们为最小割建立的这个特定线性规划松弛,其约束矩阵是全单模矩阵。全单模矩阵的一个重要性质是,对于任意整数右端项,其线性规划的任何基本可行解(顶点解)都是整数解。在我们的模型中,右端项(0 和 1)是整数,因此松弛后的线性规划最优解自动就是整数解(0或1)。这意味着:

\[ \text{松弛后最小割LP的最优值} = OPT_{mincut} \]

  1. 定理得证:结合第4步和第5步,我们得到:

\[ OPT_{mincut} = OPT_{maxflow} \]

这正是**最大流最小割定理**:在一个有向图中,从源点 $ s $ 到汇点 $ t $ 的最大流值等于分隔 $ s $ 和 $ t $ 的最小割容量。

总结

通过这道题,我们:

  1. 建模:将组合优化问题(最小割)形式化为一个整数线性规划。
  2. 对偶:系统地推导了该线性规划松弛的对偶问题。
  3. 洞察:发现对偶问题正是经典的最大流问题模型。
  4. 证明:利用线性规划强对偶定理和全单模矩阵的整性性质,严格证明了最大流最小割定理。

这个例子清晰地展示了线性规划对偶理论如何作为一座桥梁,深刻地揭示了两个看似不同问题(最小割 vs. 最大流)之间内在的等价关系。

好的,我已经记住你之前听过的所有题目。现在,我为你讲解一个 线性规划 领域的新算法题目。 基于线性规划的图最小割问题的线性规划建模、对偶问题及其与最大流等价性证明示例 题目描述 在图论和组合优化中, 最小割问题 与 最大流问题 是经典的等价问题。给定一个有向图 \( G = (V, E) \),其中 \( V \) 是顶点集,\( E \) 是边集。每条边 \( e \in E \) 有一个非负容量 \( c_ e \geq 0 \)。我们指定一个源点 \( s \in V \) 和一个汇点 \( t \in V \) ( \( s \neq t \) )。一个 \( s-t \) 割是将顶点集 \( V \) 划分为两个集合 \( S \) 和 \( T \),使得 \( s \in S \), \( t \in T \)。割的 容量 定义为所有从 \( S \) 指向 \( T \) 的边的容量之和,即 \( c(S, T) = \sum_ {e: \text{tail}(e) \in S, \text{head}(e) \in T} c_ e \)。 最小割问题 的目标是:找到一个 \( s-t \) 割 \( (S, T) \),使得其容量 \( c(S, T) \) 最小。 本题要求: 建立最小割问题的线性规划模型 。 写出该线性规划模型的对偶问题 。 证明该对偶问题正是最大流问题的线性规划模型 ,从而通过线性规划对偶理论,直观地证明“最小割容量等于最大流值”这一著名的 最大流最小割定理 。 我们将一步步推导,确保清晰。 解题过程 步骤 1:建立最小割问题的线性规划模型 变量定义 :我们需要用变量描述一个割 \( (S, T) \)。一个自然的想法是为每个顶点 \( v \in V \) 引入一个0-1变量: 令 \( x_ v = 0 \) 表示顶点 \( v \) 在集合 \( S \) 中。 令 \( x_ v = 1 \) 表示顶点 \( v \) 在集合 \( T \) 中。 那么,源点 \( s \) 必须在 \( S \) 中,汇点 \( t \) 必须在 \( T \) 中。 目标函数 :割的容量是 从 \( S \) 到 \( T \) 的边的容量之和 。对于一条有向边 \( e = (u, v) \in E \),如果 \( u \in S \) (\( x_ u = 0 \)) 且 \( v \in T \) (\( x_ v = 1 \)),那么这条边会穿过割,对容量有贡献 \( c_ e \)。这可以表示为 \( x_ v - x_ u \)。因为当 \( x_ u=0, x_ v=1 \) 时,\( x_ v - x_ u = 1 \),贡献为 \( c_ e \times 1 = c_ e \);在其他情况下 (\( x_ u=0,x_ v=0 \), 或 \( x_ u=1,x_ v=0 \), 或 \( x_ u=1,x_ v=1 \)), \( x_ v - x_ u \) 的值为 0 或 -1,但我们希望它不产生正的贡献。所以,我们的目标是最小化所有边上的 \( c_ e \cdot \max(0, x_ v - x_ u) \)。但线性规划中不能直接用 max 函数。 引入辅助变量 :为了避免 max 函数,我们为每条边 \( e = (u, v) \) 引入一个辅助的0-1变量 \( z_ {uv} \)。我们希望 \( z_ {uv} = 1 \) 当且仅当 边 \( (u, v) \) 从 \( S \) 跨到 \( T \),即 \( x_ u = 0 \) 且 \( x_ v = 1 \)。 约束 :我们需要用线性约束来刻画这种“当且仅当”关系。一个经典的方法是使用以下两个约束: \[ z_ {uv} \geq x_ v - x_ u \quad \quad \text{ (1)} \] \[ z_ {uv} \geq 0 \quad \quad \text{ (2)} \] 约束(1)是关键。分析一下: 如果 \( x_ u=0, x_ v=1 \), 则 \( x_ v - x_ u = 1 \), 那么 (1) 要求 \( z_ {uv} \geq 1 \)。由于 \( z_ {uv} \) 是0-1变量,并且我们希望最小化目标(目标函数包含 \( c_ e z_ {uv} \)),最优解中会令 \( z_ {uv} = 1 \)。 如果 \( x_ u=0, x_ v=0 \), 则 \( x_ v - x_ u = 0 \), (1) 要求 \( z_ {uv} \geq 0 \)。在最小化目标下,最优解会取 \( z_ {uv} = 0 \)。 如果 \( x_ u=1, x_ v=0 \), 则 \( x_ v - x_ u = -1 \), (1) 要求 \( z_ {uv} \geq -1 \),这是一个很松的约束。同样,最小化目标会令 \( z_ {uv} = 0 \)。 如果 \( x_ u=1, x_ v=1 \), 则 \( x_ v - x_ u = 0 \), 同第二种情况, \( z_ {uv} = 0 \)。 因此,在最优解中,\( z_ {uv} \) 恰好等于 1 当且仅当边 \( (u, v) \) 穿过割(从 \( S \) 到 \( T \))。 顶点集约束 : 源点 \( s \) 必须在 \( S \) 中:\( x_ s = 0 \)。 汇点 \( t \) 必须在 \( T \) 中:\( x_ t = 1 \)。 对于其他顶点,\( x_ v \) 可以是 0 或 1。 完整的线性规划模型(原始问题) : \[ \begin{aligned} \text{Minimize:} \quad & \sum_ {(u,v) \in E} c_ {uv} z_ {uv} & \\ \text{Subject to:} \quad & z_ {uv} \geq x_ v - x_ u, & \forall (u,v) \in E \\ & x_ s = 0, & \\ & x_ t = 1, & \\ & x_ v \in \{0, 1\}, & \forall v \in V \\ & z_ {uv} \in \{0, 1\}, & \forall (u,v) \in E \end{aligned} \] 注意 :这是一个 整数线性规划 ,因为变量是0-1的。但是,它的线性规划松弛(将 \( x_ v, z_ {uv} \in \{0, 1\} \) 松弛为 \( 0 \leq x_ v \leq 1, 0 \leq z_ {uv} \leq 1 \))的最优解总是整数的(这是一个可以证明的性质,但超出了本例的核心)。我们可以直接从松弛的线性规划开始分析其对偶。 步骤 2:写出对偶问题 我们将上面的模型(先考虑其线性规划松弛)写成标准形式,然后应用对偶变换。 将原问题写成矩阵形式 : 变量: \( \mathbf{x} = (..., x_ v, ...)^T \), \( \mathbf{z} = (..., z_ {uv}, ...)^T \)。 目标: \( \min \, \mathbf{c}^T \mathbf{z} \), 其中 \( \mathbf{c} \) 是容量向量。 约束 \( z_ {uv} - x_ v + x_ u \geq 0 \) 可以写成 \( \mathbf{z} - A\mathbf{x} \geq 0 \),其中 \( A \) 是关联矩阵的转置形式。 约束 \( x_ s = 0 \) 和 \( x_ t = 1 \) 可以拆成两个不等式:\( x_ s \leq 0, -x_ s \leq 0 \) 以及 \( x_ t \leq 1, -x_ t \leq -1 \)。 变量边界: \( 0 \leq x_ v \leq 1 \), \( 0 \leq z_ {uv} \leq 1 \)。 应用对偶理论(更直观的写法) : 对于每个原问题约束,我们引入一个对偶变量。 对每个约束 \( z_ {uv} \geq x_ v - x_ u \), 我们引入对偶变量 \( f_ {uv} \geq 0 \)。这个变量将对应于从 \( u \) 到 \( v \) 的 流 。 对约束 \( x_ s = 0 \),我们引入一个自由的对偶变量 \( \pi_ s \)(因为等式约束)。 对约束 \( x_ t = 1 \),我们引入一个自由的对偶变量 \( \pi_ t \)。 对约束 \( 0 \leq x_ v \leq 1 \) (\( v \neq s, t \)),其对应的对偶约束来自互补松弛条件,但我们通常直接根据对偶规则推导。 构造对偶问题 : 根据线性规划对偶规则: 原问题目标 :\( \min \sum c_ {uv} z_ {uv} \)。 对偶变量 : \( f_ {uv} \geq 0 \) 对应约束 \( z_ {uv} - x_ v + x_ u \geq 0 \)。 \( \pi_ v \) 对应关于 \( x_ v \) 的约束(包括边界)。为了统一,我们可以为每个顶点 \( v \) 引入一个势变量 \( p_ v \),它来自对偶约束中与 \( x_ v \) 相关的部分。 对偶目标 :来自原问题的右端项。原问题只有 \( x_ t = 1 \) 的右端项非零(为1),所以对偶目标为 \( \max \, p_ t \cdot 1 - p_ s \cdot 0 = \max \, p_ t \)(因为我们通常设 \( p_ s = 0 \) 作为参考点,实际上它等于 \( p_ t - p_ s \))。 对偶约束 : 关于 \( z_ {uv} \) 的约束 :原问题中 \( z_ {uv} \) 的系数在对偶中出现在两个地方:目标函数系数 \( c_ {uv} \) 和它所在的约束 \( (z_ {uv} - x_ v + x_ u \geq 0) \)。这个约束对应的对偶变量是 \( f_ {uv} \)。因此,对偶中关于 \( z_ {uv} \) 的约束是: \[ \text{原问题 } z_ {uv} \text{ 的系数 } (1) \times f_ {uv} \leq \text{原目标中 } z_ {uv} \text{ 的系数 } (c_ {uv}) \] 即: \[ f_ {uv} \leq c_ {uv}, \quad \forall (u,v) \in E \quad \text{(容量约束)} \] 关于 \( x_ v \) 的约束 :这是关键。原问题中,变量 \( x_ v \) 出现在所有以 \( v \) 为起点的边(形如 \( (v, w) \))和以 \( v \) 为终点的边(形如 \( (u, v) \))的约束中。 在约束 \( z_ {vw} \geq x_ w - x_ v \) 中,\( x_ v \) 的系数是 \( -1 \),对应的对偶变量是 \( f_ {vw} \)。 在约束 \( z_ {uv} \geq x_ v - x_ u \) 中,\( x_ v \) 的系数是 \( +1 \),对应的对偶变量是 \( f_ {uv} \)。 此外,\( x_ v \) 本身没有在原问题的目标函数中。因此,在对偶问题中,与 \( x_ v \) 相关的约束是这些系数的加权和等于0(因为原问题中 \( x_ v \) 没有成本系数,且其自身边界约束的对应推导会得到一个等式)。具体来说,对于每个顶点 \( v \): \[ \sum_ {u: (u,v) \in E} f_ {uv} - \sum_ {w: (v,w) \in E} f_ {vw} = 0, \quad \forall v \in V \setminus \{s, t\} \] \[ \sum_ {u: (u,s) \in E} f_ {us} - \sum_ {w: (s,w) \in E} f_ {sw} = -p_ s \] \[ \sum_ {u: (u,t) \in E} f_ {ut} - \sum_ {w: (t,w) \in E} f_ {tw} = -p_ t \] 通常我们设 \( p_ s = 0 \),并让 \( p_ t \) 成为目标函数。那么上面关于 \( s \) 和 \( t \) 的式子变为流量守恒的推广: \[ \sum_ {u: (u,v) \in E} f_ {uv} - \sum_ {w: (v,w) \in E} f_ {vw} = \begin{cases} -F, & \text{if } v = s \\ +F, & \text{if } v = t \\ 0, & \text{otherwise} \end{cases} \] 其中 \( F = p_ t \) 就是从 \( s \) 流出的总净流量(也是流入 \( t \) 的总净流量)。 完整的对偶线性规划模型 : \[ \begin{aligned} \text{Maximize:} \quad & F & \\ \text{Subject to:} \quad & \sum_ {w: (v,w) \in E} f_ {vw} - \sum_ {u: (u,v) \in E} f_ {uv} = \begin{cases} F, & v = s \\ -F, & v = t \\ 0, & v \neq s, t \end{cases} & \quad \text{(流量守恒)} \\ & 0 \leq f_ {uv} \leq c_ {uv}, & \forall (u,v) \in E \quad \text{(容量约束)} \end{aligned} \] 这恰好是 最大流问题 的线性规划模型!变量 \( f_ {uv} \) 就是边 \( (u, v) \) 上的流值, \( F \) 是从源点 \( s \) 到汇点 \( t \) 的净流量,目标就是最大化 \( F \)。 步骤 3:证明最小割与最大流的等价性(最大流最小割定理) 通过线性规划对偶理论,我们已经完成了一个优雅的证明: 原问题(整数规划) :我们建立了最小割问题的一个整数线性规划模型。其最优值是最小割容量,记作 \( OPT_ {mincut} \)。 松弛与对偶 :我们考虑了原模型的线性规划松弛,并写出了它的对偶问题。 对偶问题的解释 :我们发现,这个对偶问题正是最大流问题的线性规划模型。其最优值是最大流值,记作 \( OPT_ {maxflow} \)。 对偶定理的应用 :根据 线性规划强对偶定理 ,如果原问题和对偶问题都是可行的且有有限最优解,那么 原问题(松弛后)的最优值等于对偶问题的最优值 。即: \[ \text{松弛后最小割LP的最优值} = OPT_ {maxflow} \] 整性证明(结论) :一个关键的事实是,我们为最小割建立的这个特定线性规划松弛,其约束矩阵是 全单模矩阵 。全单模矩阵的一个重要性质是,对于任意整数右端项,其线性规划的任何基本可行解(顶点解)都是整数解。在我们的模型中,右端项(0 和 1)是整数,因此松弛后的线性规划最优解自动就是整数解(0或1)。这意味着: \[ \text{松弛后最小割LP的最优值} = OPT_ {mincut} \] 定理得证 :结合第4步和第5步,我们得到: \[ OPT_ {mincut} = OPT_ {maxflow} \] 这正是 最大流最小割定理 :在一个有向图中,从源点 \( s \) 到汇点 \( t \) 的最大流值等于分隔 \( s \) 和 \( t \) 的最小割容量。 总结 通过这道题,我们: 建模 :将组合优化问题(最小割)形式化为一个整数线性规划。 对偶 :系统地推导了该线性规划松弛的对偶问题。 洞察 :发现对偶问题正是经典的最大流问题模型。 证明 :利用线性规划强对偶定理和全单模矩阵的整性性质,严格证明了最大流最小割定理。 这个例子清晰地展示了线性规划对偶理论如何作为一座桥梁,深刻地揭示了两个看似不同问题(最小割 vs. 最大流)之间内在的等价关系。