运输优化模型参考
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运输问题
摘要
本文根据运输公司提供的提货点到各个客户点的路程数据,利用线性规划的优化方法与动态优化模型——最短路径问题进行求解,得到相关问题的模型。
针对问题一 ,我们采用Dijkstra 算法,将问题转化为线性规划模型求解得出当运送员在给第二个客户卸货完成的时,若要他先给客户10送货,此时尽可能短的行使路线为:109832V V V V V →→→→,总行程85公里。
针对问题二,我们首先利用prim 算法求解得到一棵最小生成树:
再采用Dijkstra 算法求得客户2返回提货点的最短线路为12V V →故可得到一条理想的回路是:121098436751V V V V V V V V V V V →→→→→→→→→→
后来考虑到模型的推广性,将问题看作是哈密顿回路的问题,建立相应的线性规划模型求解,最终找到一条满足条件的较理想的的货车送货的行车路线:
121098436751V V V V V V V V V V V →→→→→→→→→→。
针对问题三,我们首先直接利用问题二得一辆车的最优回路,以货车容量为限定条件,建立相应的规划模型并设计一个简单的寻路算法,最终可为公司确定合理的一号运输方案:两辆车全程总和为295公里(见正文);然后建立线性规划模型得出二号运输方案:两辆车全程总和为290公里(见正文);最后再进一步优化所建的线性规划模型,为运输公司
针对问题四,我们首先用Dijkstra 算法确定提货点到每个客户点间的最短路线,然后结合一些限定条件建立一个目标模型,设计一个较好的解决方案进行求解可得到一种很理
该方案得到运输总费用是645元。
关键字:Dijkstra 算法, prim 算法, 哈密顿回路
问题重述
某运输公司为10个客户配送货物,假定提货点就在客户1所在的位置,从第i个客户
到第j个客户的路线距离(单位公里)用下面矩阵中的(,)
i j(,1,,10)
i j=L位置上的数表示
(其中∞表示两个客户之间无直接的路线到达)。
1、运送员在给第二个客户卸货完成的时候,临时接到新的调度通知,让他先给客户10送
货,已知送给客户10的货已在运送员的车上,请帮运送员设计一个到客户10的尽可能
短的行使路线(假定上述矩阵中给出了所有可能的路线选择)。
2、现运输公司派了一辆大的货车为这10个客户配送货物,假定这辆货车一次能装满10个
客户所需要的全部货物,请问货车从提货点出发给10个客户配送完货物后再回到提货
点所行使的尽可能短的行使路线?对所设计的算法进行分析。
3、现因资源紧张,运输公司没有大货车可以使用,改用两辆小的货车配送货物。每辆小货
车的容量为50个单位,每个客户所需要的货物量分别为8,13,6,9,7,15,10,5,
12,9个单位,请问两辆小货车应该分别给那几个客户配送货物以及行使怎样的路线使
它们从提货点出发最后回到提货点所行使的距离之和尽可能短?对所设计的算法进行
分析。
4、如果改用更小容量的车,每车容量为25个单位,但用车数量不限,每个客户所需要的货物量同第3问,
并假设每出一辆车的出车费为100元,运货的价格为1元/公里(不考虑空车返回的费用),请问如何安
排车辆才能使得运输公司运货的总费用最省?
问题1
【模型分析与假设】
运送员在给第二个客户卸完货后,即从此处赶到第十个客户处,路程越短越好,是一个最短路径问题,为此我们采用Dijkstra算法,考虑到建模的方便我们将问题转化为线性规划模型进行求解。
下面是一些变量的假设与说明:
X为0,1变量,其值为1代表行车路线经过第j个客户,为0则代表不经过。
1.
ij
C为题中给出的邻接矩阵对应位置的值。
2.
ij
3.为了表达的方便,将邻接矩阵的第一行与第二行互换,第一列与第二列互换。(因为求的是客户2至客户10的最短线路,而非提货点至客户10)同时将矩阵中数据0或∞用一个足够大的数999代替。(这是因为目标函数是求最小值)
【模型建立与求解】
建立问题的模型(1)是:
将其转化为lingo代码(见附录[1])后,求解可得以下结果:
Global optimal solution found at iteration: 19
Objective value:
Variable Value Reduced Cost
X( 1, 3)
X( 3, 8)
X( 8, 9)
X( 9, 10)
至此可以知道,运送员应该走的最好路线是:
总行程为85公里。
【模型检验与评价】
该模型是基于Dijkstra 算法的基础上转化为线性规划模型来求最短路径的模型,优点是实现较简单,也容易求解;但有个令人不是很满意的地方就是其模式固定,要求任两个客户点间最短距离时,需将其一客户的位置与提货点互换,另一个客户的位置则需与客户10的位置互换,将其看成原始的提货点到客户10最短距离的模型进行求解,这样较为烦琐,有待改进。
问题2
【模型分析】
很明显运输公司分别要对10个客户供货,必须访问每个客户,但问题要求我们建立相应模型寻找一条尽可能短的行车路线,首先不考虑送货员把10个客户所需的货送完货后不返回提货点的情
2V (客户2)返回1V
从上分析知送货员从提货点1出发,要走遍客户2,3,…,n 各至少一次,最后返提
货点1。
为了更方便地建立起模型首先作以下假设与说明:
1.ij X 为0,1整形变量,其值为1代表行车路线经过第j 个客户,为0则代表不经过。 2.ij C 为客户i 到j 的距离(题中给出的邻接矩阵的数据)。
3.为了数据的方便处理,先将邻接矩阵中的数据∞用一个足够大的数999代替。
4.访问客户i 后必须要有一个即将访问的确切客户;访问客户j 前必须要有一个刚刚访问过的确切客户。故我们用以下条件来分别保证我们的假设。
到此我们得到了一个模型,它是一个指派问题的整数规划模型。其目标是使式子:∑∑==*10110
1i j ij ij X C
在约束条件下取得最小值。
5.哈密顿图优化问题[5],须添加一个额外变量()10,,3,2Λ=i u i
,目的是为了更好的防止子巡回
的产生,即须附加一个约束条件:
到现在我就可以建立以下模型对问题求解了。
【模型建立与求解】
可建立问题的模型(2)为:
同样借助数学软件求解可得结果: