数学建模运输问题
蔬菜运输问题数学建模

蔬菜运输问题数学建模
蔬菜运输问题可以通过数学建模来解决。
以下是一种可能的数学建模方法:
1. 定义变量:
- X[i][j]:表示从地点i运送蔬菜到地点j的数量,其中i和j 是地点的编号。
- D[i][j]:表示从地点i到地点j的运输距离。
2. 目标函数:
由于蔬菜运输的目标通常是最小化总运输成本或最短运输时间,可以设置目标函数为最小化运输成本或最小化运输时间。
具体的目标函数可以根据具体情况来定。
3. 约束条件:
- 每个地点的进出蔬菜数量必须平衡:对于每个地点i,进出的蔬菜数量之和要等于该地点的需求或产出量。
即∑X[i][j] - ∑X[j][i] = 0。
- 运输量不能超过运输能力限制:对于每个地点i到地点j的运输量X[i][j],必须满足X[i][j] <= C[i][j],其中C[i][j]表示地点i到地点j的运输能力限制。
- 运输量必须是非负数:X[i][j] >= 0。
4. 其他要求和限制:
- 可以考虑添加其他特殊要求和限制,如运输时间窗限制、调度顺序要求等。
5. 求解方法:
运用数学规划方法,如线性规划或整数规划,求解目标函数和约束条件得到最优的蔬菜运输方案。
数学建模之运输问题

数学建模之运输问题1. 引言运输问题是指在给定产地到销售地之间有若干个供应点和需求点的情况下,如何安排运输使得总运输成本最低。
这是一个经济管理中的经典问题,也是数学建模中常见的一个研究方向。
2. 问题描述假设有n个供应点和m个需求点,其中每个供应点的供应量和每个需求点的需求量已知,并且每个供应点到每个需求点的运输成本也已知。
我们的目标是确定供应点到需求点的运输量,使得总运输成本最小。
3. 模型建立为了建立数学模型,我们可以引入一个矩阵来表示供应点和需求点之间的运输成本。
设C为一个n行m列的矩阵,其中Cij表示供应点i到需求点j的运输成本。
我们需要引入决策变量X,其中Xij表示从供应点i到需求点j的运输量。
那么,目标函数可以定义为最小化总运输成本,即$$\min \sum_{i=1}^{n} \sum_{j=1}^{m} C_{ij} X_{ij}$$同时,我们需要保证供应点和需求点的供需平衡,即满足每个供应点的供应量和每个需求点的需求量。
这可以表示为以下约束条件:1. 对于每个供应点i,有 $\sum_{j=1}^{m} X_{ij} = s_i$,其中$s_i$ 表示供应点i的供应量。
2. 对于每个需求点j,有 $\sum_{i=1}^{n} X_{ij} = d_j$,其中$d_j$ 表示需求点j的需求量。
进一步地,我们需要确保运输量的非负性,即$X_{ij} \geq 0$。
4. 求解方法对于较小规模的问题,我们可以使用线性规划方法求解运输问题。
线性规划是一种数学优化方法,可以在满足一定约束条件的前提下,使得目标函数达到最小值。
对于大规模的问题,我们可以使用近似算法或启发式算法进行求解。
这些算法可以快速找到较好的解,但不能保证找到最优解。
常用的算法包括模拟退火算法、遗传算法等。
5. 应用领域运输问题在许多实际应用中都有广泛的应用。
例如,在物流管理中,优化运输方案可以减少运输成本、提高运输效率;在生产计划中,合理安排运输可以确保供应链的稳定性和高效性。
运输问题

