最大流最小割定理

原文:http://en.wikipedia.org/wiki/Max-flow_min-cut_theorem

1. 在优化理论中,最大流最小割定理指:在一个网络流中,能够从源点到达汇点的最大流量,等于,如果从网络中移除就能够导致网络流中断的边的集合的最小容量和。

2. 定义:

      假设N=(V,E)是一个有向图,其中结点s和t分别是N的源点和汇点。 

      边(u,v)的容量c(u,v)定义为:能够通过该边的最大流量。

      通过每条边的f(u,v)的需要满足如下约束:

      (1)f(u,v) <= c(u,v),即容量约束。

      (2)对于任意v不属于{s,t},有sum{ f(u,v) } = sum{ f(v,u) },即流入某个中间结点的流量等于从这个结点流出的流量。

      网络流定义f定义为|f| = sum{ f(s,v) },代表从源点流入汇点的流量。

      最大流问题,是求得|f|的最大值。

      s-t割定义为对V的一个二划分,其中s和t属于不同的两个集合S和T。割集就是{ (u,v)| u属于S, v属于T }。显然,如果割集中的所有边被移除,那么|f| = 0。

      割的容量定义为c(S, T) = sum{ c(u,v), 其中u属于S,v属于T }。

      最小割问题,是求得这样一个s-t割C(S, T),使得S-T割的容量最小。

3. 最大流最小割定理

      一个s-t流的最大值,等于其s-t割的最小容量。

4. 应用: 项目权衡问题

4.1 问题

     假设有n个项目和m种设备。项目pi能够产生效益r_pi,设备qj需要耗费c_qj。每个项目需要多种设备,每种设备可以被多种项目使用。问题是,决定实施哪几个项目,以及购买哪几种设备,使得效益最高。

4.2 对应到最小割问题

      构建一个这样的网络:假设源点和汇点s和t,s与每个项目pi之间有一个边,其容量为r_pi;每个设备与t之间有一条边,其容量为c_qj。如果pi需要设备qj,那么pi与qi之间有一条边,其容量为无穷大。

      求出该网络流的最小割,即是项目选择的最大效益。

你可能感兴趣的:(c,优化,网络)