教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

数学建模运输问题

来源:网络收集 时间:2026-05-28
导读: 很好 华东交通大学数学建模2012年第一次模拟训练题 所属学校:华东交通大学(ECJTU) 参赛队员:胡志远、周少华、蔡汉林、段亚光、 李斌、邱小秧、周邓副、孙燕青 指导老师:朱旭生(博士) 摘要: 本文的运输问题是一个比较复杂的问题,大多数问题都集中在

很好

华东交通大学数学建模2012年第一次模拟训练题

所属学校:华东交通大学(ECJTU) 参赛队员:胡志远、周少华、蔡汉林、段亚光、

李斌、邱小秧、周邓副、孙燕青

指导老师:朱旭生(博士)

摘要:

本文的运输问题是一个比较复杂的问题,大多数问题都集中在最短路径的求

解问题上,问题特点是随机性比较强。 根据不同建模类型 针对问题一 ,我们直接采用Dijkstra算法(包括lingo程序和手算验证),将问题转化为线性规划模型求解得出当运送员在给第二个客户卸货完成的时,若要他先给客户10送货,此时尽可能短的行使路线为:V2 V3 V8 V9 V10,总行程85公里。

针对问题二,我们首先利用prim算法求解得到一棵最小生成树:

V1 V5 V7 V6 V3 V4 V8 V9 V10 V2 V1

再采用Dijkstra算法求得客户2返回提货点的最短线路为V2 V1故可得到一条理想的回路是:V1 V5 V7 V6 V3 V4 V8 V9 V10 V2 V1 后来考虑到模型的推广性,将问题看作是哈密顿回路的问题,建立相应的线性规划模型求解,最终找到一条满足条件的较理想的的货车送货的行车路线:

V1 V5 V7 V6 V3 V4 V8 V9 V10 V2 V1。

针对问题三,我们首先直接利用问题二得一辆车的最优回路,以货车容量为限定条件,建立相应的规划模型并设计一个简单的寻路算法,最终可为公司确定合理的一号运输方案:两辆车全程总和为295公里(见正文);然后建立线性规划模型得出二号运输方案:两辆车全程总和为290公里(见正文); 针对问题四,

很好

一、问题分析

对问题(一)的分析就是求指定两点间的最短路径问题,对此我们可以采用dijkstra算法可以很简单的算出答案,由此延伸一下我们可以推广到可找出第二个客户到任何一个客户的的最短路径,为此我们也将找出此类题目的一般lingo算法。

对问题(二)的分析,由提货点出发再返回到提货点,而且这条路径必须是相对而言最短的,显然这个问题是在模型中找出一条最短的哈密尔顿回路的问题,建立相应的线性规划模型就能最终找到一条满足条件的较理想的的结果

对问题(三)的分析,这个问题主要是要把9个客户(1好客户为提货点)分成两个集合,然后依次构建出两个完整的最短的汉密尔顿回路。

对问题(四)的分析

关键字:Dijkstra算法, prim算法, 哈密顿回路

二、 模型假设

1、任何两个客户之间的路径长度都是固定的,不存在临时出发状况例如绕道,改道的情况。

2、不考虑任何现实状况中的实际情况,一切按照题目的数据进行求解。

三、符号说明

cij表示从第i个客户到第j个客户的路线距离

表示第i个客户到第j个客户的0-1变量

(注:其他变量在模型中定义)

四、模型的建立与求解

问题一、 模型一:

直接求解:

为了简化问题我们用dijistra算法直接求解,然后用表格法简化其操作步骤:

很好

2 3 8 9 10(且最短路径为85)

同样从上表格中我们不但可以找出客户2到客户10的最短路径同样可以找出客户到其他任何客户位置的最短路径列表如下:

2 1(最短路径为50) 2 3(最短路径为30) 2 3 4(最短路径为45) 2 5(最短路径为35) 2 6(最短路径为50) 2 5 7(最短路径为45) 2 3 8(最短路径为55

2 3 8 9(最短路径为65)

模型二:

编写出lingo的算法求解:

定义f(i)是由pi点出发至终点pN的最短路程,由最优化原理可得

{cij f(j)},i 1,2, ,N 1 f(i) minj

f(N) 0

这是一个函数方程,用LINGO可以很方便的解决。

model: data: n=10; enddata sets:

points/1..n/: F; !10个客户点; roads(points,points)/ 1,2

2,3 2,5 2,6 2,8

3,4 3,6 3,7 3,8 3,10

很好

4,5 4,6 4,7 4,8 4,9 4,10 5,6 5,7 5,8 5,10 6,7 6,8 6,9 7,8 7,9 7,10 8,9 9,10 /: D, P; endsets data: D= 50

30 35 50 60 15 30 50 25 60 45 30 55 20 40 65 60 10 30 55 25 55 35 30 45 60 10 20; enddata F(n)=0;

@for(points(i) | i #lt# n:

F(i)=@min(roads(i,j): D(i,j)+F(j)); );

!显然,如果P(i,j)=1,则点i到点n的最短路径的第一步是i --> j,否则就不是。

由此,我们就可方便的确定出最短路径; @for(roads(i,j):

P(i,j)=@if(F(i) #eq# D(i,j)+F(j),1,0) ); End

摘入Lingo的部分显示结果:

P( 1, 2) 1.000000 P( 2, 3) 1.000000 P( 2, 5) 0.000000 P( 2, 6) 0.000000 P( 2, 8) 0.000000 P( 3, 4) 0.000000 P( 3, 6) 0.000000 P( 3, 7) 0.000000 P( 3, 8) 1.000000 P( 3, 10) 0.000000 P( 4, 5) 0.000000

很好

P( 4, 6) 0.000000 P( 4, 7) 0.000000 P( 4, 8) 1.000000 P( 4, 9) 0.000000 P( 4, 10) 0.000000 P( 5, 6) 0.000000 P( 5, 7) 0.000000 P( 5, 8) 0.000000 P( 5, 10) 1.000000 P( 6, 7) 0.000000 P( 6, 8) 0.000000 P( 6, 9) 1.000000 P( 7, 8) 1.000000 P( 7, 9) 0.000000 P( 7, 10) 1.000000 P( 8, 9) 1.000000

由p(i,j)是否等于1来确定路径,可得路径为2->3,3->8,8->9,9->10.为85

模型结果对比:

由第一个结果对比第二个模型的算法结果相同,可知这个lingo算法模型是正确的,以后若遇到类似求某点到其他各点的最短路径问题都可选用lingo的算法求解

问题二

很明显运输公司分别要对10个客户供货,必须访问每个客户,但问题要求我们建立相应模型寻找一条尽可能短的行车路线,首先不考虑送货员把10个客户所需的货送完货后不返回提货点的情形,利用求最小 …… 此处隐藏:9492字,全部文档内容请下载后查看。喜欢就下载吧 ……

数学建模运输问题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1336184.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)