《数学建模与计算》问题运输问题1. 具体问题有某种物资3个产地,8个销地,第i个产地产量为ai(i=1,2,…,m)第j个销地的需要量为bj(j=1,2,…,n)其中。
由产地i到销地j的距离已知为dij,问应如何分配该种物资,使既能满足各地的需求又能在花费的运输总吨公里数最少(具体距离数据见下表格)①②③④⑤⑥⑦⑧供应量A 4 8 8 19 11 6 22 20 200B 14 7 7 16 12 16 23 17 170C 20 19 11 14 6 15 5 10 160销售量75 60 80 70 100 55 90 80 75由上表可知:该问题中出现了销售量大于产量的情况,因此可以可以增加一个虚产地,其中该虚产地到销售地的距离为0,则上表可以修改如下:①②③④⑤⑥⑦⑧供应量A 4 8 8 19 11 6 22 20 200B 14 7 7 16 12 16 23 17 170C 20 19 11 14 6 15 5 10 160虚产地0 0 0 0 0 0 0 0 075 60 80 70 100 55 90 80 752. 解决方法建立数据模型如下:Minz=4*x11+8*x12+8*x13+19*x14+11*x15+6*x16+22*x17+20*x18+14*x21+7*x22+7*x23+16*x24+12*x25+16*x26+23*x27+17*x28+20*x31+19*x32+11*x33+14*x34+6*x35+15*x36+5*x 37+10*x38+10*x41+8*x42+5*x43+10*x44+10*x45+8*x46+5*x47+8*x48 ;x11+x12+x13+x14+x15+x16+x17+x18=200 ;x21+x22+x23+x24+x25+x26+x27+x28=170 ;x31+x32+x33+x34+x35+x36+x37+x38=160 ;x41+x42+x43+x44+x45+x46+x47+x48=80 ;x11+x21+x31+x41=75 ;x12+x22+x32+x42=60;x13+x23+x33+x43=80 ;x14+x24+x34+x44=70 ;x15+x25+x35+x45=100 ;x16+x26+x36+x46=55 ;x17+x27+x37+x47=90 ;x18+x28+x38+x48=80 ;x>=0(i=1:4, ,j=1:8)ij3. 程序代码于是便可利用lingo软件编写程序求解如下:Min=4*x11+8*x12+8*x13+19*x14+11*x15+6*x16+22*x17+20*x18+14*x21+7*x22+7*x 23+16*x24+12*x25+16*x26+23*x27+17*x28+20*x31+19*x32+11*x33+14*x34+6*x35+1 5*x36+5*x37+10*x38+10*x41+8*x42+5*x43+10*x44+10*x45+8*x46+5*x47+8*x48 ;x11+x12+x13+x14+x15+x16+x17+x18=200 ;x21+x22+x23+x24+x25+x26+x27+x28=170 ;x31+x32+x33+x34+x35+x36+x37+x38=160 ;x41+x42+x43+x44+x45+x46+x47+x48=80 ;x11+x21+x31+x41=75 ;x12+x22+x32+x42=60;x13+x23+x33+x43=80 ;x14+x24+x34+x44=70 ;x15+x25+x35+x45=100 ;x16+x26+x36+x46=55 ;x17+x27+x37+x47=90 ;x18+x28+x38+x48=80 ;end4. 结果分析Global optimal solution found.Objective value: 3890.000Total solver iterations: 11Variable Value Reduced CostX11 75.00000 0.000000X12 0.000000 2.000000X13 0.000000 2.000000X14 0.000000 4.000000X15 70.00000 0.000000X16 55.00000 0.000000 X17 0.000000 12.00000 X18 0.000000 5.000000 X21 0.000000 9.000000 X22 60.00000 0.000000 X23 80.00000 0.000000 X24 0.000000 0.000000 X25 30.00000 0.000000 X26 0.000000 9.000000 X27 0.000000 12.00000 X28 0.000000 1.000000 X31 0.000000 21.00000 X32 0.000000 18.00000 X33 0.000000 10.00000 X34 0.000000 4.000000 X35 0.000000 0.000000 X36 0.000000 14.00000 X37 90.00000 0.000000 X38 70.00000 0.000000 X41 0.000000 11.00000 X42 0.000000 9.000000 X43 0.000000 9.000000 X44 70.00000 0.000000 X45 0.000000 4.000000 X46 0.000000 9.000000 X47 0.000000 5.000000 X48 10.00000 0.000000 Row Slack or Surplus Dual Price1 3890.000 -1.0000002 0.000000 -15.000003 0.000000 -16.000004 0.000000 -10.000005 0.000000 0.0000006 0.000000 11.000007 0.000000 9.0000008 0.000000 9.0000009 0.000000 0.00000010 0.000000 4.00000011 0.000000 9.00000012 0.000000 5.00000013 0.000000 0.000000 由结果可知:当X11=75.00000X15=70.00000X16=55.00000X22=60.00000X23=80.00000X25=30.00000X37=90.00000X38=70.00000X44=70.00000X48=10.00000其余为0时,该方案为最优方案.Min z= 3890.000而对于其他平衡运输问题以及产大于销问题,由上论述可知均可转化为平衡问题求解,这里就不再一一赘述。
数学建模运输问题

