最短路问题专题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 应用举例
3.2 物流配送问题
问题抽象:物流配送问题可以抽象为必须通过指定点的最短路问题。 分两种情况:车辆回到原点;车辆不回到原点。
举例:考虑2点的情况 由始点k1到终点k2,经过指定点t1、t2的最短路经过4个顶点的 顺序只能是如下两种情况,k1→t1→t2→k2和k1→t2→t1→k2. 若要满 足所求得的路是最短路,那么4个顶点中相邻顶点之间的路也一定 是最短路。 于是分别计算k1→t1,t1→t2,t2→k2和k1→t2,t2→t1,t1→k2 之间的最短路;然后前三者相加得d1,后三者相加得d2,比较d1与 d2之值,取较小者作为最终的输出结果。
由此可以看出,算法的时间与随问题规模增大呈指数增长,所以最 短路算法不适合大规模配送问题求解。
考虑经过2点的Matlab程序(见附件)
ቤተ መጻሕፍቲ ባይዱ
3 应用举例
3.3 多目标运输问题
求次短路 Matlab程序
参考文献: 多目标最短路模型及算法,西南交通大学大学学报
最短路问题算法及应用
主要内容
1 问题描述 2 算法介绍
2.1 dijkstra算法 2.2 floyd算法
3 应用举例
3.1 物流中心选址 3.2 物流配送问题 3.3 多目标运输问题
1 问题描述
定义1 对简单图G的每一边e赋予一个实数,记为w(e),称为边e的 权,而每边都赋予权的图称为赋权图。 定义2 (u,v)-路的边权之和称为该路的长,而u,v间路长达到最小的 路称顶点u和v的最短路。 在给定赋权图G中,求两个互异顶点间的最短路,简记为最短路问题。
Step3:若dii<0,则存在一条含有顶点vi的负回路,停止;或者k=n停止,否则转入 step2.
Matlab程序(见附件)
3 应用举例
3.1 物流中心选址
步骤: 求出最短路径矩阵U; 矩阵U每一行求和; 最小值行标号为选 址地点。
Matlab程序(见附件)
参考文献: F I oyd最短路径算法在配送中心选址中的应用,湖南农业大学学报
最短路问题是最优化问题之一,广泛应用于生产实践中的许多问 题,如线路安排、厂区选址、设备更新等。
2 算法介绍-dijkstra算法
基本思想:按距离u0由近及远为顺序,依次求得u0到G的各顶 点的最短路和距离,直到v0(或直到G的所有顶点),算法结束。
算法步骤:
初始化(i=0):S0={vs},P(vs)=0, λ(vs)=0,对每一个v≠vs,令T(v)=+∞, λ(v)=M,k=s
令Si+1=Si ∪{vji},k=ji,i=i+1,转入step1.
Matlab程序(见附件)
2 算法介绍-floyd算法
算法步骤:
Step1:输入图G的权矩阵W,对所有i,j,有dij=wij,k=1;
Step2:更新dij,对所有i,j,若dij>dik+dkj,则令dij=dik+dkj;
Step1:如果Si=V,算法终止,否则转入step2; Step2:考察每个使(vk,vj) ∈ A且vj不属于Si的点vj。如果T(vj)>P(vk)+wkj,则把T(vj) 修改为P(vk)+wkj,把 λ(vj)修改为k,否则转入step3;
Step3:令T(vji)=min{T(vj)| vj不属于Si}。如果T(vji)<+∞ ,则把vji的 T标号变为P标号,