数学建模最短路问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
v1 v4
v3
v5
(c) 居民小区
2. 性质
定义3 设M是图G=(V, E)的匹配,G的M交 错路是指边在E\M和M中交错出现的路,M 可扩路(增广路)是指其起点和终点都是M 非饱和的M交错路。 定理1(Berge1957)设M是G的一个匹配, 则M是最大匹配的充要条件是,G没有M-增 广路。 定理2 设M是G的匹配,K是覆盖,则 (1)|M|≤|K| (2)若|M*|=|K~|,则M*是最大匹配,K~是最 小覆盖。
匹配与覆盖
显然,完美匹配一定是最大匹配,反
之不一定成立。
(a)最大匹配
(b)完美匹配
匹配与覆盖
定义2
设若G的每条边都与K的一个顶 点关联,则称K是图G的一个覆盖。设 K是G的一个覆盖,若不存在覆K'使 |K'|<|K|,则称K是一个最小覆盖。
匹配与覆盖
下图为居民小区,安装消防设施,使每个相 连的街道都有消防设施可用。 覆盖:(v1, v2, v3,v4,v5),(v1, v2, v3,v4),(v2, v3,v4),(v1, v3, v5),而(v2, v3,v4),(v1, v3, v5) 是最小覆盖。 v
图的矩阵表示
关联矩阵
邻接矩阵
1 1 1 v1 A 1 0 2 v2 1 2 0 v 3
v1 v2 v3
2 1 0 0 1 v1 M 0 1 1 1 0 v2 0 0 1 1 1 v e e e e e 3
1 2 3 4 5
二部图的匹配
例:如果一个乡村里每位姑娘恰好认识k位 小伙子,而每个小伙子也恰好认识k位姑娘, 则每位姑娘能够和她认识的一个小伙子结婚, 并且每个小伙子也能和他认识的一位姑娘结 婚。此即为“婚姻定理”。 根据上面的定理,Edmonds于1965年提出 了如下的匈牙利算法,解决了二部图的基数 匹配问题,步骤如下:
图论是离散数学的重要分支,在物理
学、化学、系统控制、电力通讯、编 码理论、可靠性理论、科学管理、电 子计算机等各个领域都具有极其广泛 的应用。 图论的历史可以追溯到1736年,这一 年发表了图论的第一篇论文,解决了 著名的哥尼斯堡(Kö nigsberg)七桥 问题。
Königsberg七桥问题
0 W
Dijkstra算法的迭代步骤如下
迭代 次数 u0
l(ui)
u1 u2 u3 u4 u5 u6 u7 1 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 2 2 1 8 ∞ ∞ ∞ ∞ 3 2 8 ∞ ∞ 10 ∞ 4 8 3 ∞ 10 ∞ 5 8 6 10 12 6 7 10 12 7 9 12 8 12 最后标记: l(v) 0 2 1 7 3 6 9 12 z(v)u0 u0 u0 u5 u1 u4 u3 u4
第11章 最短路问题
问题的提出 2. 图论的基本概念 3. 最短路问题求解算法 4. 建模实例
1.
§1 问题的提出
某学校行政部门u0经
常有人到7个部门办 事,希望在现有的道 路网络中确定他们行 走的路线,使他们到 各部门的路程最短。 图中已经标明了部门 到部门之间的距离。
§2 图论的基本概念
解:D(0)=W, P(0)=(0)n×n
P (1)
0 0 0 0
0 0 0 0 0 1 0 0 0 1 0 0
P ( 2 ) P (1)
0 0 0 0 ( 3) P 0 0 0 3 P (4) P ( 3)
0 0 0 1 0 0 0 0
最短路问题求解算法
2. Floyd Algorithm (1962): 求任意两点间的最 短路。 D =(dij)n×n, dij是i到j的最短路长, P =(pij)n×n, pij是i到j的最短路上中间节点的 最大号码,pij=0,表示无中间节点, (1)赋初值:dij= wij, pij = 0, k = 1 (2)更新dij, pij:对所有i, j,若dik+dkj< dij,则 dij = dik+dkj, pij = k (3)若k = n,停止;否则k = k+1, 转(2).
哥尼斯堡城中有七座桥将普雷格尔(Pregel) 河中的两个岛与河岸联结起来,当时人们热 衷于这样一个问题:一个人能否从四块陆地 中的任何一块出发走过七座桥,每座桥恰走 一次,最后回到起点?
A C B (a) D C B (b) A D
图论的基本概念
1. 图的定义 G=(V, E,ψ ) 顶点,边,e与v连接,v与e 关联,相邻,环,重边, 平面图,完全图(完备 图),二部图(偶图), 子图,生成图。 与一个顶点vi关联的边的数 目称为vi的度(或次)。 路、圈和连通 有向图、赋权图
最短路问题求解算法
Dijkstra Algorithm (1)赋初值 : 令S {u0 }, l ( u0 ) 0, v S V \ S , 令l ( v ) , z(v ) , u u0
( 2)更新l (v ), z (v ) : v S V \ S , 若l (v ) l ( u) w ( u, v ), 则令l (v ) l ( u) w ( u, v ), u v* (4)若 S , 转( 2); 否则, 停止. z(v ) ห้องสมุดไป่ตู้ u ( 3)设v * 是使l (v )取最小值的S中的顶点, 则令S S {v*},
二部图的赋权匹配
Kuhn-Munkres算法: (1)设G=(X, Y,
E)是二部图,从任一可 行顶点标号L开始,确定GL,并在GL 中选取一个匹配M。 (2)若X是饱和的,则M是GL的完美匹 配,是G的最佳匹配,算法终止;否 则,在GL中取一个M-非饱和点u∈X, 令S={u},T=Φ ;
建模案例分析
2000B题
钢管订购和运输
2000B钢管运输分析求解步骤
1.用Floyd算法求出铁道两点间的最短
路长,将路长转成费用。 2.与公路运价组成的矩阵D,再用 Floyd求出S1,…,S7到A1,…,A15的最短 路,将购买单价计入运费之中。
第12章 匹配与覆盖及其应用
§1 匹配与覆盖 1. 基本概念 定义1设若M的边互不相邻,则称M是G的一个 匹配。M的边称为匹配边,E\M的边称为自由 边,若(u, v)∈M,则称u(或v)是v(或u)的 配偶。若顶点v与M的一条边关联,则称v是M饱和的;否则称为M-非饱和的。若M使G中每 个顶点都是M-饱和的,称M是G的完美(理想) 匹配。设M是G的一个匹配,若不存在M' 使 |M'|>|M|,则称M为G的最大匹配。
Floyd Algorithm
例
已知距离矩阵为
0 9 5 8 6 0 6 W 6 5 0 14 7 10 0
求任意两点之间的最短路。
Floyd Algorithm
0 9 5 8 6 0 6 14 (1) D , 6 5 0 14 7 16 10 0 0 9 5 8 6 0 6 14 ( 2) D , 6 5 0 14 7 16 10 0 0 9 5 8 6 0 6 14 ( 3) D , 6 5 0 14 7 15 10 0 D(4) D( 3) ,
Dijkstra算法所需时间与n2成正比。
用Dijkstra求解最短路问题
例 求从顶点u0到其余顶点的 最短路。 解:先写出距离矩阵(实际 应为对称矩阵)
2 0 1 0 8 6 7 0 1 5 0 1 3 0 9 2 4 0 9 6 3 0
二部图的基数匹配例
x1 x2 x3 x4 x5
y1
y2
y3
y4
y5
二部图的基数匹配例
x1 x2 x3 x4 x5
y1
y2
y3
y4
y5
4. 二部图的赋权匹配
G是完全二部图,有两个顶点集
X={x1,x2,…,xn},Y={y1,y2,…,yn}分别 表示职员和工作,xi和yj之间用边相连, 其权为wij表示职员xi做yj工作时的效率, 对每人分配一件工作,使总效率最大。 可以用Kuhn-Munkres算法求赋权完全 二部图的最佳匹配。
二部图的匹配
匈牙利算法: (1)设G=(X, Y, E)是二部图,M是一个匹配; (2)若M饱和X的每个顶点,则算法终止,M为最大匹 配;否则,取M-非饱和点u∈X,令S={u}, T=Φ ; (3)若N(S)=T, 由于|T|=|S|-1,所以|N(S)|<|S|, 算法终止, 由定理4(Hall),不存在饱和X每个顶点的匹配;否 则取y∈N(S)\T; (4)若y是饱和的,设yz∈M, 用S∪{z}代替S,T∪{y}代 替T,转(3)(此时|T|=|S|-1仍成立);否则设P是M增 广路P(u, y), 并令M=MΔE(P)(对称差),转(2)
二部图的赋权匹配
可行顶点标号总是存在的,如令
L( x ) max w( x, y )
yY
x X
L( y) 0
y Y
二部图的赋权匹配
定理:设L是G的可行顶点标号,若GL包含 完美(基数)匹配M*,则M*是G的最佳 (最大权)匹配。
由上述定理知,欲求二部图的最佳匹配,只 需用匈牙利(Hungarian)算法求相等子图 GL的完美匹配。若GL不存在完美匹配, Kuhn和Munkres给出了一个修改顶点标号L 的算法,可以使新相等子图的最大匹配扩大, 这样,最终使相等子图具有完美匹配。
3. 二部图的匹配
定理3(Kö nig, 1931)若M*和K~分别是二 部图G的最大匹配和最小覆盖,则|M*|=|K~| 定理4 (Hall, 1935)对二部图G=(X, Y, E),G 存在饱和X的每个顶点的匹配的充要条件是: 对任何S X,均有|N(S)|≥|S|,这里N(S)为与S 的顶点相邻的所有顶点的集合。 如果G中所有顶点的度数都为k,则称图G 是k正则的。 推论 若G是k正则二部图(k>0),则G有完 美匹配。
图论的一个定理
定理:∑d(v)=2|E|
v∈V
证:因为每一条边提供给点的度为2,
所以图中所有点的度数总和是边数的2 倍。 推论:在任何图中,奇点个数为偶数。
2. 图的矩阵表示
对于任意图G,定义一个n×m阶
矩阵M=(mij)n×m(n为顶点数, m为边数),其中mij是vi和ej相关联 的次数(0, 1或2等),该矩阵称 为G的关联矩阵。 图的另一种表示形式是邻接矩阵 A=(aij)n×n,其中aij是连接ai和aj 的边的数目。
§3最短路问题求解算法
设G为赋权有向图或无向图,G边上的权均非负。 1. Dijkstra Algorithm: 求G中从顶点u0到其余顶点 的最短路。 定义: 对每个顶点v,定义两个标号l(v), z(v), 其中l(v)为从 u0到v的路长; z(v)为v的父亲点(前一个点)。 S:具有永久标号的顶集。 算法的过程就是在每一步改进这两个标号,最终 l(v)为u0到v的最短路长。输入带权邻接矩阵(距离 矩阵)w(u, v).
二部图的赋权匹配
定义:在G的顶点集V=X∪Y上定义一个实 值函数L,使得任何x∈X, y∈Y均有 L(x)+L(y)≥w(x,y) 其中w(x,y)是边(x,y)上的权, 称函数L(v)为该 二部图的一个可行顶点标号。 若用EL表示使上式等号成立的那些边的集 合,即 EL={(x,y)|(x,y)∈E, L(x)+L(y)=w(x,y)} 则称以EL为边集的G的生成子图为G对应于 可行顶点标号L的相等子图,记为GL.