有时候把两个表写在一起:
销地 产地 1 2 . . . m 销量
销地 产地 1 2 . . . m
1
2
…
n
产 量 a1 a2 . . . am 销地 产地 1 1 2 … n 产 量 a1 a2 . . . am
b1
1
b2
2
…
…
bn
n
2 . . . m
销量
c11 c12 … c1n c21 c22 … c2n . . . . . . . . . cm1 cm2 … cmn b1 b2 … bn
B2 10 4 5 6 14 6 5 3 4 3+4 B3 B4’ B4’’ 产量 (万台) 10 12 10 10
4
4 2
6
4
Global optimal solution found at iteration: 8 Objective value: 172.0000
销地 厂家 1 2
1
2
3
4
销地 厂家 A1 A2 A3 最高需求(万台)
31
x
32
x x x x x
33
x 2 3 4 6
34
7
x 11 x x 12 x x 13 x x 14 x x
ij
21
31
22
32
23
33
LINGO求解
24
34
0
设有三个电视机厂供应四个地区某种型号的电视机。 各厂家的年产量、 销地 各地区的年销售量以及 B1 B2 B3 厂家 各地区的单位运价 A1 6 3 12 如右表, A2 4 3 9 试求出总的运费最省的 A3 9 10 13 6 14 0 最低需求(万台) 电视机调拨方案。
基于运输问题的数学建模

数学建模一周论文论文题目:基于运输问题的数学模型姓名1:学号:姓名2:学号:姓名3:学号:专业:班级:指导教师:2011年12 月29 日(十五)、已知某运输问题的产销平衡表与单位运价表如下表所示(1)求最优调拨方案;(2)如产地的产量变为130,又B地区需要的115单位必须满足,试重新确定最优调拨方案。
一论文摘要一般的运输问题就是要解决把某种产品从若干个产地调运到若干个销地,在每个产地的供应量与每个销地的需求量已知,并知道各地之间的运输单价的前提下,如何确定一个使得总的运输费用最小的方案的问题。
本论文运用线性规划的数学模型来解决此运输问题中总费用最小的问题。
引入x变量作为决策变量,建立目标函数,列出约束条件,借助MATLAB软件进行模型求解运算,得出其中的最优解,使得把某种产品从3个产地调运到5个销地的总费用最小。
针对模型我们探讨将某产品从3个产地调运到5个销地的最优调拨方案,通过运输问题模,得到模型Z=1011x+1512x+2013x+2014x+4015x+2021x+4022x+1523x+3024x minx+3031x+3532x+4033x+5534x+2535x+3025Z=并用管理运筹学软件软件得出最优解为:min关键词:运输模型最优化线性规划二.问题的重述和分析A(i=1,2,3)和五个销地j B(j=1,2,3,4,5),已知产地i A的产量有三个产地is和销地j B的销量j d,和将物品从产地i运到销地j的单位运价ij c,请问:i将物品从产地运往销地的最优调拨方案。
A,2A,3A三个产地的总产量为50+100+150=300单位;1B,我们知道,1B,3B,4B,5B五个销地的总销量为25+115+60+30+70=300单位,总2A,2A,3A的产量全产量等于总销量,这是一个产销平衡的运输问题。
把产地1B,2B,3B,4B,5B,正好满足这三个销地的需要。
先将安排的部分配给销地1运输量列如下表中:三.模型的假设与符号说明1.模型的假设①每一个产地都有一个固定的供应量,所有的供应量都必须配送到各个销地;②每一个销地都有一个固定的需求量,整个需求量都必须由产地满足;③从任何一个产地到任何一个销地的物品运输成本和所运输的数量成线性比例关系;④这个成本就等于运输的单位成本乘以运输的数量。
数学建模--运输问题

