运筹学——图与网络分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
布图或煤气管道分布图等.
武汉
OR3
天津 济南 青岛 徐州 连云港 南京 上海
3
球队比赛图
五个球队比赛,比过的两个队之间用连线 相连,还没有比赛的队之间没有连线
v5
v1
v4
v2
v3
OR3
4
6.1 图的基本概念
图是由点和线构成的。点代表所研究的对象,线表示对 象间的关系。
1、图的分类:无向图,有向图
若全部改为P标号,则停止.否则转回(2).
OR3
15
用Dijkstra算法求图中v1到v8的最短路
OR3
16
最短路问题的算法:Bellman算法
适用范围:有向图,且图中有wij﹤0。
假设前提:任意两点vi, vj之间都有一条弧。 (若无,则添加一条虚拟的弧,且其权值为
+∞。)
公式来源分析: vs到v j的最短路
w(P0) min w(P) P
路P0的权称为从vs到vt的距离,记为:d( vs,vt )
OR3
13
– 最短路算法
Dijkstra算法 :有向图 ,wij≥0 一般结论:
vs到v j的最短路 vs ,...,vi ,...,v j vs ,...,vi
v s 到vi的最短路
– Dijkstra算法基本思想: – 采用标号法: P标号和T标号
注意:寻求网络中的最大流就相当于求线性规 划模型的最优解。
OR3
30
5.截集、截量、最小截量
截集:如果将
D
(V
,
A,
C )的点集 V分成两部分
V
1和V
,
1
使得
vs
V
,
1
vt
V
,
1
且V
1
V
=,则把从
1
V
1指向V
1
的弧的全体称为分离
vs ,vt的截集,记为( V 1,V
).
1
截量:截集(V1,V1 )中所有弧的容量之和称为 该截集的截量,记为c(V1,V 1 ).
避圈法:将连通图所有边按权数从小到大排 序,每次从未选的边中选一条权数最小的边, 并使之与已选的边不能构成圈,直至得到最小 支撑树。
OR3
11
避圈法的基本步骤P259
第一步:令i=1,E0=空集。 第二步:选一条边ei∈E﹨Ei-1,使ei是使 (V, Ei-1∪{e})不含圈的所有边e(e
∈E﹨Ei-1)中权最小的边。令Ei=Ei-1 ∪ {ei},如果这样的边不存在,则T=(V, Ei-1) 是最小树。 第三步:把i换成i+1,转入第2步。
OR3
32
6、增广链
在容量网络D=(V,A,C)中,若为网络中从 v上s到与 vt的同一方条向链的,弧给称链为前定向方弧向,为与从vs到v反t, 方向的弧称为后向弧,前向弧和后向弧的
集合分别用 和 来 表示。设 f 是f 一个可 ij
行流,如果满足:
v v
f c 0
ij
(,
ij
i
)
j
v v f c
2、掌握基本定理8及其证明 3、掌握求最大流的标号法
OR3
25
引例:如下输水网络,南水北调工程, 从vs到vt送水,弧旁数字前者为管道容量, 后者为现行流量,如何调运输水最多?
v2
(4,3)
(3,3)
vs (5,1)
(1,1) (1,1)
v4
(5,3) (3,0)
vt
(2,1)
v1 (2,2)
弧:图中带箭头的连线叫做弧(arc),弧的集合记为A, A= { ak },一条弧也是用两点表示,ak= [ vi,vj ],弧有方向: vi为始点,vj为终点
OR3
5
OR3
6
(2)次:以点u为端点的边的条数,叫做点u的次。 悬挂点:次为1的点叫做悬挂点; 孤立点:次为0的点叫做孤立点; 奇点:次为奇数则称奇点; 偶点:次为偶数则称偶点。
v( f )
s
v v v v sj
js
(,)
(,)
sj
js
f f
v( f )
tj
jt
对收点v ,有 . t
v v ( , ) tj
v v ( , ) jt
v( f ) 是可行流的流量,是发点的净输出量,是收点的
净入量。
注意:任一D=(V,A,C)都存在可行流。如零流就是一 O个可R3 可认行为流fij=。0如。果D=(V,A,C)中没有给出弧上的流量29 fij,
OPERATIONS RESE
运筹学
OR3
1
第六章 图与网络分析
引论 : 哥尼斯堡七桥问题
AA
BC D
CD B
E
OR3
A c B
D
2
铁路交通图
此图是我国北京,上海等十个 北京
城市间的交通图,反映了这
十个城市间的铁路分布情况.
点表示城市,点间的连线表示
两个城市间的铁路线.
郑州
诸如此类问题还有电话线分
避圈法:在图中每次任取一条边,与已经 取得的任何一些边不够成圈,重复这个过程, 直到不能进行为止。
OR3
10
3、最小支撑树
最小支撑树:当一个连通图的所有边都被赋权, 则取不同边构成的支撑树具有不同的总权数, 其中总权数最小的支撑树称为最小支撑树。
求最小支撑树的方法:
破圈法:在连通图中任取一个圈,去掉一条 权数最大的边,在余下的图中重复上述步骤, 直至无圈为止。
OR3
8
6.2 树与最小生成树
1、树的概念与性质 树:无圈的连通图称为树。 定理: 定量3:设图G=(V,E)是一个树,p(G) ≥2,则G中
至少有两个悬挂点。 定量4:图G=(V,E)是一个树的充要条件是G不含
圈,且恰有p-1条边。 定量5:图G=(V,E)是一个树的充要条件是G是连
通图,并且q(G)= p(G) -1. 定量6:图G=(V,E)是一个树的充要条件是任意
» P标号:已确定出最短路的节点(永久性标号)。 » T标号:未确定出最短路的节点,但表示其距离的上限(试探性标号)。 » 算法的每一步都把某一点的T标号改为P标号直至改完为止. » Si:P标号节点的集合。
OR3
14
Dijkstra算法的基本步骤:
1:给vs以P标号, P(vs)=0,其余各点均给T标 号,T(vi)=+∞
66 3 3 3
-3 0 4
11 6 6 6 6
7
20
14 9 9
OR3
3
-1 0
22
15 10 10 10
当计算到第六步时,计算结果与第五步 相同,则表中第六列的数字分别表示点 v1到其它各点的最短路。
寻找最短路径的方法:反向追踪法。
OR3
23
OR3
24
6.4 最大流问题
1、掌握可行流、增广链、截集、截量等 基本概念
v3
OR3
26
最大流问题的基本概念
1、容量网络
如果有向连通网络图D=(V,A)的每
一条弧(vi,vj)上都被赋予一个非负 数,以表示通过该弧的最大通行能力,
称为弧的容量,则称这样的网络为容量
网络,记作D=(V,A,C)。
OR3
27
2、流
在D=(V,A,C)中,如果实际通过每一 弧(vi,vj)的流量是fij,则称集合f= {fij}为网络D=(V,A,C)上的一个流。
两个顶点之间恰好有一条链。
OR3
9
2、图的支撑树
支撑树:设T=(V,E’)是图G=(V,E)的支撑子图, 如果T是一个树,则称T为G的支撑树。
定理7:图G有支撑树的充要条件是图G是连 通的。
求支撑树的方法:
破圈法:即任取一个圈,从圈中去掉一条 边,对余下的图重复这个步骤,直至图中不含 圈为止。
最小截集:在D=(V,A,C)的所有截集中,截量最
小的截集称为最小截集,记为(
V
* 1
,V
)。 *
1
OR3
31
注意:容量网络图D的截集不是唯一的, 截集个数是有限的。如果在图D中把任何 一个截集中的弧丢掉,那么从发点就不 能通往收点。所以,截集是从发点到收 点的必经之道。从而,有任何一个可行 流的流量都不会超过任意截集的截量。
OR3
12
6.3 最短路问题
最短路:赋权有向图D=(V,A)中,从始点到终点的 权值最小的路称为最短路。
引例:
– 单行线交通网:v1到v8使总费用最小的旅行路线。 – 最短路问题的一般描述:
对D=(V,A),a=(vi,vj),w(Va)2(v1=,6)wij,P是vs 到vt的路,定义路P的权是P中所有弧的权的和,记 为w(P),则最短路问题为:
vs ,..., vi ,..., v j
vs ,...,vi
vi
,..., v
j
最短路
最短路
d
(vs
,
v
)
j
min
v v w d ( , )
s
i
ij
i
OR3
17
基本思路:
用逐次逼近来求网络中的最短路:每次求出从始 点到网络中其余各点有限制的最短路。
若第一次逼近即得最短路,则限制其最短路只有
sj
sj
对t 2,...,k,
d v v min d v v w (t) ( , ) sj
( (t1) , )
( j 1,2,...,p)
si
ij
i
若进行到某一步,如第k步,对所有的j=1,2,..., p有:
d v v d v v (k) ( , ) ( (k1) , )
sj
sj
d v v v 则该 (k) ( , )即为 到各点的最短路。
无向图:由点和边所组成的图。表示为G=(V,E).
有向图:由点和弧所组成的图。表示为D=(V,A)
点的集合用V表示,V={vi}
2、图上的基本概念:
(1) 边:图中不带箭头的连线叫做边(edge),边的集合记 为E= { ej } ,一条边可以用两点[ vi,vj ]表示,ej= [ vi,vj ].
OR3
28
3、可行流 对给定的D=(V,A,C),把满足下列两个条件1),2) 的流称为可行流。
1)容量限制条件 :
对D中的每一条弧(vi,vj) ,有0≤ fij ≤cij; 2)平衡条件:
对中间点vi
,流入量等于流出量,即
v v ( , ) ij
f
ij
v v ( , ) ji
f
ji
0;
f f 对发点v ,有 ;
基本定理: 1、图G=(V,E)中,所有点的次之和是边数的两倍,即
d(v) 2q
vV
2、任一图中,奇点的个数为偶数。
OR3
7
(3)链:点边交替序列称为链; 圈:首尾相连的链称为圈;
初等链:链中各点均不同的链; 初等圈:圈中各点均不同的圈; 简单链:链中边均不同的链; 简单圈:圈中边均不同的圈。 (4)连通图:任意两点之间至少有一条链的图。 连通分图:对不连通的图,每一连通的部分称为一个连通 分图。 支撑子图:对G=(V,E),若G’=(V’,E’),使V’=V, E’包含于 E,则G’是G的一个支撑子图。 赋权图:在图中,如果每一条边(弧)都被赋予一个权值 wij,则称图G为赋权图。 (5)路:在有向图中,如果链上每条弧的箭线方向与链行 进方向相同,则称之为路。 回路:首尾相接的路称回路
sj
sLeabharlann Baidu
OR3
19
基本步骤:
1、令 d w (1)
1j
1j
,其中,若v1与vj间没弧,则记
w1j=+∞。
d min d w 2、
(t)
1j
( (t1) )
1i
ij
i
当计算到第k步时,若有
d d (k)
(k 1)
1j
1j
成立,则
停止计算。
d
(k 1j
)
即为从v1到各点的最短路。
OR3
20
举例:求v1到各点的最短路
2:若vj 点为刚得到P 标号的点,考虑这样的点vj, (vi,vj) ∈E,且 vj为T标号.
3:对vj的T标号进行如下更改: T (v j ) min T (v j ), P(vi ) wij
4:比较所有具有T标号的点,把最小者改为P标号.
P(vi
)
min
T
(vi
)
当存在两个以上最小值时,可同时改为P标号.
OR3
21
计算过程见下表: d d d min( d w ) (3) 1j
(2) 1i
i
ij (1)
(5)
(12)j
(6)
1j
(
(1)
)
d min d w 1j
1i
ij
d w 1j
1j i
0 2 5 -3
0 -2 4
0
6
40
0
00 0 0 0 0 22 2 2 2 2 50 0 0 0 0 -3 -3 -3 -3 -3 -3
0
( , )
ij
ij
ij
则称为从vs到vt的(关于f的)增广链。
OR3
33
增广链的实际意义:
沿着这条链从vs 到 vt输送的流,还 有潜力可挖,只需按照定理证明中的调 整方法,就可以把流量提高;调整后的 流,在各点仍满足平衡条件及容量限制 条件,即仍为可行流。这样,就得到了 一个寻求最大流的方法:从一个可行流 开始,寻求关于这个可行流的增广链, 若存在,则可以经过调整,得到一个新 的可行流,其流量比原来的可行流要大, 重复这个过程,直到不存在关于该流的 增广链时就的得到了最大流。
一条弧,其路长记为
d
(1) sj
;
若第二次逼近即得最短路,则限制其最短路不超
过两条弧,其路长记为
d
(2) sj
;
依此类推,第k次逼近得最短路,则限制其不超过
k条弧。
一般的,最多逼近n-1次即得到最短路。
OR3
18
为了求得公式的解可以运用以下公式:
令:
d v v w (1) ( , )
( j 1,2,...,p)
4、最大流
使得从网络发点到收点得总流量(W)达到最 大得可行流f={fij}称为最大流。
最达大 到流 最问 大题 ,就 并是且求满一足个:流f={fij}使其流量 v( f )
f c 0
ij
ij
(vi ,v j) A
v( f ) (i s)
f f 0
(i s,t)
ij
ji v( f ) (i t)