运筹学课件 最短路、最大流、邮路
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1,1) (1,1)
vt
(v3,1)
v1
(Vs,4)
(2,2)
v3
(-v2,1)
最大流问题
按照标号找到一条增广链:
vs
4
v1
1
v2
1
v3
1
vt
由上可知: θ =1
沿增广链对可行流进行调整。
最大流问题
例:用标号法求下面网络的最大可行流
v2
(3,3)
(4,3)
v4
(5,3) (3,0) (2,2)
最小费用最大流问题
例:求下面网络的最小费用最大流。弧旁数字 为( bij ,cij )。
(4,10)
v1
(2,5)
(1,7)
vt
Байду номын сангаас
vs
(1,8)
(6,2) (2,4) (3,10)
v2
v3
最小费用最大流问题
(1) 取f(0) =0为初始可行流。 (2)构造赋权有向图W( f (0) ),并求 出vs到vt的最短路。 (3)确定与最短路相应的增广链。 (4)对增广链进行调整,得到新的可行 流,再构造新的赋权有向图。直到找到 最小费用最大流。
最小费用最大流问题
于是在网络中寻求关于f的最小费用最大流就 等于在赋权有向图中,寻求从vs到vt的最短路。 因此有如下算法: 开始取f (0) =0,一般情况下,若在第k-1步得 到最小费用流f (k-1) ,则构造赋权有向图W ( f (k-1) ),在W( f (k-1) ),中,寻求从vs 到vt的最短路。若不存在最短路,则f (k-1)就是 最小费用最大流;若存在最短路,则在原网络 中得到相应的增广链,在增广链上对f (k-1)进 行调整。
vs
(1,0) (5,2)
(1,0)
vt
v1
(2,2)
v3
7.5 最小费用最大流问题
设一个单位流量的费用为bij, bij ≥0。 最小费用最大流问题即求一个最大流f,使流的总输送费用 最小。 当沿着一条关于可行流f的增广链μ ,以θ =1调整f,得到 新的可行流f’,b(f’)比b(f)增加值为: b(f’)-b(f)=[∑bij ( f’ - f )-∑ bij ( f’ - f )] =∑ bij -∑ bij 称为这条增广链的“费用” 可以证明:若f是所有可行流中费用最小者,而是关于f的 所有增广链中费用最小的增广链,,那么沿去调整f,得到 的可行流f’,,就是所有可行流中的最小费用流。这样当f’ 是最大流时,它也就是所求的最小费用最大流了。
16 30
59 41
17
6
1
22
17 31
3
23
5
18
使用Dijstra算法,上述问题最短路为1-3-6或1-4-6 即:第1、3年年初购买设备,或第1、4年年初购买设备 五年最佳总费用为53。
作业题:
某地7个村镇之间现有交通距离如图
求:1)从村1到其余各村的最短距离? 2)如要沿路架设电话线,如何使总长度最小同时又使每个村都 能安装上电话?
最大流问题
寻求最大流的标号法: 1、标号:从vs开始,给vs标上(0,∞),一般地取 一个标号点vi ,对一切标号点vj : (1)若在弧(vi,vj) 上, fij < cij则给vi标号( vi , l(vi )。这里l(vi )= =min[cij - fij ,l(vi ) ] (2)若在弧(vj,vi) 上, fij >0,则给vi标号( -vi , l(vi )。这里l(vi )= =min[ fij ,l(vi ) ] 重复上述步骤,一旦vt被标上号,表明得到一条从vs 到vt的增广链,转入调整过程。
1 1 2 3 4 5 2 16 3 22 16
(使用寿命为j-i年) 具体权数计算结果如下:
5 41 30 23 17 6 59 41 31 23 18
如:(2-4)权数为:a2+b1+b2=11+5+6=22
4 30 22 17
通过一个网络的最短路径
例 设备更新问题 :
2 16 30 22 41 4 23
2
24
5 11 10
20 8 1
15 3 * 10 4 8
7 20
6
6 *
通过一个网络的最短路径
狄克斯屈(Dijstra)方法(ωij≥0)
开始节点标永久标记[0,P],其余为临时标记[T,-] 找出与开始节点相邻的所有节点,为每一个设标记 [L,1],其中L值最小的节点标记右上角标上*,使之成 为永久标志。L为两节点间距离,1表示始于第一节点 从新的永久标志开始,找出从此节点出发可到达的所有 节点,计算这些节点的最短距离(现有距离和经新的永 久标志到达的距离的小的一个值),保持、新设或更改 这些节点的标志为 [最短距离,最短路径上前一节点标 号],比较图中所有没有*的标记(临时性标记),找出 距离最短的一个节点,使之成为永久性标记。重复这一 步,直到所有的节点都成为永久性标志为止。
最大流问题
2、调整过程: 按vt及其它点的第一个标号,反向追踪找 出增广链,并找出θ =min﹛cij-fij(对μ +);f (对μ - )﹜ ij 再令f’ =﹛fij+ θ (对μ +);fij- θ (对 μ - );fij(对非增广链上的弧)﹜ 去掉所有的标号,对新的可行流f’ 重新进 入标号过程。
线性规划方法 标号法
最大流问题
网络与流: 网络:给一个有向图D=(V,A),在 V中指定一点称为 发点(记为vs ),而另一点称为收点(记为vt),其余点叫 中间点,对应每一个弧(vi,vj)∈A,对应有一个C(vi, vj)≥0(或简写为cij) ,称为弧的容量。通常我们就把D 叫做一个网络。记作D=(V,A,C)。
通过一个网络的最短路径
k
[Dj,k]
j Lij
[Di ,m] i
从i-j时: 如果Di+Lij≥Dj,则不改变j的标记; 如果Di+Lij<Dj,则改为[Di+Lij,i]
通过一个网络的最短路径
例5-5 狄克斯屈方法 :
[20,1] [T,-]
2
[0,P]
1
20 8
[25,3] [T,-] 10
4 8
11
[41,6] [T,-]
7
15 3
10
20 6 6 *
*
[T,-] [15,1]
[T,-] [21,3]
*
24
*
[35,4] [44,2] [T,-]
5
*
*
通过一个网络的最短路径
从起始点到每一点的最短距离为: 节点 最短距离 路径 2 20 1-2 3 15 1-3 4 25 1-3-4 5 35 1-3-4-5 6 21 1-3-6 7 41 1-3-6-7
流:定义在弧集合A上的一个 函数f=﹛f(vi,vj)﹜,并称 f(vi,vj)为弧(vi,vj)上的流量,可简写为fij 也可以描述成“加在网络各条弧上的一组负载量(fij)”
最大流问题
可行流 可行流:满足下述条件的流f称为可行流:
1)容量限制条件:对每一条(vi,vj) ∈A,
0≤ fij≤cij
最小费用最大流问题
由于bij ≥0,所以f=0必是流量为0的最小费用流,余下 的问题就是如何去寻求关于f的最小费用增广链。 为此,可构造一个赋权有向图W(f),它的顶点是原网 络D的顶点,而把D中的每一条弧(vi,vj)变成两个相 反方向的弧(vi,vj)和(vj,vi)。定义W(f)中弧 的权wij为: bij ( fij < cij );+∞( fij = cij ) wji为: -bij ( fij > 0);+∞( fij =0 )
最大流问题
增广链:设f是一个可行流,μ 是从vs到vt的 一条链,若μ 满足下列条件,则称之为增广链: 在弧(vi,vj) ∈μ +,0≤f<c, 在弧(vi,vj) ∈ μ - ,0<f≤c 。 截集:对网络D=(V ,A,C),若点集V被剖分为 两个非空集合V1和V1,使vs ∈ V1 , vt ∈ V1,则 把弧集( V1,V1 )称为截集。 截量:把截集中所有弧的容量之和称为这个截集的 容量。
最小费用最大流问题
调整量为:
θ =min﹛min[cij-fij (k-1) ] (对μ
+);
min fij (k-1) (对μ - )﹜ 令fij (k) = fij (k-1) + θ (对μ +); fij (k-1) - θ (对μ - ); fij (k-1) (对非增广链上的弧) 得到新的可行流f(k) ,再对f(k)重复上述步骤。
最大流问题
例:用标号法求下面网络的最大可行流
v2
(3,3)
(4,3)
v4
(5,3) (3,0) (2,1)
vs
(5,1)
(1,1)
vt
v1
(2,2)
v3
最大流问题
例:用标号法求下面网络的最大可行流
(-v1,1)
(V2,1) (4,3)
v2
(3,3)
v4
(5,3) (3,0) (2,1)
vs
(0,∞) (5,1)
2)平衡条件,即对于中间点,流出量=流入量。 可行流的流量:即发点的净输出量或收点的净输入量。 最大流问题就是求一个流,使其流量达到最大。且满 足:0≤fij≤cij, ( vi,vj∈A), ∑Fij- ∑Fji= V(f) (i=s) ; 0 (i≠s,t); -v(f) (i=t)
最大流问题
最短路径问题的应用
例:设备更新问题
某厂使用一种设备,每年年初设备科需要对该设备的更新与否作出 决策。若购置新设备,就要支付购置费;如果继续使用则需要支付 维修费,设备使用的年数越长,每年所需的维修费越多。现若第一 年年初购置了一台新设备,问在5年内如何制定设备更新计划,以 便使新设备购置费和维修费的总费用最小?已知设备在5年内各年 年初的价格及设备使用不同年数的维修费如下:
7.3 最短路问题
问题 在一个网络中,给定一个始点Vs,和一 个终点Vt,求Vs 到Vt的一条路,使路长 最短。 求解 能划分阶段的,可采用动态规划方法。 不能分阶段的,采用狄克斯屈方法。
通过一个网络的最短路径
如果P是D中从Vs 到Vt的最短路,Vi是P中的一个点, 那么,从Vs 沿P到Vi的路是从Vs 到Vi的最短路。
4 7 1 12 3 2 15 26 5 25 6 17 16 15
10
10
12
24
11
7
最大流问题
最大流问题(有向图或网络) 在一定条件下,使网络系统中从开始点到结束 点之间的某种物资流(交通流、信息流、资金 流、水流等 )的流量达到最大的问题。限制 条件是每一条边的最大通过能力(流量)不等。 但有多条路。 最大流量求解
最大流问题
两个重要结论: 1、任何一个可行流的流量都不会超过任一截集的容量。 2、若对于一个可行流f *,网络中有一个截集( V1*,V1*), 使v( f *)=C(V1*,V1 *),则f *必是最大流,而( V1*, V1 *)必是所有截集中容量最小的一个,即最小截集。
定理:可行流f *是最大流,当且仅当不存在关于f *的增广链。 于是有如下结论:最大流量最小截量定理:任一个网络中,从vs 到vt的最大流量等于分离vs,vt的最小截集的容量。
第i年 价格 ai 使用寿命 费用 bi 1 11 0-1 b1 5 2 11 1-2 b2 6 3 12 2-3 b3 8 4 12 3-4 b4 11 5 13 4-5 b5 18
最短路径问题的应用
例 设备更新问题
把求总费用最小问题化为最短路径问题。用点 i (i=1,2,3,4,5)表示第 i 年买进一台新 设备。增设一点 6 表示第五年末。从i点到i+1,……, 6 各画一条弧,弧(i , j)表示在 第 i 年买进的设备一直使用到第 j 年年初(第 j -1年年末)。求1点到6点的最短路径。 路径的权数为购买和维修费用。 弧(i , j)的权数为第i年的购置费ai+从第i年使用至第j-1年末的维修费之和。 从第i年使用至第j-1年末的维修费:b1+…+bj-i
最小费用最大流问题
W( f(0) ),最短路及增广链, θ =5
4
v1
2
1
vt
vs
1
6 2 3
v2
v3
最小费用最大流问题
( f(1 )),V ( f(1) )=5
0
v1
5
5
vt
vs
5
0 0 0
v2
v3
最小费用最大流问题
饱和弧:若给一个可行流 f=﹛ fij ﹜,把网络 中使fij = cij的弧称为饱和弧, fij < cij的弧称 为非饱和弧。 零流弧(fij =0);非零流弧(fij >0) 设网络中有一从vs到vt到的一条链μ ,则与链 的方向一致的弧称为前向弧,(前向弧的全体 记μ + ),与链的方向相反的弧称为后向弧。 (后向弧的全体记μ - )