运输问题摘要本文主要研究的是货物运输的最短路径问题,利用图论中的Floyd算法、Kruskal算法,以及整数规划的方法建立相关问题的模型,通过matlab,lingo 编程求解出最终结果。
关于问题一,是一个两客户间最短路程的问题,因此本文利用Floyd算法对其进行分析。
考虑到计算的方便性,首先,我们将两客户之间的距离输入到网络权矩阵中;然后,逐步分析出两客户间的最短距离;最后,利用Matlab软件对其进行编程求解,运行得到结果:2-3-8-9-10总路程为85公里。
关于问题二,运输公司分别要对10个客户供货,必须访问每个客户,实际上是一个旅行商问题。
首先,不考虑送货员返回提货点的情形,本文利用最小生成树问题中的Kruskal算法,结合题中所给的邻接矩阵,很快可以得到回路的最短路线:1-5-7-6-3-4-8-9-10-2;然后利用问题一的Floyd算法编程,能求得从客户2到客户1(提货点)的最短路线是:2-1,路程为50公里。
即最短路线为:1-5-7-6-3-4-8-9-10-2-1。
但考虑到最小生成树法局限于顶点数较少的情形,不宜进一步推广,因此本文建立以路程最短为目标函数的整数规划模型;最后,利用LINGO软件对其进行编程求解,求解出的回路与Kruskal算法求出的回路一致。
关于问题三,是在每个客户所需固定货物量的情况下,使得行程之和最短。
这样只要找出两条尽可能短的回路,并保证每条线路客户总需求量在50个单位以内即可。
因此我们在问题二模型的基础上进行改进,以货车容量为限定条件,建立相应的规划模型并设计一个简单的寻路算法,对于模型求解出来的结果,本文利用Kruskal算法结合题中所给的邻接矩阵进行优化。
得到优化结果为:第一辆车:1-5-2-3-4-8-9-1,第二辆车:1-7-6-9-10-1,总路程为280公里。
关于问题四,在问题一的基础上我们首先用Matlab软件编程确定提货点到每个客户点间的最短路线,然后结合一些限定条件建立一个目标模型,设计一个较好的解决方案进行求解可得到一种很理想的运输方案。
运筹学 运输问题例题数学建模

运筹学运输问题例题数学建模运筹学是一门研究如何在有限的资源和多种约束条件下,寻求最优或近似最优解的科学。
运输问题是运筹学中的一个重要分支,它主要研究如何把某种商品从若干个产地运至若干个销地,使总的运费或总的运输时间最小。
本文将介绍运输问题的数学建模方法,以及用表上作业法求解运输问题的步骤和技巧。
同时,本文还将给出几个典型的运输问题的例题,帮助读者理解和掌握运输问题的求解过程。
运输问题的数学建模运输问题可以用以下的数学模型来描述:设有m 个产地(或供应地),分别记为A 1,A 2,…,A m ,每个产地i 的产量(或供应量)为a i ;有n 个销地(或需求地),分别记为B 1,B 2,…,B n ,每个销地j 的需求量为b j ;从产地i 到销地j 的单位运费(或单位运输时间)为c ij ;用x ij 表示从产地i 到销地j 的运量,则运输问题可以归结为以下的线性规划问题:其中,目标函数表示总的运费或总的运输时间,约束条件表示每个产地的供应量必须等于其产量,每个销地的需求量必须等于其销量,以及每条运输路线的运量不能为负数。
在实际问题中,可能出现以下几种情况:产销平衡:即∑m i =1a i =∑n j =1b j ,也就是说总的供应量等于总的需求量。
这种情况下,上述数学模型可以直接应用。
产大于销:即∑m i =1a i >∑n j =1b j ,也就是说总的供应量大于总的需求量。
这种情况下,可以增加一个虚拟的销地,其需求量等于供需差额,且其与各个产地的单位运费为零。
这样就可以把问题转化为一个产销平衡的问题。
产小于销:即∑m i =1a i <∑n j =1b j ,也就是说总的供应量小于总的需求量。
这种情况下,可以增加一个虚拟的产地,其产量等于供需差额,且其与各个销地的单位运费为零。
这样也可以把问题转化为一个产销平衡的问题。
弹性需求:即某些销地对商品的需求量不是固定不变的,而是随着商品价格或其他因素而变化。
数学建模大赛-货物运输问题

