1、第十一章 图与网络规划,11.1 图与网络的基本概念 11.2 树及最小树问题 11.3 最短路问题 11.4 网络最大流问题 11.5 最小费用最大流问题,2019/4/9,2,11.1 图与网络的基本概念,图的概念 所谓图,就是顶点和边的集合,点的集合记为V,边的集合记为E,则图可以表示为:G(V,E),点代表被研究的事物,边代表事物之间的联系,因此,边不能离开点而独立存在,每条边都有两个端点。 在画图时,顶点的位置、边和长短形状都是无关紧要的,只要两个图的顶点及边是对应相同的,则两个图相同。,2019/4/9,3,图的表示,2019/4/9,4,点与边,顶点数 集合V中元素的个数,记作p
2、(G)。 边数 集合E中元素的个数,记作q(G)。 若e=u,vE,则称u和v为e的端点,而称e为u和v的关联边,也称u,v与边e相关联。 例如图中的图G,p(G)=6,q(G)=9, v1,v2是e1和e2的端点,e1和e2都是v1和v2的关联边。,2019/4/9,5,点边关系,若点u和v与同一条边相关联,则u和v为相邻点;若两条边ei和ej有同一个端点,则称ei与ej为相邻边。 例如在图中v1和v2为相邻点, v1和v5不相邻;e1与e5为相邻边,e1和e7不相邻。,2019/4/9,6,简单图,若一条边的两个端点是同一个顶点,则称该边为环;又若两上端点之间有多于一条边,则称为多重边或平
3、行边。 例如图的e8为环,e1,e2为两重边,e4,e5也是两重边。 含有多重边的图称作多重图。 无环也无多重边的图称作简单图。,2019/4/9,7,图的次,次 点v作为边的端点的次数,记作d(v),如图中,d(v1)=5, d(v4)=6等 端点次为奇数的点称作奇点;次为偶数的点称作偶点。 次为1的点称为悬挂点,与悬挂点连接的边称作悬挂边; 次为0的点称为孤立点。 图中的点v5即为悬挂点,边e9即为悬挂边,而点v6则是弧立点。,2019/4/9,8,定理,若图G中所有点都是孤立点,则称图G为空图。 定理1 所有顶点的次的和,等于所有边数的2倍。即,2019/4/9,9,定理2 在任一图中,
4、奇点的个数必为偶数。 设V1和V2分别是图G中次数为奇数和偶数的顶点集合。由定理1有,2019/4/9,10,链,由两两相邻的点及其相关联的边构成的点边序列称为链。 v0称为链的起点, vn称为链的终点。 若v0 vn则称该链为开链,反之称为闭链或回路。,2019/4/9,11,简单链,若链中所含的边均不相同,则称为简单链;若点均不相同,则称为初等链或通路。 除起点和终点外点均不相同的闭链,称为初等回路或称为圈。 例如图中,是一条链,且是开链,也是简单链,但不是初等链,因为v1出现两次。,2019/4/9,12,圈,若链中所含的边均不相同,则称为简单链;若点均不相同,则称为初等链或通路。除起点
5、和终点外点均不相同的闭链,称为初等回路或称为圈。 例如图中,是一个圈。,2019/4/9,13,连通性,若一个图G的任意两点之间均至少有一条通路(初等链)连接起来,则称这个图G是一个连通图,否则称作不连通图。 例如图中,v1和v6之间没有通路,因此它不是连通图,而如果去掉v6,则构成一个连通图。,2019/4/9,14,连通的意义,连通是一个很重要的概念,如果一个问题所对应的图是一个不连通图,则该问题一定可以分解成互不相关的子问题来加以研究,即可以把不连通图分解成连通的子图来研究。,2019/4/9,15,子图,子图的定义 设, G1=(V1,E1), G2=(V2,E2),如果V1V2 ,又
6、E1E2 ,则称G1是G2的子图。,必须指出,并不是从图G2中任选一些顶点和边在一起就组成G2的子图G1,而只有在G2中的一条边以及连接该边的两个端点均选入G1时,G1才是G2的子图。,2019/4/9,16,特殊子图,当G1中不包含G2中所有的顶点和边,则称G1是G2的真子图。 部分图 若V1=V2,E1E2 ,则称G1为G2的一个部分图。 若V1V2 , E1= u,v | uV1, vV1,则称G1是G2中 由V1导出的导出子图。,2019/4/9,17,有向图,在有些图中,边是没有方向的,即u,v=v,u,这种图称为无向图。 而有些关系是不对称的,例如父子关系、上下级关系、加工工序的先
7、后顺序等都具有单向性,用图来表示这些关系时,得到的边是具有方向的,用带箭头的线来表示,称为弧。 从顶点u指向的弧a,记作a=(u,v),(u,v)(v,u),其中u称为a的起点,v称为a的终点,这样的图称为有向图。仍以V表示点的集合,以A表示弧的集合,则有向图表示为D(V,A),2019/4/9,18,有向图例,2019/4/9,19,有向图的链路,有向图中,在不考虑边的方向时,也可以相同地定义链,若有向图D(V,A)中,P是一个从u到v的链,且对P中每一条弧而言,在序列中位于该弧前面的点恰好是其起点,而位于该弧后面的点恰好是其终点,这个链P就称为是D中从u到v的一条路。 当路的起点与终点相同
8、,即u=v时,称作一条回路。 顶点全不相同的路称为初等路。 除起点和终点外点均不相同的回路称为初等回路。,2019/4/9,20,11.2 树及最小树问题,一个没有圈的图称为一个无圈图或称为林。 一个连通的无圈图则称为树,一个林的每个连通子图都是一个树。 定理 以下关于树的六种不同描述是等价的: 无圈连通图。 无圈,q=p-1。 连通,q=p-1。 无圈,但若任意增加一条边,则可得到一个且仅一个圈。 连通,但若任意舍弃一条边,图便不连通。 每一对顶点之间有一条且仅有一条链。,2019/4/9,21,部分树,若T是图G(V,E)的部分图,且T是树,则称T为G的部分树。 若T是图G的部分树,则从G
9、中去掉T中所有的边,所得到的子图称为G中的T的余树,也称为G的一个余树。 余树不一定是树!,一个没有圈的图称为一个无圈图或称为林。 一个连通的无圈图则称为树,一个林的每个连通子图都是一个树。,2019/4/9,22,网络概念,图只能用来研究事物之间有没有某种关系,而不能研究这种关系的强弱程度。 网络 赋权的图 权 程度的度量,数量描述。,2019/4/9,23,网络最短树问题,最短树问题的一般提法是:选取网络中的部分图,使得网络连通,且使总权数最短。 在实际应用中,经常碰到需要求一个赋权连通图的最短树的问题。例如,用节点表示城市,用边表示可以在两个城市之间架设光缆,边上的权表示光缆的长度,试求
10、应如何架设光缆,才能使任意两城市之间均由光缆相通,且使光缆的总长度最短。 求最短树的方法,依据的是树的特点,即无圈和连通,加上最短的要求,方法主要有两种:一种称为破圈法,一种称为生长法,2019/4/9,24,网络最短树-破圈法原理,破圈法原理 如果网络图中无圈并且q=p-1,则已经是树; 如果网络图中有圈,则截去该圈中权数最大的边;这样,并不影响网络图的连通性,且能使边数减少一个; 经过一定次数的截边,网络图中将再也没有圈,成为无圈图; 如果此时的网络满足q=p-1,则已经是树; 由于每次截去的边在圈中具有最大的权数,因此获得的树也是最短的树。,2019/4/9,25,破圈法步骤 在网络图中
11、寻找一个圈,若已经无圈则转。 在圈中选取权数最大的边,从网络图中截去该边,对新的网络,转。 若q=p-1,则已找到最短树,否则网络图不连通,无最短树。,方法示例: 例 对图中的网络,用破圈法求最短树。,2019/4/9,26,网络最短树-生长法原理,生长法原理 类似于自然界中植物生长的过程,结合就近生长和避免构成圈的要求,逐步生长直到所有的点都已经被包含。 如果原网络不连通,则在生长过程中会出现某些点不能被生长,则结束。 避圈的原理是已经被包含在生长过的树中的点不再被生长。 由于在每次生长时都采用就近生长的方法,生成的树一定是最短树。,2019/4/9,27,生长法步骤 从图上任选一点i,令,
12、若这样的边不存在,则原图没有最短部分树。 令,若S=V,则已找到最短树,否则,,2019/4/9,28,生长法示例取S=v1, 则S到其余点的距离在距离矩阵中第一行,2019/4/9,29,2019/4/9,30,2019/4/9,31,2019/4/9,32,2019/4/9,33,11.3 最短路问题,最短路问题的一般提法是:欲寻找网络中从起点1到终点n的最短路线,即寻求连接这两点的边的总长度为最小的通路,最短路线中的网络大都是有向网络,也可以是无向网络。,2019/4/9,34,最短路问题的狄克斯拉算法,把V分成两个集合,令,计算,求,若vk=vn则已经求得vn到v1的最短路线,否则继续
13、计算,使用条件 lij0,2019/4/9,35,算法解释若以P(vi)记v1到vi的最短距离,则根据动态规划原理应有,第一步 取P(v1)0,而T(vj)则是对P(vj)所取的初值;,2019/4/9,36,第二步 利用P(vi)已知,据上式对T(vj)进行修正;,2019/4/9,37,第三步 对T(vj)求,2019/4/9,38,k=2, 不是最优,继续,2019/4/9,39,在所有的T(vj)中确定最小的,2019/4/9,40,k=3, 不是最优,继续,2019/4/9,41,k=5, 不是最优,继续,2019/4/9,42,k=6=n, 已经是最优。如果希望计算v1到v4的最短
14、距离,继续,2019/4/9,43,表格实现,2019/4/9,44,2019/4/9,45,福德算法,适用于有负权,但无负回路的有向或无向网络,设dj(k)为从1到j的边数不超过k的路线中距离最短的。 算法依据的思想是动态规划最优性原理,在此处形成递推公式: 其算法步骤如下: 令,计算,若对所有j,则最优,否则把k的值加1,继续计算。 若k=n-1,则说明存在负回路,最短路线不存在。,2019/4/9,46,福德算法示例,2019/4/9,47,2019/4/9,48,0,2,5(2),10(2),9(3),2019/4/9,49,2019/4/9,50,例 求:5年内,哪些年初购置新设备,
15、使5年内的总费用最小。解:(1)分析:可行的购置方案(更新计划)是很多的,如: 1) 每年购置一台新的,则对应的费用为:11+11+12+12+13 +5+5+5+5+5 = 842 )第一年购置新的,一直用到第五年年底,则总费用为: 11+5+6+8+11+18 = 59 显然不同的方案对应不同的费用。,2019/4/9,51,(2)方法:将此问题用一个赋权有向图来描述,然后求这个赋权有向图的最短路。求解步骤:1)画赋权有向图:设 Vi 表示第i年初,(Vi ,Vj )表示第i 年初购买新设备用到第j年初(j-1年底),而Wi j 表示相应费用,则5年的一个更新计划相当于从V1 到V6的一条
16、路。 2)求解 (标号法),2019/4/9,52,W12 =11+5=16 W13 =11+5+6=22 W14 =11+5+6+8=30 W15 =11+5+6+8+11=41 W16 =11+5+6+8+11+18=59,W23 =11+5=16 W24 =11+5+6=22 W25 =11+5+6+8=30 W26 =11+5+6+8+11=41,W45 =12+5=17 W46 =12+5+6=23 W56 =13+5=18,W34 =12+5=17 W35 =12+5+6=23 W36 =12+5+6+8=31,2019/4/9,53,11.4 网络最大流问题,所谓最大流问题就是在
17、一定的条件下,要求流过网络的物流、能量流或信息流等流量为最大的问题,在最大流问题中一般有如下规定: 网络有一个起点s和一个终点t 网络是有向网络,即流有方向性。 在网络各条弧上都有一个权,表示允许流过的最大流量。若以bij表示由i到j的弧上允许流过的最大流量,以xij表示实际流过该弧的流量,则0 xij bij 网络中,除起点s和终点t之外的任何顶点,流入量总和应该等于流出量的总和。,2019/4/9,54,最大流问题的数学模型,2019/4/9,55,最大流-最小割集定理,最大流最小割集定理揭示了最小割集(网络中的瓶颈)容量与最大流量的关系,也提供了一个求最大流的方法。,网络割集容量,最小割
18、集 所有割集中容量最小的一个割集。,流过网络的最大流量等于最小割集的容量,割集,2019/4/9,56,2019/4/9,57,福德富克逊方法原理,算法的原理 首先,依据最大流问题的要求,为网络分配一个可行流。 所谓可行流,是指所有弧上流量满足容量限制,所有中间点满足平衡条件的流; 若这一可行流的流量就是最大流量,则问题已经解决; 若不是最大流量,则增加流量获得流量更大的可行流。,网络中的最大流量fmax值大小是由网络中最狭窄处瓶颈的容量所决定的。,2019/4/9,58,福德富克逊方法流图,2019/4/9,59,福德富克逊方法讨论,若弧(vi,vj)上的流量满足xij=bij,则称该弧为饱
19、和弧,否则称为非饱和弧。若弧(vi,vj)上的流量xij=0。则称该弧为零流弧,否则称为非零流弧。一条从s到t的初等链是由s开始的点、边序列,其中没有相同的点,也不考虑弧的方向。把这条链中的s到t方向相同的弧称为正向弧。把这条链中的s到t方向相反的弧称为逆向弧。 在上述的可行流中,从s到t的某个初等链满足:其上的正向弧均为非饱和弧。其上的逆向弧均为非零流弧。 则称该链为一条流量增广链。,2019/4/9,60,流量增广链: 从s到t的某个初等链满足 其上的正向弧均为非饱和弧。 其上的逆向弧均为非零流弧。 结论:若在可行流中,存在从s到t的增广链,则该可行流不是最大流,其流量可以增加;否则若不存
20、在从s到t的增广链,则该可行流是最大流。 增广链的性质: Vs到增广链上任一点也有增广链; 增广链上任一点到Vt也有增广链;,2019/4/9,61,福德富克逊方法步骤,为网络分配初始流xij标在图中弧旁的( )内 寻求增广链,若不存在,则已最优, 否则 在增广链上调整流量,产生新的可行流。重复、两步,直到最优。,2019/4/9,62,寻求增广链的方法,寻求流量增广链的方法,是依据增广链的性质而产生的,其基本思路类似于最短树问题的生长法。 从s开始,逐个检查每个点i,看是否存在从s到i的增广链。 如果存在从s到i的增广链,而(Vi Vj)非饱和或(Vj Vi)非零流, 则存在从V1到Vj的增
21、广链。,2019/4/9,63,福德富克逊方法示例,为网络分配初始流xij标在图中弧旁的( )内,2019/4/9,64,寻求增广链 从s开始,赋上标记(,),表示s是源点,能够得到任意多的量。s称为已标记的点。也表示增广链可以从V1延伸到V1,-, ,2019/4/9,65,如果vi是已经标记的点, vj是未标记的点 则当(vi ,vj)是非饱和弧时, vj可以标记: vi+,ejej=minei, bij-xij当(vj ,vi)是非零流弧时, vj可以标记: vi-,ejej=minei, xji 如果vt可以标记,则找到增广链, 否则继续. 如果对于一切未标记的点, 均不能再标记, 则
22、已经是最优.,2019/4/9,66,如图v1是已经标记的点, 其它点是未标记的点(v1 ,v2)是非饱和弧, v2可以标记: v1+,e2e2=mine1,b12-x12(v1 ,v3)是饱和弧, 目前v3和其它点暂时不能标记,即暂时没有从v1 到v3或其它点的增广链。,-, ,vs+, 11,2019/4/9,67,如图v2是已经标记的点, v3是未标记的点(v3 ,v2)是非零流弧, v3可以标记: v2-,e3e3=mine2, x32=min11,3,-, ,vs+, 11,v2-, 3,v2+, 4,v3+, 3,v5+, 4,2019/4/9,68,vt已经标记, 找到流量增广链
23、。,-, ,vs+, 11,v2-, 3,v2+, 4,v3+, 3,v5+, 4,正向流流量增加et,逆向流流量减少et 调整后流量 f=17,2019/4/9,69,-, ,vs+, 7,v2-, 3,v3+, 1,v3+, 3,v4+, 3,vt已经标记, 找到流量增广链。,2019/4/9,70,正向流流量增加et=3,逆向流流量减少et,调整后流量 f=20,2019/4/9,71,vsv2已经标记,其余点不能标记,已经最优 最大流量 fmax=20,-, ,vs+, 4,2019/4/9,72,11.5 最小费用最大流问题,定义 已知网络G =(V,E,C,d),f 是G上的一个可
24、行流, 为一条从vs到vt的增广链, 称为链的费用。,若 * 是从vs到vt的增广链中费用最小的增广链,则称 * 是最小费用增广链。 结论:如果可行流 f在流量为W(f )的所有可行流中的费用最小,并且 *是关于f 的所有增广链中的费用最小的增广链,那么沿增广链 *调整可行流f,得到的新可行流f *也是流量为W(f*)的所有可行流中的最小费用流。当f * 是最大流时,就是最小费用最大流。,2019/4/9,73,寻找关于f 的最小费用增广链:构造一个关于f 的赋权有向图L(f ) ,其顶点是原网络G的顶点,而将G中的每一条弧 ( vi, vj )变成两个相反方向的弧(vi, vj)和(vj ,
25、 vi),并且定义图中弧的权lij为: 1.当 ,令 2.当(vj,vi)为原来网络G中(vi, vj)的反向弧,令在网络G中寻找关于f 的最小费用增广链等价于在L(f )中寻求从vs 到vt 的最短路。,2019/4/9,74,步骤: (1)取零流为初始可行流 ,f (0) =0。 (2)一般地,如果在第k-1步得到最小费用流 f (k-1),则构造图 L( f (k-1) )。 (3)在L( f (k-1) )中,寻求从vs到vt的最短路。若不存在最短路,则f (k-1)就是最小费用最大流;否则转(4)。 (4)如果存在最短路,则在可行流f (k1)的图中得到与此最短路相对应的增广链,在增广链上,对f (k1)进行调整,调整量为:,2019/4/9,75,令,得到新可行流f (k) 。对f (k)重复上面步骤,返回(2)。,例 求网络的最小费用最大流,弧旁权是(bij , cij),2019/4/9,76,2019/4/9,77,2019/4/9,78,2019/4/9,79,2019/4/9,80,第十一章习题 1、2、4、8,