- 1、本文档共97页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数学建模与图论 专题板块系列 图论方法专题 定义2 满足下述条件的流 f 称为可行流: ① (容量限制条件) 对每一边vivj, 有0≤ fij ≤Cij ; ② (平衡条件) 对于中间点vk有∑fik =∑fkj , 即中 间点vk的输入量 = 输出量. 如果f 是可行流, 则对收、发点vt、vs有∑fsi =∑fjt =Wf, 即从vs点发出的物质总量= vt点输入的量. Wf称为网络流 f的总流量. 网络流问题 一个可行流 f = { f ij }, 当 f ij = C ij时, 则称流 f 对边vivj是饱和的; 当f ij<C ij时, 则称流 f 对边是非饱和的. 把f ij = 0的边称为零流边, f ij >0的边称为非零流边. 若 μ为网络中从vs到vt的一条链(有向图中的路), 定义链的方向是从vs到vt , 边的方向与链的方向相同称为前向边, 前向边的全体记为 μ+ ; 边的方向与链的方向相反称为后向边, 后向边的全体记为μˉ. 最大流问题 定义3 设f是一个可行流, μ是从vs到vt一条链. 如果满足 ① 当vivj∈μ+ 时, 0≤ f ij <Cij, 即 μ+ 中的每一条边都非饱和边; ② 当vivj∈μˉ时, 0< f ij ≤C ij, 即 μˉ中的每一条边都非零边. 则称μ为从vs到vt的关于f 的可增广链. 最大流问题 定义4 容量网络G = ( V, E, C ), 若点集V被剖分为两个非空集合S, S c = V \S, vs, vt分属于S, S c. 则把边集 (S, S c ) = {vivj | vivj∈E, vi∈S, vj∈S c }称为G的割集 . 若把一割集的边从网络中去掉, 则从vs到vt便不在相通, 所以割集是从vs到vt的必经之路.割集(S, S c )中所有边的容量之和, 称为这个割集的容量, 记为C (S, S c ). 最大流问题 定理1 设 f 为网络G = ( V, E, C ) 的任一可行流, (S, S c ) 是剖分vs , vt 的任一割集, 则有Wf ≤C (S, S c ). 若有可行流 f 和割集 (S, S c ), 使得Wf = C (S, S c ), 则f 一定是G的最大流, 而 (S, S c ) 必定是G 中所有割集中容量小的一个, 即最小割集. 例20:给出网络的割。 2 3 4 3 1 2 5 最大流问题 定理2 (最大流——最小割定理) 任一个网络中G中, 从vs到vt的最大流的流量等于分割vs, vt的最小割的容量. 推论 可行流f是最大流的充要条件是不存在从vs到vt的(关于f的)可增广链. 最大流问题 实际问题中,一个网络会出现下面两种情况: ⑴ 发点和收点都不止一个. 解决的方法是再虚设一个发点vs和一个收点vt ,发点vs到所有原发点边的容量都设为无穷大, 所有原收点到收点vt 边的容量都设为无穷大. ⑵ 网络中除了边有容量外,点也有容量. 解决的方法是将所有有容量的点分成两个点,如点v有容量Cv ,将点v分成两个点v和v,令 C(vv ) = Cv . 最大流问题 例21:求网络的最大流。 3 5 3 5 4 探索:单向调整法: 双向调整法:Ford-Fulkerson算法 最大流问题 例22: 图6-24表明一个网络及初始可行流, 每条 边上的有序数表示 (C ij , f ij ). 求这个网络的最大 流. 标号算法: 最大流问题 一般提法: 已知网络G = ( V, E, C ) , 每条边vivj∈E除了已给容量Cij外, 还给出了单位流量的费用bij (≥0). 所谓最小费用流问题就是求一个总流量已知的可行流f = { f ij }使得总费用最小. 当要求f为最大流时, 此问题即为最小费用最大流问题. 最小费用流问题 例23:求下列网络的最小费用流。 3,1 4,2 3,6 5,2 4,2 负回路算法: 迭加算法: 最小费用流问题 Dijkstra算法:求某一顶点到其余顶点的最短路 最短路 6 8 -5 2 3 -3 7 4 例8:求下列任意两点的最短路和距离。 最短路 Floyd算法:求任意两顶点的最短路 设A = (aij )n×n为赋权图G = (V, E, F)的权矩阵, dij表示从vi到vj点的距离, rij表示从vi到vj点的最短路中一个点的编号. ① 赋初值. 对所有i, j, dij = aij, rij = j. k = 1. 转向②. ② 更新dij , rij . 对所有i, j, 若dik + dk j<dij , 则令dij = dik + dkj , rij
文档评论(0)