数学建模--运输问题
数学建模之运输问题

数学建模之运输问题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 最低需求(万台) 电视机调拨方案。
数学建模 运输问题与Lingo求解

运输问题与Lingo求解
Min=12*x11+13*x12+10x13+11x14+10x21+12x22 +14x23+10x24+14x31+11x32+15x33+12x34; x11+x12+x13+x14<=7; x21+x22+x23+x24<=9; x31+x32+x33+x34<=7; x11+x21+x31>=3; x12+x22+x32>=5; x13+x23+x33>=7; x14+x24+x34>=8; END
数学 模型 部分
集合 定义 部分
运输问题与Lingo求解
sets: Supplier/@ole(‘D:\运输问题.xls','Supplier')/:Supply; Demander/@ole(‘D:\运输问题.xls','Demander')/:Demand; Matrix(Supplier,Demander):PriceMatrix,TransportationMatrix; endsets data: PriceMatrix=@ole(‘D:\运输问题.xls'); Supply=@ole(‘D:\运输问题.xls'); Demand=@ole(‘D:\运输问题.xls'); @OLE('D:\运输问题.xls','TransportationMatrix')=TransportationMatrix; enddata min=@sum(Matrix:PriceMatrix*TransportationMatrix); @for(Supplier(i): @sum(Demander(j):TransportationMatrix(i,j))=Supply(i) ); @for(Demander(j): @sum(Supplier(i):TransportationMatrix(i,j))=Demand(j) );
数学建模中优化模型之运输问题讲解

6
5 3
9
10
6
v1=10
v2=6
v3=4
单位费用变化:5-(4+(-4)=5
4 3
u1=-4
7 u2=-2
6
13 u3=6
v4=0
对偶变量法(10)
1
2
3
6
7
5
1
14
5
5
8
4
2
2
8
13
6
5 3
9
10
6
v1=10
v2=6
v3=4
单位费用变化:3-(0+(-4)=7
4
3 u1=-4
7
7 u2=-2
6
6
13 u3=6
v4=0
对偶变量法(6)
1
2
3
6
7
5
1
14
8
4
2
2
8
13
6
5 3
9
10
6
v1=10
v2=6
u2+v1=c21 v1=10
v3=4
4 3
u1
7 u2=-2
6
13 u3=6
v4=0
对偶变量法(7)
1
2
3
6
7
5
1
14
8
4
2
2
8
13
6
5 3
9
10
6
v1=10
v2=6
u1+v1=c11 u1=-4
运输问题
运输问题的表示 网络图、线性规划模型、运输表 初始基础可行解 西北角法、最小元素法 求解方法 闭回路法、对偶变量法 特殊形式运输问题 不平衡问题、转运问题
数学建模--运输问题

运输问题摘要本文主要研究的是货物运输的最短路径问题,利用图论中的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软件编程确定提货点到每个客户点间的最短路线,然后结合一些限定条件建立一个目标模型,设计一个较好的解决方案进行求解可得到一种很理想的运输方案。
数学建模中优化模型之运输问题详解

2
3
6
7
5
1 14
5
5
8
4
2
2 8
13
6
5 3
9
10
6
22
13
12
单位费用变化:5+8-6-2=5
4 3
14
7 27
6 19
13
13
闭回路法(3)
1
2
3
4
6
7
5
3
1 14
5
5
7 14
8
4
2
7
2 8
13
6
27
5 3
9
10
6
19
6
13
22
13
12
13
单位费用变化:3+10+8-6-2-6=7
闭回路法(4)
1
2
3
6
7
5
1
14
5
5
8
4
2
2
8
13
6
5 3
9
10
6
22
13
12
单位费用变化:7+10-6-2=9
4
3
7 14
7
9 27
6
19 13
13
闭回路法(5)
1
2
3
4
6
7
5
3
1
14
5
5
7 14
8
4
2
7
2 8
13
6
9 27
5
9
3
-11
10
6
6 19
13
22
13
运筹学 运输问题例题数学建模

运筹学运输问题例题数学建模运筹学是一门研究如何在有限的资源和多种约束条件下,寻求最优或近似最优解的科学。
运输问题是运筹学中的一个重要分支,它主要研究如何把某种商品从若干个产地运至若干个销地,使总的运费或总的运输时间最小。
本文将介绍运输问题的数学建模方法,以及用表上作业法求解运输问题的步骤和技巧。
同时,本文还将给出几个典型的运输问题的例题,帮助读者理解和掌握运输问题的求解过程。
运输问题的数学建模运输问题可以用以下的数学模型来描述:设有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 ,也就是说总的供应量小于总的需求量。
这种情况下,可以增加一个虚拟的产地,其产量等于供需差额,且其与各个销地的单位运费为零。
这样也可以把问题转化为一个产销平衡的问题。
弹性需求:即某些销地对商品的需求量不是固定不变的,而是随着商品价格或其他因素而变化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运输问题摘要本文主要研究的是货物运输的最短路径问题,利用图论中的Floyd算法、Kruskal 算法,以及整数规划的方法建立相关问题的模型,通过matlab,lingo编程求解出最终结果。
关于问题一,是一个两客户间最短路程的问题,因此本文利用Floyd算法对其进行分析。
考虑到计算的方便性,首先,我们将两客户之间的距离输入到网络权矩阵中;然后,逐步分析出两客户间的最短距离;最后,利用Matlab软件对其进行编程求解,运行得到结果:2-3-8-9-10总路程为85公里。
关于问题二,运输公司分别要对10个客户供货,必须访问每个客户,实际上是一个旅行商问题。
首先,不考虑送货员返回提货点的情形,本文利用最小生成树问题中的Kruskal算法,结合题中所给的邻接矩阵,很快可以得到回路的最短路线:-9-10-2;然后利用问题一的Floyd算法编程,能求得从客户2到客户1(提货点)的最短路线是:2-1,路程为50公里。
即最短路线为:-9-10-2-1。
但考虑到最小生成树法局限于顶点数较少的情形,不宜进一步推广,因此本文建立以路程最短为目标函数的整数规划模型;最后,利用LINGO软件对其进行编程求解,求解出的回路与Kruskal算法求出的回路一致。
关于问题三,是在每个客户所需固定货物量的情况下,使得行程之和最短。
这样只要找出两条尽可能短的回路,并保证每条线路客户总需求量在50个单位以内即可。
因此我们在问题二模型的基础上进行改进,以货车容量为限定条件,建立相应的规划模型并设计一个简单的寻路算法,对于模型求解出来的结果,本文利用Kruskal算法结合题中所给的邻接矩阵进行优化。
得到优化结果为:第一辆车:-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(,1,,10)i j=位置上的数表示(其中∞表示两个客户之间无直接的路线到达)。
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 总路程;五、模型的建立与求解问题一模型的建立与求解问题一是要找出从客户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 的最短路长。
在本文计算中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公里。
问题二模型的建立与求解运输公司为这10个客户配送货物问题实际上是寻找一条最短的行车路线。
当不考虑送货员返回提货点的时候,本文利用最小生成树问题中的Kruskal 算法结合题中所给的邻接矩阵,很快可以得到无回路的最短路线。
Kruskal 算法基本步骤:每步从未选的边中选取边e ,使它与已选边不够成圈,且e 是未选边中的最小权边,知道选够1-n 条边为止。
利用最小生成树问题中的Kruskal 算法结合题中所给的邻接矩阵,很快可以得到以下最小生成树:这两棵生成树不同之处就在于从客户6到达客户8的路径不一样,而实际路程经过计算后是一样的,路线的总行程为175公里。
利用问题一的Floyd 算法和程序,能求得从客户2到客户1(提货点)的最短路线是12v v →,路程为50公里。
这样该回路,即最短的行车路线为:行车路线总行程为225公里。
以最小生成树法解决此问题速度快,结果较精确,但是只适合数目较少时,不适宜推广,因此本文又根据路程最短建立整数规划模型。
为了更好的防止子巡回的产生,根据哈米尔顿回路,须附加一个约束条件:当访问客户i 后必须要有一个即将访问的确切客户;访问客户j 前必须要有一个刚刚访问过的确切客户。
依次设立约束条件。
利用Lingo 求解模型部分结果(附录2):Global optimal solution found.Objective value:Objective bound:Infeasibilities:Extended solver steps: 0Total solver iterations: 86Variable Value Reduced CostX( 1, 5)X( 2, 1)X( 3, 4)X( 4, 8)X( 5, 7)X( 6, 3)X( 7, 6)X( 8, 9)X( 9, 10)X( 10, 2)由此可得,行程路线最短的回路:总路程为225公里。
问题三模型的建立与求解用两辆容量为50单位的小货车运货,在每个客户所需固定货物量的情况下,要使得行程之和最短。
这样只要找出两条尽可能短的回路,并保证每条线路客户总需求量在50个单位以内。
此问与问题二有相似之处都要考虑回到提货点的情形,因此本文在模型2的基础上进行改进, 重新建立相应的整数线性规划模型。
目标函数:101011min ij ij i j z c x ===⨯∑∑利用Lingo 求解模型部分结果(附录3):Global optimal solution found.Objective value:Objective bound:Infeasibilities:Extended solver steps: 0Total solver iterations: 224Variable Value Reduced CostX( 1, 5)X( 2, 3)X( 3, 6)X( 5, 2)X( 6, 7)X( 7, 1)Global optimal solution found.Objective value:Objective bound:Infeasibilities:Extended solver steps: 0Total solver iterations: 224Variable Value Reduced CostX( 1, 4)X( 4, 8)X( 5, 1)X( 8, 9)X( 9, 10)X( 10, 5)由此可得,两辆车的行车路线及路程:第一辆车:1763251v v v v v v v →→→→→→,包含的客户有2,3,6,7,运货总量为44,路程为155公里。