当前课程知识点:算法设计与分析 >  7 Network Flow >  7.1 Flows and Cuts >  Flows and Cuts

返回《算法设计与分析》慕课在线视频课程列表

Flows and Cuts在线视频

Flows and Cuts

下一节:Minimum Cut and Maximum Flow

返回《算法设计与分析》慕课在线视频列表

Flows and Cuts课程教案、知识点、字幕

网络流问题是运筹学的重要分支

其中也蕴含着大量的算法问题

在这一章

和大家一起来学习网络流问题

我们主要关注最大流问题

早在1955年

前苏联的科学家就研究了这样的一个问题

如何把尽量多的货物

从前苏联通过铁路网

运输到周围的一些国家

比如 波兰 捷克 奥地利 东德等等

这可以看作是最大流问题的最早研究

和最大流问题紧密相连的是最小割问题

它们都蕴含着丰富的算法问题

是组合优化领域里的奠基性问题

并且在数学上

它们呈现出优美的对偶结构

最大流问题和最小割问题

有着众多的实际和理论上的应用

比如 数据挖掘 项目选择 航线调度

两分匹配 图像分割 网络连通性

网络可靠性 分布式计算等等

首先建立起来流网络

流网络是在边上传输材料的抽象描述

考虑一个有向图G=(V, E)

假设这里没有平行的边

给定两个不同的节点s和t

s称为源

t称为汇

c(e)为边上的容量

下图中 s和t分别为源和汇

边上的数字表示边上的容量

每条边上的箭头指向表示可行的传输方向

定义s-t割是

节点集V的一个划分(A, B)

使得s∈A以及t∈B

进而可以定义割的容量为

所有从A指向B的边上的容量的总和

比如下图中

对V做一个划分

A中只包含s

其余的点属于B

那么 就形成一个s-t割

共有3条从A指向B的边

其上容量之和为30

则这个s-t割的容量为30

对于同一个图

我们可以做出不同的s-t割

比如可以作如下的划分

令A={s,2,3,4}

余下的点构成B

我们也得到一个s-t割

AB之间共有5条边

但是注意到其中有4条边是从A指向B的

这些边的容量之和等于62

最小割问题就是求一个s-t割

使得其上的容量最小

对于刚才的例子

它的最小割为令A={s,3,4,7}

余下的点构成B

对应割的容量为28

下面我们来定义最大流问题

首先给出流的定义

一个s-t流是对每条边进行赋值

称为边上的流量

可以看作关于边上流量的一个函数

要满足下面两点要求

第一点称为容量要求

即每条边e

其上的流量f(e)非负

并且不超过边上的容量c(e)

第二点称为守恒条件

对于V中除了s,t外的任意点v

其流入的量等于流出的量

流f的流值v(f)定义为

从源s流出的流量之和

下图给出了一个s-t流

每条边标注了2个数字

黑体数字表示容量

另一个数字表示流量

可以看出它满足s-t流的定义

流值为4

再比如下面这个流的流值为24

最大流问题就是

找一个s-t流

使得流值最大

对于同样的例子

它的最大流如图所示

流值为28

算法设计与分析课程列表:

1 Introduction of Algorithm

-1.1 Introduction

--Introduction

-1.2 A First Problem: Stable Matching

--A First Problem: Stable Matching

-1.3 Gale-Shapley Algorithm

--Gale-Shapley Algorithm

-1.4 Understanding Gale-Shapley Algorithm

--Understanding Gale-Shapley Algorithm

-Homework1

-Lecture note 1

--Lecture note 1 Introduction of Algorithm

2 Basics of Algorithm Analysis

-2.1 Computational Tractability

--Computational Tractability

-2.2 Asymptotic Order of Growth

--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 Graph

-3.1 Basic Definitions and Applications

--Basic Definitions and Applications

-3.2 Graph Traversal

--Graph Traversal

-3.3 Testing Bipartiteness

--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

--Lecture note 3 Graph

4 Greedy Algorithms

-4.1 Coin Changing

--Coin Changing

-4.2 Interval Scheduling

--Interval Scheduling

-4.3 Interval Partitioning

--Interval Partitioning

-4.4 Scheduling to Minimize Lateness

--Scheduling to Minimize Lateness

-4.5 Optimal Caching

--Optimal Caching

-4.6 Shortest Paths in a Graph

--Shortest Paths in a Graph

-4.7 Minimum Spanning Tree

--Minimum Spanning Tree

-4.8 Correctness of Algorithms

--Correctness of Algorithms

-4.9 Clustering

--Clustering

-Homework4

-Lecture note 4

--Lecture note 4 Greedy Algorithms

5 Divide and Conquer

-5.1 Mergesort

--Mergesort

-5.2 Counting Inversions

--Counting Inversions

-5.3 Closest Pair of Points

--Closest Pair of Points

-5.4 Integer Multiplication

--Integer Multiplication

-5.5 Matrix Multiplication

--Video

-5.6 Convolution and FFT

--Convolution and FFT

-5.7 FFT

--FFT

-5.8 Inverse DFT

--Inverse DFT

-Homework5

-Lecture note 5

--Lecture note 5 Divide and Conquer

6 Dynamic Programming

-6.1 Weighted Interval Scheduling

--Weighted Interval Scheduling

-6.2 Segmented Least Squares

--Segmented Least Squares

-6.3 Knapsack Problem

--Knapsack Problem

-6.4 RNA Secondary Structure

--RNA Secondary Structure

-6.5 Sequence Alignment

--Sequence Alignment

-6.6 Shortest Paths

--Shortest Paths

-Homework6

-Lecture note 6

--Lecture note 6 Dynamic Programming

7 Network Flow

-7.1 Flows and Cuts

--Flows and Cuts

-7.2 Minimum Cut and Maximum Flow

--Minimum Cut and Maximum Flow

-7.3 Ford-Fulkerson Algorithm

--Ford-Fulkerson Algorithm

-7.4 Choosing Good Augmenting Paths

--Choosing Good Augmenting Paths

-7.5 Bipartite Matching

--Bipartite Matching

-Homework7

-Lecture note 7

--Lecture note 7 Network Flow

8 NP and Computational Intractability

-8.1 Polynomial-Time Reductions

--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

--Definition of NP

-8.5 Problems in NP

--Problems in NP

-8.6 NP-Completeness

--NP-Completeness

-8.7 Sequencing Problems

--Sequencing Problems

-8.8 Numerical Problems

--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 Approximation Algorithms

-9.1 Load Balancing

--Load Balancing

-9.2 Center Selection

--Center Selection

-9.3 The Pricing Method: Vertex Cover

--The Pricing Method: Vertex Cover

-9.4 LP Rounding: Vertex Cover

--LP Rounding: Vertex Cover

-9.5 Knapsack Problem

--Knapsack Problem

-Homework9

-Lecture note 9

--Lecture note 9 Approximation Algorithms

10 Local Search

-10.1 Landscape of an Optimization Problem

--Landscape of an Optimization Problem

-10.2 Maximum Cut

--Maximum Cut

-10.3 Nash Equilibria

--Nash Equilibria

-10.4 Price of Stability

--Price of Stability

-Homework10

-Lecture note 10

--Lecture note 10 Local Search

11 Randomized Algorithms

-11.1 Contention Resolution

--Contention Resolution

-11.2 Linearity of Expectation

--Linearity of Expectation

-11.3 MAX 3-SAT

--MAX 3-SAT

-11.4 Chernoff Bounds

--Chernoff Bounds

-Homework11

-Lecture note 11

--Lecture note 11 Randomized Algorithms

Exam

-Exam

Flows and Cuts笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。