Dijkstra算法在物流网络设计中的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
技术市场
Dijks tra 算法在物流网络设计中的应用
李国成
【摘
要】 最短路问题是图论中的一个经典的问题, 由于问题中边的权值往往可以从距离引申为其他沿路径线性积累的度量,
如时间、 花费等针对上述问题, 本文在图论和运筹学的基础上, 采用 Dijkstra 算法来计算运输网络中费用最低的路径。 【关键词】 最短路径; Dijkstra 算法; 运输网络 一、 引言




[1]E.I.Lawhr ComblaatotiM Optimieation: Networks and Martros. Holt Rinehart and Wiamon.New York.1976
企业导报 2011 年第 18 期
285
市 v1,v2, · · · ,v6 之间的一个公路网 (图 1 ) 每条公路为图中的边,
解: 应用 Dijkstra 算法[1-2]首先设每百公里所用费用相同, 求 v1 到 v6 的费用最少, 既求 v1 到 v6 的最短路线, 为了方便计 算, 先做出该网络的距离矩阵, 如下:
v v L = v v v v v v 0 5 v 2 v v v ∞ ∞ ∞ 0 1 5 9 ∞ 1 0 8 10 ∞ 5 8 0 2 5 9 10 2 0 2 ∞ ∞ 5 2 0
设 W(v1)=0,T(v)=∞,vj∈s={v2,v3,v4,v5,v6} (一 ) 第一次迭代 (1 ) 计算 T(v1),j=2,3,4,5,6 如下:
T(v2)=min{T(v2),W(v1)+w12}=min{∞,0+5}=5 T(v3)=min{T(v3),W(v1)+w13}=min{∞,0+2}=2
由于它具有图形直观, 方法简单, 容易掌握的特点。最短路问题
在生产生活中人们经常遇到求从一个地方到另一个地方
的最短路线的问题。以各个城市应两顶点之间的边, 以每条路的长度作 为相应的边的权, 问题就转化为求赋权图 G 中指定的顶点到其
余顶点的最短路。本文通过示例, 在图论和运筹学的基础上, 采 用 Dijkstra 算法来计算运输网络中费用最低的路径。设 6 个城 边上的权数表示该段公路的长度 (单位: 百公里) , 设你处在城 从 v1 到 v6 应选择哪一路径使费用最省。 市 v1,
T(v5)=min{T(v5),W(v2)+w25}=min{10,3+9}=10; T(v6)=∞
vj∈s
(2 ) 取min {T(vj)}=8=T(v4), W(v4)=T(v4)=8 (3 ) 由于 k=4≠(n=6), 令 s={v5,v6},i=4 转(1) (四 ) 第四次迭代 (1 ) 算 T(vj),j=5,6如下:
(五 ) 第五次迭代
(1 ) 算 T(vj),j=6如下:
5 2 ∞ ∞ ∞
T(v6)=min{T(v6),W(v5)+w56}=min{13,10+2}=12
(2 ) 由于 k=5≠(n=6), 因此已找到 v1 到 v6 的最短距离为 12,
计算结束。找最短路线: 逆向追踪得 v1→v2→v3→v4→v5→v6。最 短距离为 12, 即从城市 v1 到城市 v6 的距离最短, 费用最省。
vj∈s
(2 ) 取min {T(vj)}=3=T(v2), 令 W(v2)=T(v2)=3 (3 ) 由于 k=2≠(n=6), 令 s={v4,v5,v6},i=2 转 (1 )
(三 ) 第三次迭代
(1 ) 算 T(vj),j=4,5,6如下:
T(v4)=min{T(v4),W(v2)+w24}=min{8,3+5}=8
图论模型是应用十分广泛的运筹学分支, 它已经被广泛的
应用在物理学, 化学, 控制论, 信息论, 科学管理和计算机领域 . 是图论中的一个经典的问题。由于问题中边的权值往往可以从 距离引申为其他沿路径线性积累的度量所以最短路径问题在 实际生活中有着广泛的应用, 如城市规划, 交通导航等。 二、 算法应用
Á Â Ã Ä Å Æ Ä Å Æ
(临沂大学费县分校, 山东 临沂 273400 ) (v6)=∞
vj∈s
T(v4)=min{T(v4),W(v1)+w14}=min{∞,0+ ∞}= ∞; T(v5)= ∞,T
(2 ) 取min {T(vj)}=2=T(v3), 令 W(v3)=T(v3)=2 (3 ) 由于 k=3≠(n=6), 令 s={v2,v4,v5,v6},i=3 转 (1 )
(二 ) 第二次迭代
(1 ) 算 T(vj),j=2,4,5,6 如下:
T(v2)=min{T(v2),W(v3)+w23}=min{5,2+1}=3
T(v4)=min{T(v4),W(v3)+w34}=min{8,2+8}=8 T(v5)=min{T(v5),W(v3)+w35}=min{10,2+10}=10 T(v6)=min{T(v6),W(v3)+w36}=min{∞,2+∞}=∞
T(v5)=min{T(v5),W(v4)+w45}=min{10,2+8}=10
图1
T(v6)=min{T(v6),W(v4)+w46}=min{∞,8+5}=13
vj∈s
(2 ) 取min {T(vj)}=10=T(v5), 令 W(v5)=T(v5)=10 (3 ) 由于 k=5≠(n=6), 令 s={v6}转 (1 )
相关文档
最新文档