数学建模-最短路问题
因此,计划为第一、第三年初购置新设备,或第一、第四年初购置新设备,
五年费用均最省,为 53.
也可构造加权有向图 G2(V,E).
(1)顶点集 V={V1,V2 ,V3 ,V4 ,V5 ,V6 }, Vi 表第 i 年初购置新设备的决策,V6 表
第五年底.
(2)弧集 E={ (Vi ,V j ) ,i=1,2,3,4,5; i<j≤6}, 弧 (Vi ,V j ) 表第 i 年初购进一台设备一直使用 到第 j 年初的决策,其权 W (Vi ,V j ) 表由这一
算法的基本思想
直接在图的带权邻接矩阵中用插入顶点的方法
依次构造出 个矩阵 D(1)、 D(2)、… 、D( ),使最 后得到的矩阵 D( )成为图的距离矩阵,同时也求出
插入点矩阵以便得到两点间的最短路径.
算法原理—— 求距离矩阵的方法
把带权邻接矩阵 W 作为距离矩阵的初值,即 D(0)= (di(j0) ) =W
k=1,2,…,i-1},
每个顶点代表年初的一种决策,其中顶点 Xib 代表第 i 年初购置新设备
的决策,顶点
X
(k ir
)
代表第
i
年初修理用过
k
年的旧设备的决策
(2)弧集
E={
(
X
ib
,
X
i
1,b
),
(
X
(k ir
)
,
Xi
1,b
),
i=1,2,3,4;
k=1,2,…,i-1}
∪{
(
X
ib
,
X
(1) i 1,r
TO MATLAB (road3(floyd))
0 3 5 10 7 5.5 7
3 0 2 7 4 2.5 4
5
2
0
5
2
4.5
6
D 10 7 5 0 3 7 8.5
7
4
2
3
0
4
5.5
5.5 2.5 4.5 7 4 0 1.5
7
4
6
8.5 5.5 1.5
0
S(v1)=10, S(v2)=7, S(v3)=6, S(v4)=8.5, S(v5)=7, S(v6)=7, S(v7)=8.5
(2) ij
是从
v
i
到
v
j
的只允许以
v
1
、
v 2 作为中间点的路径中最短路的长度.
…
(
)D(ν)=
(d
( ij
)
)
,其中 di(j )
min{di(j 1) , di( 1)
d(j 1)}
d
( ij
)
是从
v
i
到
v
j
的只允许以
v
1、
v
2、…、
v
作为中间点的路径中最短路
的长度.即是从 v i 到 v j 中间可插入任何顶点的路径中最短路的长,因此
)
,
i=1,2,3,4,5}∪{
(
X
(k ir
)
,
X
(k 1) i 1,r
)
,i=1,2,3,4,5;k=1,2,i-1}
若第 i 年初作了决策 X i 后,第 i+1 年初可以作决策 X i1 ,则顶点 X i 与 X i1 之间有弧( X i , X i1 ),其权 W( X i , X i1 )代表第 i 年初到第 i+1 年
S(v3)=6,故应将消防站设在v3处.
返回
选址问题--重心问题
例 3 某矿区有 7 个矿点,如图所示.已知各矿点每天的产矿量
为 q(v j ) (标在图的各顶点上).现要从这 7 个矿点选一个来建造矿
厂.问应选在哪个矿点,才能使各矿点所产的矿运到选矿厂所在地的 总运力(千吨公里)最小.
(1)求距离阵 D= (d ij ) .
D
5
2
0
2
4 ,
R
4
2
3
4
5
3 4 2 0 6
1 3 3 4 3
9
6
4
6
0
4
3
3
3
5
d51 9 ,故从 v5 到 v1 的最短路为9. r51 =4.由 v4 向 v5 追溯: r54 3, r53 3 ;
由 v4 向 v1 追溯: r41 1 所以从 v5 到 v1 的最短路径为:5 3 4 1.
aij 10
若(vi,v j) E 若(vi,v j) E
例:有向图的邻接矩阵
v1
0
A= 0
0 1
v2 v3 v4
1 0 0 v1
0 0 1 v2
1 0
0 1
0 0
v3 v4
赋权图
对有向赋权图G,其邻接矩阵 A (aij ) ,其中:
wij aij 0
若(vi , v j ) E,且wij为其权 若i j
(2) 计算各顶点作为选矿厂的总运力 m(vi )
m(vi ) q(v j ) dij
i 1, 2, ,
j 1
(3) 求 vk 使 m(vk ) m1iin {m(vi )},则 vk 就是选矿厂应选的矿
点.此点称为图 G 的重心或中位点.
返回
实验作业
生产策略问题:现代化生产过程中,生产部门面临的突出 问题之一,便是如何选取合理的生产率.生产率过高,导致产 品大量积压,使流动资金不能及时回笼;生产率过低,产品 不能满足市场需要,使生产部门失去获利的机会.可见,生产 部门在生产过程中必须时刻注意市场需求的变化,以便适时 调整生产率,获取最大收益.
输入: G 的带权邻接矩阵 w(u, v)
先写出带权邻接矩阵:
0
2 0
1
8 6
1
0
7
9
W
0 5 1 2 0 3 9
0 4 6
0
3 0
因 G 是无向图,故 W 是对称矩阵.
每对顶点之间的最短路
(一)算法的基本思想 (二)算法原理
1.求距离矩阵的方法 2.求路径矩阵的方法 3.查找最短路路径的方法 (三)算法步骤
k 1,2,3,4,5
其中
d(
X 1b
,
X
(k) 6r
)为顶点X 1b
到
X
(k 6r
)
的最短路的权.
求得最短路的权为 53,而两条最短路分别为
X 1b
X (1) 2r
X (2) 3r
X 4b
X (1) 5r
X
(2) 6r
;
X 1b
X (1) 2r
X 3b
X (1) 4r
X (2) 5r
X (3) 6r
(1)用 Floyd 算法求出距离矩阵 D= (d ij ) .
(2) 计算在各点 vi 设立服务设施的
最大服务距离 S (vi ) .
S (vi
)
max{d
1 j
ij
}
i 1, 2, ,
(3)求出顶点
v
k
,使
S
(vk
)
min{S
1i
(vi
)}
.
则vk 就是要求的建立消防站的地点.此点称为图的中心点.
若(vi , v j ) E
无向赋权图的邻接矩阵可类似定义.
v1 v2 v3 v4
0 2 v1
A= 0 3 v2
7
8
0 5
0
v3 v4
v1 v2 v3 v4
0 2 v1
A= 0 3 v2
7
8
0 5
0
v3 v4
最短路问题及其算法
固定起点的最短路 每对顶点之间的最短路
(1)D(1)=
(di(j1)
)
,其中
d (1) ij
min{di(j0)
,
d (0) i1
d (0) 1j
}
d
(1) ij
是从
v
i
到
v
j
的只允许以
v
1
作为中间点的路径中最短路的长度.
(2)D(2)=
(di(j2) )
,其中
d (2) ij
min{di(j1)
,
d (1) i2
d (1) 2j
}
d
D(ν)即是距离矩阵.
算法原理—— 求路径矩阵的方法
在建立距离矩阵的同时可建立路径矩阵R.
R= (rij ) , rij 的含义是从 v i 到 v j 的最短路要经过点号为 rij 的点.
R(0) (rij(0) ) ,
r (0) ij
j
每求得一个 D(k)时,按下列方式产生相应的新的 R(k)
对所有 i,j,若 d(i,k)+d(k,j)<d(i,j),则 d(i,j) d(i,k)+d(k,j), r(i,j) k
(3) 若 k= ,停止.否则 k k+1,转(2).
例 求下图中加权图的任意两点间的距离与路径.
0 7 5 3 9
1 4 4 4 4
7 0 2 4 6
3 2 3 3 3
然后用同样的方法再分头查找.若:
(1)向点
i
追溯得:
r ( ip1
)
p2
,
r ( ip2
)
p3
,…,
r ( ipk
)
pk
(2)向点
j
追溯得:
r ( ) p1 j
q1
,
r ( ) q1 j
q2