主要内容
- 最小树
- 最短有向路
- 最大流
- 最小费用
- 运输问题
- 指派问题
几个概念
回路,简单回路,连通,连通分支。有向路,简单有向路。
图的割集
在图G中,如果删去一条边,使图的连通分支数量增加,则称它为图G的割边。当除去边割后,连通图变为不连通,而除去边割的真子集后,连通图仍然连通
支撑树
如果G=(V,E)的支撑子图G’=(V’,E’)是树,称其为G的支撑树,G中属于支撑树的边称为树枝,不属于支撑树的边称为弦。
图G有支撑树的充要条件是G是连通图。
具有最小权的支撑树称为最小支撑树(最小树)。
最小支撑树的Kruskal算法
将所有边按权值从小到大排序,从权值最小的边开始选树枝,如果可能形成圈则跳过,直到选够顶点数减1 的树枝。
T 是最小支撑树的充要条件是:
加入任何弦形成的圈中,弦的权值最大。(Kruskal算法)
任何树枝都是所在割集中权值最小的边。(Dijkstra 算法)
最小支撑树Dijkstra算法
从图G的n-1个独立割集中每一个都选取一条权最小的边,从而构成一个最小树。
不定期最短路问题的Dijkstra 算法
连通图G=(V,E)各边 (vi,vj) 有权 lij ( lij=∞ 表示两点间无边),任意给定两点 vi,vj ,求一条道路,使它是从到的所有道路中总
权最小的道路
条件所有权值非负。
值迭代公式
每次确定一个不变的函数值,同时仅修改经过新确定的不变节点到其他节点的路程。
用值迭代法求非负权值不定期最短路问题的特点:
每步迭代后有一个新的最优函数值不再发生变化,这个新最优函数值是未固定的函数值中数值最小的
最大流问题
确定使网络总流量达到最大的可行流
- 等于割集容量的可行流一定是最大流
- 目标:从发点到收点的总输油量最大
- 约束: 1)容量约束,各边流量不大于容量
2)流量平衡约束,各点进出流量总和相等
流量平衡约束
∑(vi,vj)∈Exij=∑(vk,vj)∈Exkj∀vi∈V,i≠s,t
容量约束
0≤xij≤cij,∀(vi,vj)∈E
增广链定理
一个可行流是最大流当且仅当不存在他的增广链。
可增广链
设 μ 是从 vs 到 vt 的一条链,定义 μ 的方向为从 vs 到 vt 的方向,对于 μ 上的任意边,如果其方向和 μ
相同则称其为前向边,否则为后向边,用 μ+ 和 μ−
分别表示前向边和后向边的集合,如果 X={
xij} 是一个可行流,且满足
则称 μ