货物配送问题【摘要】本文是针对解决某港口对某地区8个公司所需原材料A、B、C的运输调度问题提出的方案。
我们首先考虑在满足各个公司的需求的情况下,所需要的运输的最小运输次数,然后根据卸载顺序的约束以及载重费用尽量小的原则,提出了较为合理的优化模型,求出较为优化的调配方案。
针对问题一,我们在两个大的方面进行分析与优化。
第一方面是对车次安排的优化分析,得出①~④公司顺时针送货,⑤~⑧公司逆时针送货为最佳方案。
第二方面我们根据车载重相对最大化思想使方案分为两个步骤,第一步先是使每个车次满载并运往同一个公司,第二步采用分批次运输的方案,即在第一批次运输中,我们使A材料有优先运输权;在第二批次运输中,我们使B材料有优先运输权;在第三批次中运输剩下所需的货物。
最后得出耗时最少、费用最少的方案。
耗时为40.5007小时,费用为4685.6元。
针对问题二,加上两个定理及其推论数学模型与问题一几乎相同,只是空载路径不同。
我们采取与问题一相同的算法,得出耗时最少,费用最少的方案。
耗时为26.063小时,费用为4374.4元。
针对问题三的第一小问,我们知道货车有4吨、6吨和8吨三种型号。
我们经过简单的论证,排除了4吨货车的使用。
题目没有规定车子不能变向,所以认为车辆可以掉头。
然后我们仍旧采取①~④公司顺时针送货,⑤~⑧公司逆时针送货的方案。
最后在满足公司需求量的条件下,采用不同吨位满载运输方案,此方案分为三个步骤:第一,使8吨车次满载并运往同一公司;第二,6吨位车次满载并运往同一公司;第三,剩下的货物若在1~6吨,则用6吨货车运输,若在7~8吨用8吨货车运输。
最后得出耗时最少、费用最省的方案。
耗时为19.6844小时,费用为4403.2。
一、问题重述某地区有8个公司(如图一编号①至⑧),某天某货运公司要派车将各公司所需的三种原材料A,B,C从某港口(编号⑨)分别运往各个公司。
路线是唯一的双向道路(如图1)。
货运公司现有一种载重 6吨的运输车,派车有固定成本20元/辆,从港口出车有固定成本为10元/车次(车辆每出动一次为一车次)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运输问题摘要本文主要研究的是货物运输的最短路径问题,利用图论中的Floyd算法、Kruskal算法,以及整数规划的方法建立相关问题的模型,通过matlab,lingo 编程求解出最终结果。
关于问题一,是一个两客户间最短路程的问题,因此本文利用Floyd算法对其进行分析。
考虑到计算的方便性,首先,我们将两客户之间的距离输入到网络权矩阵中;然后,逐步分析出两客户间的最短距离;最后,利用Matlab软件对其进行编程求解,运行得到结果:2-3-8-9-10总路程为85公里。
关于问题二,运输公司分别要对10个客户供货,必须访问每个客户,实际上是一个旅行商问题。
首先,不考虑送货员返回提货点的情形,本文利用最小生成树问题中的Kruskal算法,结合题中所给的邻接矩阵,很快可以得到回路的最短路线:1-5-7-6-3-4-8-9-10-2;然后利用问题一的Floyd算法编程,能求得从客户2到客户1(提货点)的最短路线是:2-1,路程为50公里。
即最短路线为:1-5-7-6-3-4-8-9-10-2-1。
但考虑到最小生成树法局限于顶点数较少的情形,不宜进一步推广,因此本文建立以路程最短为目标函数的整数规划模型;最后,利用LINGO软件对其进行编程求解,求解出的回路与Kruskal算法求出的回路一致。
关于问题三,是在每个客户所需固定货物量的情况下,使得行程之和最短。
这样只要找出两条尽可能短的回路,并保证每条线路客户总需求量在50个单位以内即可。
因此我们在问题二模型的基础上进行改进,以货车容量为限定条件,建立相应的规划模型并设计一个简单的寻路算法,对于模型求解出来的结果,本文利用Kruskal算法结合题中所给的邻接矩阵进行优化。
得到优化结果为:第一辆车:1-5-2-3-4-8-9-1,第二辆车:1-7-6-9-10-1,总路程为280公里。
关于问题四,在问题一的基础上我们首先用Matlab软件编程确定提货点到每个客户点间的最短路线,然后结合一些限定条件建立一个目标模型,设计一个较好的解决方案进行求解可得到一种很理想的运输方案。
根据matlab运行结果分析得出4条最优路线分别为:1-5-2,1-4-3-8,1-7-6,1-9-10。
最短总路线为245公里,最小总费用为645。
关键词: Floyd算法 Kruskal算法整数规划旅行商问题一、问题重述某运输公司为10个客户配送货物,假定提货点就在客户1所在的位置,从第i个客户到第j个客户的路线距离(单位公里)用下面矩阵中的i j=位置上的数表示(其中∞表示两个客户之间无直接的路线到i j(,1,,10)(,)达)。
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元/公里(不考虑空车返回的费用),请问如何安排车辆才能使得运输公司运货的总费用最省?二、问题分析关于问题一,是一个两客户间最短路程的问题,因此本文利用Floyd 算法对其进行分析。
考虑到计算的方便性,首先,我们将两客户之间的距离输入到网络权矩阵中;然后,逐步分析出两客户间的最短距离;最后,利用Matlab 软件对其进行编程求解。
关于问题二,运输公司分别要对10个客户供货,必须访问每个客户,实际上是寻找一条最短的行车路线。
首先,不考虑送货员返回提货点的情形,本文利用最小生成树问题中的Kruskal 算法,结合题中所给的邻接矩阵,很快可以得到回路的最短路线:21098436751v v v v v v v v v v →→→→→→→→→;然后利用问题一的Floyd 算法和程序,能求得从客户2到客户1(提货点)的最短路线是:12v v →,路程为50公里。
但考虑到最小生成树法局限于顶点数较少的情形,不宜进一步推广,因此本文又根据路程最短建立以路程最短为目标函数的整数规划模型;最后,利用LINGO 软件对其进行编程求解。
关于问题三,是在每个客户所需固定货物量的情况下,使得行程之和最短。
这样只要找出两条尽可能短的回路,并保证每条线路客户总需求量在50个单位以内即可。
因此我们在问题二模型的基础上进行改进,以货车容量为限定条件,建立相应的规划模型并设计一个简单的寻路算法,对于模型求解出来的结果,本文利用Kruskal 算法结合题中所给的邻接矩阵进行优化。
关于问题四,我们首先用Matlab 软件编程确定提货点到每个客户点间的最短路线,然后结合一些限定条件建立一个目标模型,设计一个较好的解决方案进行求解可得到一种很理想的运输方案。
三、模型假设1.假设客户级别平等;2.假设不考虑装卸车费用;3.假设货车不发生意外事故;4.假设运输过程中货物无损失;四、符号说明:ij v 不同的客户102.1;102.1 ==j i ;:ij l 从客户i v 到客户j v 的距离;个客户的距离个客户到第从第j i c ij :;个客户所需的货物量第j a j :;:z 总路程;五、模型的建立与求解5.1问题一模型的建立与求解5.1.1模型的建立问题一是要找出从客户2到客户10的最短路径,本文利用Floyd 算法对此文进行求解。
为计算方便,令网络的权矩阵为j i ij n n ij v v l d D 到为,)(⨯=的距离。
Floyd 算法基本步骤为:(1)输入权矩阵D D =)0(。
(2)计算),,3,2,1()()()(n k d D n n k ij k ==⨯其中 ],min[)1()1()1()(---+=k jk k ik k ij k ij d d d d(3)n n n ij n d D ⨯=)()()(中元素)(n ijd 就是i v 到j v 的最短路长。
5.1.2模型的求解在本文计算中10=n ,对Floyd 算法进行编程(程序见附录1),利用Matlab软件进行求解。
运行结果如下:a =0 40 55 40 25 55 30 55 50 7050 0 30 45 35 50 45 55 65 8555 30 0 15 55 30 50 25 35 5540 45 15 0 45 30 50 20 30 5025 15 45 45 0 35 10 30 40 5555 50 30 30 35 0 25 50 35 5530 25 50 50 10 25 0 30 40 6030 45 25 20 30 25 30 0 10 3020 40 30 40 35 15 25 45 0 2035 20 10 25 20 40 30 35 30 0path =1 5 4 4 5 7 7 5 9 91 2 3 3 5 6 5 3 3 34 2 3 4 8 6 7 8 8 81 3 3 4 5 6 8 8 8 81 2 2 4 5 7 7 8 8 107 2 3 4 7 6 7 4 9 9153****88109 5 3 4 5 9 7 8 9 91 10 10 4 7 6 7 8 9 101 2 3 3 5 3 5 3 9 10请输入起点2请输入终点10238910由运行结果可以得出运货员从客户2到客户10的最短路径是:总路程为85公里。
5.2问题二模型的建立与求解5.2.1模型的建立运输公司为这10个客户配送货物问题实际上是寻找一条最短的行车路线。
当不考虑送货员返回提货点的时候,本文利用最小生成树问题中的Kruskal 算法结合题中所给的邻接矩阵,很快可以得到无回路的最短路线。
Kruskal 算法基本步骤:每步从未选的边中选取边e ,使它与已选边不够成圈,且e 是未选边中的最小权边,知道选够1-n 条边为止。
利用最小生成树问题中的Kruskal 算法结合题中所给的邻接矩阵,很快可以得到以下最小生成树:这两棵生成树不同之处就在于从客户6到达客户8的路径不一样,而实际路程经过计算后是一样的,路线的总行程为175公里。
利用问题一的Floyd 算法和程序,能求得从客户2到客户1(提货点)的最短路线是12v v →,路程为50公里。
这样该回路,即最短的行车路线为:行车路线总行程为225公里。
以最小生成树法解决此问题速度快,结果较精确,但是只适合数目较少时,不适宜推广,因此本文又根据路程最短建立整数规划模型。
为了更好的防止子巡回的产生,根据哈米尔顿回路,须附加一个约束条件: 当访问客户i 后必须要有一个即将访问的确切客户;访问客户j 前必须要有一个刚刚访问过的确切客户。
依次设立约束条件。
5.2.2模型的求解利用Lingo 求解模型部分结果(附录2):Global optimal solution found.Objective value: 225.0000Objective bound: 225.0000Infeasibilities: 0.000000Extended solver steps: 0Total solver iterations: 86Variable Value Reduced CostX( 1, 5) 1.000000 25.00000X( 2, 1) 1.000000 50.00000X( 3, 4) 1.000000 15.00000X( 4, 8) 1.000000 20.00000X( 5, 7) 1.000000 10.00000X( 6, 3) 1.000000 30.00000X( 7, 6) 1.000000 25.00000X( 8, 9) 1.000000 10.00000X( 9, 10) 1.000000 20.00000X( 10, 2) 1.000000 20.00000由此可得,行程路线最短的回路:总路程为225公里。
5.3问题三模型的建立与求解5.3.1模型的建立用两辆容量为50单位的小货车运货,在每个客户所需固定货物量的情况下,要使得行程之和最短。