当前课程知识点:算法设计与分析 > 7 Network Flow > 7.2 Minimum Cut and Maximum Flow > Minimum Cut and Maximum Flow
下面的结果
把流的问题和割的问题联系在一起
我们称为流值引理
令f是任意的流
(A, B)是任意的s-t割
那么 通过这个割的流量
也就是从A流出的量减去流入A的量
等于流f的流值
例如 下图给出了一个s-t流
令A={s} 构建s-t割
通过这个割的流量为24
而按照流值的定义
这个流的流值也是24
对于同样的例子
同样的s-t流
我们令A={s,2,3,4}
得到一个新的s-t割
离开A的流量为25
流入A的流量为1
则通过这个割的流量也是24
再令A={s,3,4,7}
又得到一个s-t割
离开A的流量为28
流入A的流量为4
则通过这个割的流量也是24
下面来证明流值引理
令f是任意的流
(A, B)是任意的s-t割
那么从A流出的量减去流入A的量
等于f的流值
f的流值v(f)定义为从源s流出的流量之和
根据流的守恒要求
A中所有点
除了s外 流入的量等于流出的量
因此v(f)等于A中每个点
流出量与流入量之差再求和
如果一条边的两个端点都在A中
那么上式中
一定对应着一正一负的两项可以消掉
剩余正好为从A流出的量减去流入A的量
命题得证
流和割之间还构成了对偶关系
首先我们给出它们之间的弱对偶性
令f是任意的流
(A, B)是任意的s-t割
那么f的流值不超过这个割的容量
比如下面这个例子中
令A={s} 构建s-t割
割的容量为30
那么任意流的流值不超过30
下面我们来证明弱对偶性
我们已经得到f的流值v(f)
等于从A流出的量减去流入A的量
它小于等于A流出的量
又小于等于从A指向B的边上的容量的总和
这也就是我们定义的(A,B)割的容量
得到了所需的结论
下面我们给出最优性条件
由弱对偶性
我们可以知道
若f是任意的流
(A, B)是任意的s-t割
如果f的流值等于(A, B)割的容量
那么f是最大流
(A, B)是最小割
比如下面的例子中
流值和(A, B)割的容量都是28
对应的流和割分别为最大流和最小割
-1.1 Introduction
-1.2 A First Problem: Stable Matching
--A First Problem: Stable Matching
-1.3 Gale-Shapley Algorithm
-1.4 Understanding Gale-Shapley Algorithm
--Understanding Gale-Shapley Algorithm
-Homework1
-Lecture note 1
--Lecture note 1 Introduction of Algorithm
-2.1 Computational Tractability
-2.2 Asymptotic Order of Growth
-2.3 A Survey of Common Running Times
--A Survey of Common Running Times
-Homework2
-Lecture note 2
--Lecture note 2 Basics of Algorithm Analysis
-3.1 Basic Definitions and Applications
--Basic Definitions and Applications
-3.2 Graph Traversal
-3.3 Testing Bipartiteness
-3.4 Connectivity in Directed Graphs
--Connectivity in Directed Graphs
-3.5 DAG and Topological Ordering
--DAG and Topological Ordering
-Homework3
-Lecture note 3
-4.1 Coin Changing
-4.2 Interval Scheduling
-4.3 Interval Partitioning
-4.4 Scheduling to Minimize Lateness
--Scheduling to Minimize Lateness
-4.5 Optimal Caching
-4.6 Shortest Paths in a Graph
-4.7 Minimum Spanning Tree
-4.8 Correctness of Algorithms
-4.9 Clustering
-Homework4
-Lecture note 4
--Lecture note 4 Greedy Algorithms
-5.1 Mergesort
-5.2 Counting Inversions
-5.3 Closest Pair of Points
-5.4 Integer Multiplication
-5.5 Matrix Multiplication
--Video
-5.6 Convolution and FFT
-5.7 FFT
--FFT
-5.8 Inverse DFT
-Homework5
-Lecture note 5
--Lecture note 5 Divide and Conquer
-6.1 Weighted Interval Scheduling
--Weighted Interval Scheduling
-6.2 Segmented Least Squares
-6.3 Knapsack Problem
-6.4 RNA Secondary Structure
-6.5 Sequence Alignment
-6.6 Shortest Paths
-Homework6
-Lecture note 6
--Lecture note 6 Dynamic Programming
-7.1 Flows and Cuts
-7.2 Minimum Cut and Maximum Flow
--Minimum Cut and Maximum Flow
-7.3 Ford-Fulkerson Algorithm
-7.4 Choosing Good Augmenting Paths
--Choosing Good Augmenting Paths
-7.5 Bipartite Matching
-Homework7
-Lecture note 7
-8.1 Polynomial-Time Reductions
-8.2 Basic Reduction Strategies I
--Basic Reduction Strategies I
-8.3 Basic Reduction Strategies II
--Basic Reduction Strategies II
-8.4 Definition of NP
-8.5 Problems in NP
-8.6 NP-Completeness
-8.7 Sequencing Problems
-8.8 Numerical Problems
-8.9 co-NP and the Asymmetry of NP
--co-NP and the Asymmetry of NP
-Homework8
-Lecture note 8
--Lecture note 8 NP and Computational Intractability
-9.1 Load Balancing
-9.2 Center Selection
-9.3 The Pricing Method: Vertex Cover
--The Pricing Method: Vertex Cover
-9.4 LP Rounding: Vertex Cover
-9.5 Knapsack Problem
-Homework9
-Lecture note 9
--Lecture note 9 Approximation Algorithms
-10.1 Landscape of an Optimization Problem
--Landscape of an Optimization Problem
-10.2 Maximum Cut
-10.3 Nash Equilibria
-10.4 Price of Stability
-Homework10
-Lecture note 10
--Lecture note 10 Local Search
-11.1 Contention Resolution
-11.2 Linearity of Expectation
-11.3 MAX 3-SAT
-11.4 Chernoff Bounds
-Homework11
-Lecture note 11
--Lecture note 11 Randomized Algorithms
-Exam