第十章图与网络优化

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一节
1 . 图与子图
图的基本概念
为顶点集,
图G ( , E ),其中V ,,v V v
1
E e ,, e 为边集。
1
子图G ( , E ), 其中V V , E E。 V
如 G: e1 v1 e2 e3 e4 v2 e6 v3 G1: v1 e2 e3 e4 v2 e6 v3
(3,3)
(2)可增值链(增广链)
:中的正向弧集 D中由vs至vt的链,记 , :中的反向弧集 中弧皆非饱和弧 若 ,则称为D中关于可行流f 的 中弧皆非零流弧 一条可增值链。
d(vs , v j ) min{d(vs ,vi ) i j }
• 为了求得这个方程的解d(vs,v1),d(vs,v2),…, d(vs,vp)(这里p为图中点数),可用如下递推公式: • 开始时,令 (1) • d (vs ,v j ) s j ,(j=1,2,…,p) 对t=2, 3, …令
3. 基本概念与定理
f 饱和弧: c (1) 弧按流量分为未饱和弧:f c 零流弧:f 0
如:在前面例举的网络流问题中,若已给定一个可行流 (如括号中后一个数字所示),请指出相应的弧的类型。
v2 (4,3) v4
(5,3) (1,1) (3,0) vs vt (1,1) (2,1) (5,1) v1 v3 (2,2)
若l
l l
若l
第二步:若存在l 0,(1 i p), 计算终止,说明D中含有
(k ) ii
包含顶点vi的负回路,由ij( k )找出此回路;否则k=k+1
第三步:当k=p时,计算终止。若存在l
( p) ij (k ) ij
, 说明D中
不含有顶点vi到v j的路,否则记dij l 表示由顶点vi到v j 的最短路 相应最短路可由 找出
1
1
) d 挑选其中与v 距最短(min c 的v 进行标号。
ij j 7 7
i
j
1
4. 重复3,直至终点(本例即v )标上号[d ,v ],则
i
d 即最短距,反向追踪可求出最短路。
7
用标号法解例3
v2 2 v1 3 5 1 v4 5 v3 2 7 5 3 v5 v6 1 7 5 v7
最短距为13; 最短路为v1-v2-v3-v5-v6-v7。
(vi,vj )上的流量。问应如何安排流量fij可使D上
通过的总流量v最大?
v2 4 1 5 2 1 v4
例如:
vs
3
3
5
vt 2
v1
v3
2. 数学模型
问题:最大流问题的决策变量、目标函数、约束条件各 是什么?
决策变量: 各弧(v ,v )上的流量f ,
目标函数: Max v v( f )
0 f c (容量约束) v ( f ), i s 约束条件: i s , t (平衡条件) f f 0, v ( f ), i t
e5
e7 v4
e5
v4
简单图:无环、无多重边的图。
2 . 关联与相邻
关联(边与点关系):若e是v ,v 二点间的边,
1 2
记e [v ,v ], 称v (或v )与e关联。
1 2 1 2
相邻(边与边、点与点):点v 与v 有公共边,
1 2
称v 与v 相邻; e 与e 有公共点,称e 与e 相邻。 边
例 2 求如图网络的最小部分树。
v2 2 v1 3 5 1 v4 5 v3 2 7 5 3 v5 v6 1 7 5 v7
避圈法是一种选边的过程,其步骤如下:
1. 从网络D中任选一点vi,找出与vi相关联的 权最小的边[vi,vj],得第二个顶点vj; 2. 把顶点集V分为互补的两部分V1, V 1 ,其中 V 与已选边相关联的点集, , V 不与已选边相关联的点集; ,
比较:
无向图:边[v i ,v j ],链 有向图:弧(v i ,v j ),路
,圈 ,回路
5. 树
例1 已知有5个城市,要在它们之间架设电 话线网,要求任2城市都可通话(允许通过其它城 市),并且电话线的根数最少。
v1 v2 v3 v4 v5
特点:连通、无圈。 树——无圈的连通图,记为T。
(k )
与L( k 1)相应元素相同,其他元素按下式计算,并填入L( k )
l
(k ) ij
min{l
( k 1) ij
,l
( k 1) ik
(k ) ij (k ) ij
l
( k 1) kj
( k 1) ij ( k 1) ij
}

(k ) ij
( ij k 1) ( k 1) ik
试用网络分析中求最短路的方法确定公司可采用 的最优策略。
方法:以年号作顶点绘图,连线表示连续使用期间,以
费用作路长。
第四节. 最大流问题
1. 问题 已知网络D=(V,A,C),其中V为顶点 集,A为弧集,C={cij}为容量集, cij 为弧(vi,vj ) 上的容量。现D上要通过一个流f={fij},其中fij 为弧
十、图与网络分析
• 图论的起源与发展 – 欧拉在1736年发表了图论方面的第一篇论文,解决 了著名的哥尼斯堡七桥问题。 – 七桥问题: • 哥尼斯堡城中有一条河,河中有两个岛,河上有 七座桥。当时那里的居民热衷于这样的问题:一 个散步者能否走过七座桥,且每座桥只走过一次, 最后回到出发点。 – 欧拉将此问题归结为一笔画问题。即能否从某一点 开始,不重复地一笔画出这个图形,最后回到出发 点。欧拉证明了这是不可能的.
1 2 1 2 1 2
3 . 链与圈
链:由G中的某些点与边相间构成的序列 e v e e v v ,
1 1 2 2 1
若满足e [v ,v ], 则称此边点序列为G中的一条链。
1
Leabharlann Baidu圈:封闭的链。
连通图:图G中任二点间至少存在一 条链。
4. 有向图与无向图
图G ( , E ), 也可记G ( , v ,v ]).若点对[v ,v ]无序, V v [ 称G为无向图;否则称G为有向图。为区别起见,称有向图 的边为弧,记(v ,v ), 在图上用箭线表示。
4、Floyd算法
(0) 开始(k=0)作距离矩阵 L(0) (lij )和序号矩阵(0) (ij(0) ),其中:
(vi , v j ) A wij l (vi , v j ) A ij(0) j (i, j 1, 2, p )
(0) ij
第一步:k r (1 r p), L 中第k行和第k列元素保持
性质:G连通,则G必有部分树。 证:破圈、保连通。
7.网络——赋权图,记D=(V,E,C),其中C={c1,…,cn}, ci为边ei上的权(设ci 0)。
网络分析主要内容——最小部分树、最短路、最大流。
第二节. 最小部分(支撑)树问题
问题:求网络D的部分树,使其权和最小。
方法:避圈法(Kruskal,1956)、破圈法(管梅谷,1975)。
v4
给每点vj标号[dj,vi],其中dj为v1至vj的最短 距,vi为最短路上的前一点。
标号法步骤:
1. 给v 标号[0,v ];
1 1
V 2. 把顶点集V分为互补的两部分 V 3. 考虑所有这样的边[v ,v ], 其中v
i j
1 i
1
:已标号点集, : 未标号点集; V ,v V ,
v1
v2 v3 v4
v5
树的性质:(1)树的任2点间有且仅有1链;
(2)在树中任去掉1边,则不连通;
(3)在树中不相邻2点间添1边,恰成1圈;
(4)若树T有m个顶点,则T有m-1条边。
6.图的部分(支撑)树
若图G=(V,E)的子图T=(V,E’)是树, 则称T为G的部分树或支撑树。 特点——边少、点不少。
d (vs ,v j ) min{d
(t ) i
(t 1)
(vs ,vi ) i j }
j=1,2,…,p • 若进行到某一步,例如第k步时,对所有j=1,2,…, p,有 d(k) (vs ,v j ) d(k 1) (vs ,v j ) (k) • 则 {d (vs ,v j )} j = 1,2,, p 即为vs到各 点的最短路的权。
1 1
3. 考虑所有这样的边v ,v ], 其中v V 1 ,v V 1 , 挑选 [ 其中权最小的;
4. 重复3,直至全部顶点属于 1 (即V 1 )。 V
用避圈法解例2
v2
2
v1• 3 5 1
v3
2
7 5 3 5 v5
v6 1 7
5
v7
v4
最小部分树如图上红线所示; 最小权和为14。
能通话且总架设费用最少的架设方案。
C
5
10 A 8 B
8
9 7 6
5
9
E 2 D 3 F
3
4
第三节. 最短路问题
1. 问题:求网络D中一定点v1到其它点的最短路。 例3 求如图网络中v1至v7的最短路,图中数字 为两点间距离。
v2
2
v1 3 5 1
v3
2
7 5 3
v6 1 7
5
v7
v5 5 2. 方法:标号法(Dijkstra,1959)
d (t)(v1 ,v j )
i=2 0 -5 -2 -7 1 -1 5
i=3 0 -5 -2 -7 -3 -1 -5 6
I=4 0 -5 -2 -7 -3 -1 -5 6
寻求最短路的另一个办法是在求出最短路的权 以后,采用“反向追踪”的方法。 比如已知d(vs,vj), 则寻求一个点vk,使d(vs,vk)+wk j=d(vs,vj), 记录下(vk,vj), 再考查d(vs,vk),寻求一点vi, 使d(vs,vi)+wik=d(vs,vk), 如此等等,直至到达vs为止, 于是从vs到vj的最短路是(vs,…,vi,vk,vj)
(k ) ij
v2 3 v1 4 3 -4 v3 3 v5 -1 v4 2
9
最短路问题的应用例子
某汽车公司正在制订5年内购买汽车的计划。 下面给出一辆新汽车的价格以及一辆汽车的使用 维修费用(万元):
年号 价格 汽车使用年龄 维修费用 1 2 0–1 0.7 2 2.1 1–2 1.1 3 2.3 2–3 1.5 4 2.4 3–4 2 5 2.6 4–5 2.5
算法2(破圈法):在图中找圈,并删除其中最大边。如此进 行下去,直至图中不存在圈。
例 2 求如图网络的最小部分树。
v2
2
v1 3 5 1
v3
2
7 5 3 5 v5
v6 1 7
5
v7
v4
最小部分树问题的应用例子
已知有A、B、C、D、E、F六个城镇间的道路网络 如图,现要在六个城镇间架设通讯网络(均沿道路架 设),每段道路上的架设费用如图。求能保证各城镇均
• 现介绍当赋权有向图中存在具负权弧时,求最 短路的方法。 • 为方便起见,不妨设从任一点vi到任一个点vj都 ( 有一条弧(如果在D中,vi , vj ) A ,则添加弧(vi, vj)。令wij=+∞)。 • 显然,从vs到vj的最短路总是从vs出发,沿着一 条路到某个点vi,再沿(vi,vj)到vj的(这里vi可以 是vs本身), • 由于从vs到vi的这条路必定是从vs到vi的最短路, 所以d(vs,vj)必满足如下方程:
• Dijkstra算法只适用于所有wij≥0的情形,当赋权有向图 中存在负权时,则算法失效。 • 例如在如图所示的赋权有向图中,如果用Dijkstra方法, 可得出从v1到v2的最短路的权是1, • 但这显然是不对的,因为从v1到v2的最短路是(v1,v3, v2),权是-1。
3. 逐次修正算法
• 如上例,由表,d(v1,v8)=6,
•因d(v1,v6)+w68=(-1)+7=d(v1,v8),故记下(v6,v8)。
•因d(v1,v3)+w36=d(v1,v6),故记下(v3,v6)。 •因d(v1,v7)+w73=d(v1,v3),从而从v1到v8的最短路是 (v1,v3,v6,v8)。
• 例 求图所示赋权有向图中从v1到各点的最短路。
•解 利用上述递推公式,求解结果如表所示 (表中未写数字的空格内是+∞)。
点 v1 v1 v2 v3 v4 v5 v6 v7 v8 0 6 v2 -1 0 -3 -1 -1 -3 v3 -2 0 ωij v4 3 2 -5 0 0 1 1 2 0 1 0 -5 7 0 v5 v6 v7 v8 i=1 0 -1 -2 3
相关文档
最新文档