1k likes | 1.13k Views
运筹学. 图与网络分析. 第十章 图与网络. 赵 玮. 主要内容:. 10.1 基本概念 10.2 最短路问题 ( 一) Bellman 最优化原理 (二) Dijustra 算法(双括号法) (三) 通信线路布施问题 (四) 设备更新问题 10.3 最小生成树 (一) 基本概念与理论 (二) Kruskal 算法(加边法、破圈法) (三) 丢边法(破圈法). 主要内容:. 10.4 最大流问题 (一) 基本概念
E N D
运筹学 图与网络分析
第十章 图与网络 赵 玮
主要内容: • 10.1 基本概念 • 10.2 最短路问题 (一)Bellman最优化原理 (二)Dijustra算法(双括号法) (三)通信线路布施问题 (四)设备更新问题 • 10.3 最小生成树 (一)基本概念与理论 (二)Kruskal算法(加边法、破圈法) (三)丢边法(破圈法)
主要内容: • 10.4 最大流问题 (一)基本概念 (二)双标号算法 • 10.5 最小费用最大流 (一)基本概念 (二)求解算法
§ 10.1 基本概念 1 图 def1:一个无向图(简称为图)G是一个有序的二元组,记为G=(V, E)。其中 V={V1…Vn}称为G的点集合,E=(eij)称为G的边集合,evj为连接VV与Vj的边。
若N和E均为有限集合,则称为G为有限图,否则称无限图。若N和E均为有限集合,则称为G为有限图,否则称无限图。 • 若G中既没有有限回路(圈),也没有两条边连接同一对点,则称G为简单图。如右图之(a),右图之(b)不是简单图。 • 若G为简单图,且G中每个点对之间均有一条边相连,则称G为完全图。如图(a)是简单图,但不是完全图。 图 a 图 b
def 2:一个有向图G是一个有序的二元组,记为G=(V, A),其中V=(V1V2…Vn)称为G的点集合,A={aij}称为G的弧(有向边)集合,aij是以Vi指向Vj的一条弧。 • |V|=n表示G中节点个数为n,此节点个数n也称为图G的阶 • |A|=m表示有向图G中弧的个数为m • 任一顶点相关联(连接)的边的数目称为该顶点的次数
2 连通图 def 3:在有向图G中,一个点和边的交替序列{Vi eij Vj…Vk ekl Vl} 称为G中从点Vi到Vl的一条路,记为A,其中Vi为此路A的起点,Vj为路A的终点;若路A的起点与终点重合,则称A为回路;又若G中点Vi与Vj间存在一条路,则称点Vi与Vj是连通的;若G中任何二点都是连通的,则称G为连通图,或图G为连通的。在无向图中有对应的概念。
3 子图 def 4:设有两个图:G1= (V1, E1) ,G2= (V2, E2)若有 ,则称G1为G2的子图, 记作 ;若有 V1=V2而 ,则称图 G1= (V1, E1) 是图G2= (V2, E2)的生成子图(支撑 子图)。
V1 V1 V3 V3 V2 V2 V4 V4 • 例:下示图G1是图G的子图,图G2是图G的生成子图。 V1 V2 V4 (a)图G (b)图G1 (c)图G2
4 赋权图(加权图)与网路 def 5:设G是一个图(或有向图),若对G的每一条边(或弧)eij都赋予一实数ωij,称其为该边(弧)的权,则G连同其他弧上的权集合称为一个赋权图,记作G= (V, E, W) 或G= (V, A, W),此中W={ωij},ωij为对应边(弧)eij的权。若G= (V, E, W) (或(V, A, W))为赋权图,且在G的V中指定一个发点(常记为Vs)和一个收点(记为Vt),其余点称为中间点,则称这样指定了发点与收点的赋权图G为网络。
§ 10.2 最短路问题 def 6:设G =(V, A, W)为一个赋权有向图,Vs为指定发点,Vt为指定收点,其余为中间点,P为G中以Vs到Vt的一条有向路,则称 为路P的长度,若有 则称 为G中从Vs到Vt的最 短路, 为该最短路的长度(此中F为G中 所有从Vs到Vt的全体有向路的集合)。
最短路问题在企业厂址上选择,厂址布 局,设备更新,网络线路安装等工程设计与 企业管理中有重要应用。
(一)Bellman最优化原理 1 命题1:若P是网络G中从Vs到Vt的一条最小路,Vl是P中除Vs与Vt外的任何一个中间点,则沿P从Vs到Vl的一条路P1亦必是Vs到Vl的最小路。 P1 Vs V1 Vl V2 Vt P2
证明(反证): 若P1不是从Vs到Vl的最小路,则存在另一条 Vs 到Vl的路P2使W(P2)<W(P1),若记路P中从Vl到Vt的路为P3。则有W(P2) + W(P3)<W(P1) + W(P3)=W(P),此说明G中存在一条从Vs沿P2到Vl沿P3再到Vt的更小的一条路,这与P使G中从Vs到Vt的一条最小路矛盾。
2 算法思想: 设G中从Vs到Vt的最小路P:Vs…Vj…Vk…Vt,则由上述命题知:P不仅是从Vs到Vt的最小路,而且从Vs到P中任意中间点的最短路也在P上,为此可采用如下求解思路: ⑴为求得Vs到Vt的最短路,可先求得Vs到中间点的最短路,然后由中间点再逐步过渡到终点Vt。
⑵在计算过程中,需要把V中“经判断为最短路⑵在计算过程中,需要把V中“经判断为最短路 P途径之点i”和“尚未判断是否为最短路P途径 之点j”区分开来,可设置集合I和J,前者归入 I,后者归入J,并令算法初始时,I中仅包含 Vs,其他点全在J中,然后随着求解过程的进 行,I中的点逐渐增加(相应J中的点逐渐减 少),直到终点Vt归入I(相应J=φ),此时 迭代结束。I称为已标号集合,J称为未标号集合。
⑶ 为区分中间点Vk是否已归入I中以及逆向求解最短路的方便,可在归入I中的点Vj上方给予双标号(lj, Vk),此中lj表示从Vs到Vj最短路的距离,而Vk则为从Vs到Vj最短路P中Vj的前一途径点。 ⑷ 为在计算机上实现上述求解思想,还需引入G中各点间一步可达距离阵D=(dij)n×n,此中 |V|=n
⑸以下介绍的是适用于弧权为正值的有向网络中求最短有向路的Dijkstra算法,又称双括号法。事实上该算法亦适用于弧权为负值的有向网络求最短路问题。⑸以下介绍的是适用于弧权为正值的有向网络中求最短有向路的Dijkstra算法,又称双括号法。事实上该算法亦适用于弧权为负值的有向网络求最短路问题。
由图G建立一步可达距离阵D=(dij)n×n (二)Dijkstra算法(双括号法) 给V1(Vs)括号(l1,Vk)=(0,s)给出已标号集合I和未标号集合J的元素 对于给定的I和J,确定集合A={aij |Vi∈I,Vj ∈J} 计算距离 给Vk括号(lk ,Vh) lk=lh + Whk I=I + {Vk} J=J – {Vk} N A=φ 或 J=φ Y 从Vt逆向搜索双括号,可得最小路P途径各点及最小路距离 图 一 END
例1(教材208页)求G的最短路, 图G形如下形。 解:利用上述Dijkstra算法步骤可得表一所示求 解过程,并有最短路P:V6 V4 V3 V1, 最短距离|P|=2+1+5=8。 图(一) 5 1 2
例2 求如下G之最小路 V1 V2 V6 V8 2 7 4 6 7 3 3 6 V3 1 1 3 6 6 图 二 V4 V5 V7
解 表 二
由表三知 V1 V8 最短路P1:V8 V6 V2 V1 最短路P2:V8 V6 V5 V3 V2 V1 最短路长 |P1|=2+7+4=13 |P2|=2+3+3+1+4=13 4 7 2 4 1 3 3 2
(三)通信线路布设问题(教材P209) 例3. 甲、乙两地之间的公路网络如图三,电信公司准备在甲、乙两地沿公路沿线架设一光缆线,问应如何架设此线路方案,以使光缆线路架设总长度最短? 图 三
解:本例之一步可达距离阵如 W= G={V,E,W},V={V1V2V3V4V5V6V7},本例G为无向图,求解过程见表四
① 由表四可得 最短路P: V7 V6 V5 V3 V1 最短距离 |P|=10+4+2+6=22 ② 还可得到自V1(甲)到任一中间点之最短路,例如 V1 V4 最短路由表四可知为 P14 V4 V5 V3 V1|P14|=18 6 2 4 10
(四)设备更新问题(教材P212) 例4. 某公司设备管理部门欲制定一个五年期某设备的更新计划,要求给出这五年中购置该设备的年份及购置新设备的使用年限。 在此五年中购置该设备的年初价格见表五,设备使用不同年限的维护费见表六。
表五 (单位:万元) 表六 (单位:万元/年)
解:设 Vi —i年初购进一台新设备 aij —i年初购进之新设备使用到第j年初(j-1年末) ωij—i年初购进之新设备使用到第j年初(j-1年末) 之总费用 根据表五与表六之有关数据可计算 ωij 详可 参见表七;由表七可得W阵如表八;由表八可得 有向图四;将表八可转换成一步可达阵如表九, 求解过程见表10。
表八 费用阵(单位:万元) j ωij i
表10 设备更新求解过程 min
由表10可知最短费用流(相当于最短路) P: V6 V3 V1 |P| = 53万元 V4
结论: 公司五年期设备更新方案有两个:A与B,总费用均为53万元。 A 方案:第1年初购置设备使用到第3年初(第2年末),第3年初再购置新设备使用到第 5年末(第6年初) B 方案:第1年初购置设备使用到第4年初(第3年末),第4年初再购置新设备使用到第5年末(第6年初)
§10.3 最小生成树 最小生成树在网络(电信网、公路网等)设计与企业管理中有重要应用。
V1 V1 V1 V2 V2 V2 V3 V3 V3 V4 V4 V4 V5 V6 V5 V5 V6 V6 (一)基本概念与理论 def 7:无圈的连通图(无向图)称为树,常 记为符号T。如图五的(a)为树,(b)有圈, (c)不连通,故(b)(c)均非树。 (a) (b) (c) 图 五
def 8:若T是图G的一个生成子图而且又是一 棵树,则称树T是图G的一个生成树(又称支 撑树);又若树T=(V1,E1)为图 G=(V,E,W)的 一个生成树,令 称为树T的权 (或长度),则G中具最小权的生成树称为G 的最小生成树,亦即若有 则有 T* 为G 的最小生成树,此中F为G的全 体生成树的集合。
Th1:设T=(V,E)是|V|≥ 3的一个无向图,则下列六个关于树的定义是等价的: ⑴T连通且无圈 ⑵ T的任何两个顶点间均必有一条且仅有一条通 路相连 ⑶ T连通且有n-1条边,此中n=|V| ⑷ T有n-1条边且无圈,此中n=|V| ⑸ T无圈,但在T中任两个不相邻的顶点间添加 一条边,则可构成一条回路 ⑹ T连通,但去掉任一条边后就不连通,即树T 是连通且边数最小的图
(二)Kruskal算法(加边法,破圈法) 1. 算法思想: ① 由Th1(4)结论:若|V| = n ,则树T有n-1条边且 无圈 ② 由def 8,最小生成树T*是具有最小权的生成树 故可E中各边按权大小排列设为W1≤ W2≤ … ≤ Wm,对应?边依次为a1,a2, … am,然后将 a1,a2, … 依次进入集合S,直到获得S的生成树T 为止(树的判断可由Th1(4)结论),则此树T必 为最小生成树。
设G=(V,A,W), |V| = n , |A| = m S— 待生成的集合 i — S中进入最小生成树的边序号 j — 逐个进入S的G的边序号 ei+1 — S中进入最小生成树的边 表 11
对G中各边按权大小顺序排列,不妨设为W1≤ W2≤ … ≤ Wm 填写Wj对应的各边aj表11 S=φ ,i = 0,j=1 Y |S| = n-1 N Y {aj} ∪ S构成回路? N ei+1=aj S={ei+1} ∪ S i=i +1 j=j+1 T*=S 打印T* j=j+1 END 图 六
例5(教材P218) 某大学准备对其所属的 7 个学院办公室计算机联网.这个网络的可能联通的途径如图七所示,图中V1,…,V7表示7个学院办公室,边eij为可能联网的途径。边上所赋的权数为这条路线的长度(单位:百米)。试设计一局域网既能联结七个学院办公室,又能使网络线路总长度为最短。