- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数学建模实验报告最短路问题及其算法.doc
最短路问题及其算法
一.实验目的:
1、了解与掌握图论的基本概念、相关MATLAB知识和最短路径算法;
2、学会使用MATLAB编写Dijkstra算法和Floyd算法程序求最短路径.
二.实验内容:
要铺设一条A1→A2→…→A15的输送天然气的主管道,如图所示.经筛选后可以生产这种主管道的钢厂有S1,S2,…,S7.图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位:km)在指定期限内能生产刚钢管的最大数量为个单位.钢管出厂销价1单位钢管为万元,如下表:
1 2 3 4 5 6 7 800 800 1000 2000 2000 2000 3000 160 155 155 160 155 150 160
1单位钢管的铁路运价如下表:
里程(km) 300 301-350 351-400 401-450 451-500 运价(万元) 20 23 26 29 32 里程(km) 501-600 601-700 701-800 801-900 901-1000 运价(万元) 37 44 50 55 60 1000km以上每增加1至100km运价增加5万元.
公路运输费用为1单位钢管0.1万元每千米(不足整千米部分按整千米计算).
假设从钢厂订购钢管运输到铺设地点和.钢厂在指定期间内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为155万元.
试制定一个从钢厂到铺设地点和的钢管的订购与运输计划,使总费用最小.
三. 模型建立
设为,将上图按从上到下,从右到左的顺序依次命名如下.将上图改为如下赋权图形:
利用Dijkstra算法和Floyd算法:求中从顶点到其余顶点的最短路.而求钢厂到铺设地点和的最短距离,即为到和的最短距离
解:先写出带权邻接矩阵:
后分别用Dijkstra算法和Floyd算法步骤,求出到和的最短路的权以及的父亲点标记.
四. 模型求解(含经调试正确的源程序w=[0 1200 inf inf inf inf inf inf inf inf;
1200 0 12 202 inf inf inf inf inf inf;
inf 12 0 inf 201 inf inf inf inf inf;
inf 202 inf 0 31 20 inf inf inf inf;
inf inf 201 31 0 10 inf 205 inf inf;
inf inf inf 20 10 0 195 inf inf inf;
inf inf inf inf inf 195 0 5 306 inf;
inf inf inf inf 205 inf 5 0 inf 194;
inf inf inf inf inf inf 306 inf 0 10;
inf inf inf inf inf inf inf 194 10 0];
n=size(w,1);
w1=w(1,:);
for i=1:n
l(i)=w1(i);
z(i)=1;
end
s=[];
s(1)=1;
u=s(1);
k=1;
l;
z;
while kn
for i=1:n
for j=1:k
if i~=s(j)
if l(i)l(u)+w(u,i);
l(i)=l(u)+w(u,i);
z(i)=u;
end
end
end
end
l;
z;
ll=l;
for i=1:n
for j=1:k
if i~=s(j)
ll(i)=ll(i);
else
ll(i)=inf;
end
end
end
lv=inf;
for i=1:n
if ll(i)lv
lv=ll(i);
v=i;
end
end
lv;
v;
s(k+1)=v;
k=k+1;
u=s(k);
end
l
z
(2) Floyd算法
road2.m文件源程序:
a=[0 1200 inf inf inf inf inf inf inf inf;
1200 0 12 202 inf inf inf inf inf inf;
inf 12 0 inf 201 inf inf inf inf inf;
inf 202 inf 0 31 20 inf inf inf inf;
inf inf 201 31 0 10 inf 205 inf inf;
inf inf inf 20
您可能关注的文档
最近下载
- 基于学科核心素养的高中语文大单元教学.docx VIP
- 网络货运平台整体设计方案.docx VIP
- 医学课件-第五章 血管内皮细胞功能不全与疾病.pptx VIP
- 妊娠合并贫血试题附有答案.docx VIP
- 2025年全国统一高考英语试卷(新课标Ⅰ卷)含答案 .pdf VIP
- 10X-Genomics单细胞转录组.pptx VIP
- 2024年中考生物复习:105个初中生物易错字汇总(全国通用).pdf VIP
- DB37_T5116-2018:装配式竖向部件临时斜支撑应用技术规程.pdf VIP
- 网络货运平台整体设计方案.pptx VIP
- 2025年高考历史新课标卷真题试卷及答案.docx VIP
文档评论(0)