最短路径问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《MATLAB及应用》
课程论文
实践选题:最短路径问题
专业班级:10级信信息管理与信息系统1班指导教师:周宏宇
成绩评定:
最短路径问题
摘要:
在图论当中,任意两点间的最短路径问题,运用Dijkstra 算法,Flord 算法,匈牙利算法等都可以就解决这类相关问题,本文主要就是运用图论相关知识,来分析问题的。
在问题一中,需要为货车司机选择一条从地点1到地点11的最短时间问题,其实际归结为求一个两点间最短路径问题,运用运筹学中的网络模型相关知识,建立了一个一个0-1线性模型,并最终求的其结果,最短时间为21,货车司机的运输路线为1891011
vvvvv →→→→。 运用Floyd 算法解决问题二,并且运用Matlab 软件编程,Floyd 算法与Matlab 软件编程所得出的结果一致,最后得出了一个最短航程表,及任意两点间的最短航程图。
本文的最大亮点在于将问题二进行更深一步的拓展,从问题实际出发,从公司的差旅费用最小出发,利用Mtlab 软件编程的出了公司到个城市间差旅费用最小图,从而更能为公司节省成本。
任意城市间差旅费用最小
其次是本文结果的准确性,问题一运用Lingo 软件编程,和WinQSB 软件,所得出结果都是一致的,问题二更是运用Floyd 算法,Matlab 软件编程,WinQSB 软件,大大地保证了结果的准确性,并且十分恰当地运用WinQSB 软件将作图功能,把每一提的最短路径都清晰的描绘出来,更加直观地将结果展现出来。
关键字:Matlab Lingo WinQSB Floyd 算法 0-1规划
一、 问题重述
问题一需要解决的问题是在一个城市交通网络中(图一),如何从地点1找到一条时间最短路径通往地点11,在这个城市交通网络中,有单向道,也有双向道,即如何处理一个有向图与无向图结合的图论问题,并且是一个两点间的最短路径问题:
图(一)
问题二阐述的是某公司员工往来于六个城市间,给出了这六个城市间的直达航班票价(表二),需要为这家公司提供出这六个城市间任意两点间的最小航班费用表
05040251050015202515010204020100102525201005510
25
25
55
0∞⎡⎤⎢⎥∞⎢⎥⎢⎥∞∞⎢⎥⎢⎥⎢⎥∞⎢⎥∞
⎣⎦
表(二)
二、问题分析
问题一的分析:
实际问题是货车运输问题,货车运输从起点1到终点11,一般情况下,不存在货物往回运输,所以地点1到地点8是可以看成是一个单向道,即8指向1,同样的地点8也是指向地点9的。假设货物到达地点9时,货物要运送到终点,则地点9只能指向地点10,同理货物到达地顶点点7,只能是往地点6
的方向运
输。如果货物到达地点5时,货物只有经过5 →6 →9 →10 →11,才是最短的,所以在这里地点5指向地点6.同理3指向5,得出图(二),这样按照时间耗费的目的,将一个有向图与无向图结合的图,转化为一个单纯的有向图,这将有利于问题的分析。
图(二)
问题二的分析;
通过题目给出的六个城市间的直达航班票价(表二),可以将其绘成无向图(图三),可以将其转换成一个图轮问题,即求一个具有六个顶点无向图的任意两点间的最短路径问题,这里用到图论当中的Flord算法。
图(三)
三、基本假设
1、货车在各路段中所花时间数据属实。
2、货车在行驶中是按匀速行驶
3、货运车在路途中无意外发生,无需返回原地。
4、假设天气等一些客观因素不影响交通运输。
5、飞机航班不存在延误现象。
6、公司员工转机过程中不存在逗留现象。
四、符号说明
1、:i j e 货车从地点i 到地点j 所花的时间:
2、
i j
x
:货车司机是否选择地点i 到地点j ,
1(,0,{ij i j ij x = 弧)包括在最短路径中 不选择弧()
; 3、i j
c
公司员工选择从城市i 到城市j 的航班,1,0
i j
i j c ⎧
=⎨⎩选择城市间航班,不选择; 4、i D ,插入点i ; 5、
i
p
:插入点i 后的路径;
五、模型的建立与求解
问题1的模型建立与求解
跟据已得出的分析再加上题目所给的已知条件,可以得出其赋全矩阵(表(三)):·
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v1 0 8 ∞ ∞ ∞ ∞ 7 8 ∞ ∞ ∞ v2 ∞ 0 3 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ v3 ∞ ∞ 0 5 6 ∞ 5 ∞ ∞ ∞ ∞ v4 ∞ ∞ ∞ 0 11 ∞ ∞ ∞ ∞ ∞ 12 v5 ∞ ∞ 6 ∞ 0 2 ∞ ∞ ∞ ∞ 10 v6 ∞ ∞ ∞ ∞ 2 0 ∞ ∞ 3 ∞ ∞ v7 ∞ ∞ ∞ ∞ ∞ 9 0 ∞ ∞ ∞ ∞ v8 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 9 ∞ ∞ v9 ∞ ∞ ∞ ∞ 7 ∞ ∞ ∞ 0 2 ∞ v10 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 2 0 2 v11
∞
∞
∞
∞
∞
∞
∞
∞
∞
∞
表(三)
建立如下0-1规划数学模型:
i j i j i j
M i n z c x =⋅∑
12171812231776188923343537173776766569896995910344541135
456595511354595655117669657665699101011000000000000x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
x x x x x x x x x x x x x ++=-=-=-=---=+-=--=+--=--=+++-=++--=--=+-=-13441145411511101100110,x x x x x x x ⎧⎪⎪⎪⎪
⎪
⎪⎪
⎪⎪⎪
⎪⎪
⎨
⎪⎪⎪⎪⎪⎪⎪
=⎪
⎪--=⎪
++=⎪
⎪=⎩或所有弧(i ,j )
运用Lingo 软件输入一个线性规划程序(见附录(一)),分析得出如下结果:
form to time time v1 v8 8 8 v8 v9 9 17 v9 v10 2 19 v10 v11 2 21 v1 v11 = 21 v1 v2 = 8 v1 v3 = 11 v1 v4 = 16 v1 v5 = 17 v1 v6 = 16 v1 v7 = 7 v1 v8 = 8 v1 v9 = 17 v1 v10 = 19
表(四)
模型一的结果分析:
利用WinQSB 软件中的Network model,选择Short Path problem,输入问题一的赋权矩阵(表 )输入如下数据: