两辆铁路平板车的装货问题的讨论教材.docx
- 文档编号:10672472
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:19
- 大小:75.27KB
两辆铁路平板车的装货问题的讨论教材.docx
《两辆铁路平板车的装货问题的讨论教材.docx》由会员分享,可在线阅读,更多相关《两辆铁路平板车的装货问题的讨论教材.docx(19页珍藏版)》请在冰豆网上搜索。
两辆铁路平板车的装货问题的讨论教材
两辆铁路平板车装货问题的讨论
摘要
本文针对两辆铁路平板车装运包装箱的问题,建立了铁路平板车装运包装箱的整数规划模型,通过LINGO软件方便快捷地求出了平板车不同种类包装箱装运件数一组最优解,同时使用Fortran编程求出所有符合条件的最优解。
本文鉴于题目中"当地货运的限制,对C5,C6,C7类的包装箱的总数的特别的限制:
这类箱子所占的空间(厚度)不能超过302.7cm"的存在的歧义,对该问题分两种情况进行讨论,分别建立模型,得出了不同情况下满足题设的最优方案。
第一种情况认为货运的限制针对于每辆平板车,即每辆车上C5,C6,C7类的包装箱的总厚度不超过302.7cm。
针对该情况,我们建立了两辆铁路平板车装运包装箱的整数规划模型一,并用LINGO求得最优解为两辆车装运C1,C2,…,C7类包装箱的数量分别为(6,2,6,0,0,0,4;1,5,2,5,1,1,2),剩余厚度为0cm。
考虑到LINGO求解整数规划只能求出一组最优解的局限性,我们进而用Fortran编程求出了所有符合条件的12组最优解。
因为不考虑两车先后次序,我们又用对结果去重,最终得到6组最优解(详见表一)。
另一种则认为货运的限制针对于一次货运,在本题中则为两辆车上C5,C6,C7类的包装箱的总厚度不超过302.7cm。
针对该情况,我们同样也建立了铁路平板车装运包装箱的整数规划模型二,并用LINGO求得最优解为两辆车装运C1,C2,…,C7类包装箱的数量分别为(3,2,9,1,3,0,0;5,5,0,5,0,3,0),剩余厚度为0.6cm。
同样由于LINGO软件的局限性,我们又用Fortran编程求得所有符合条件的54组最优解,经过去重后最终得到27组最优解(详见表二)。
关键词:
整数线性规划LINGO局限性Fortran
一、问题重述
有七种规格的包装箱要装到两辆铁路平板车上去。
包装箱的宽和高是一样的,但厚度(t,以厘米计)及重量(w,以公斤计)是不同的。
下表给出了每种包装箱的厚度、重量以及数量。
每辆平板车有1020cm的地方可用来装包装箱(像面包片那样),载重为40吨。
由于当地货运的限制,对C5,C6,C7类的包装箱的总数有一个特别的限制:
这类箱子所占的空间(厚度)不能超过302.7cm(分两辆车和一辆车两种情况讨论)。
试把包装箱装到平板车上去使得浪费的空间最小。
C1C2C3C4C5C6C7
t(cm)48.752.061.372.048.752.064.0
w(kg)200030001000500400020001000
件数8796648
二、问题分析
通过理解题目,本例属于整数型线性规划问题,由题目中给出的条件,我们可以算出货物的总重量为89吨,而两辆车的载重量为80吨,所以必然不能将货物全部装载完,也就是说必然会有货物剩余。
我们假设平板车上恰好只能放一排包装箱,且包装箱之间间隙忽略不计。
对于题目中限制条件C5,C6,C7类包装箱的总厚度不超过302.7cm,存在以下两种理解:
(1)一种是对于每辆车而言,车上C5,C6,C7类包装箱的总空间不超过302.7cm,
(2)另一种是对于两辆车而言,C5,C6,C7类包装箱的总空间不超过302.7cm。
由此,我们分别对这两种情况建立模型,并利用LINGO解出该整数型线性规划的最优解。
考虑到变量较多以及变量权值的特殊性(如C2、C6的长度相等,均为52.0cm),我们猜想对每种情况都可能存在多组最优解。
我们利用lingo软件解出一组最优解作为参考,再根据Fortran编译程序,讨论得出所有最优解。
三、模型假设
一、每辆平板车上恰好只能装载一排的包装箱,不存在并排或者叠加等情况
二、包装箱之间的间隙可忽略不计
三、两辆平板车完全相同,不考虑两车先后次序问题
四、不考虑一辆车上同一种包装箱组合方案的不同排列
五、在重量符合要求的情况下,不考虑两车重量差别大小对最优解的影响
四、符号系统
f
浪费的空间
Cij
第i种包装箱装在第j辆平板车上数目
ti
第i种包装箱的厚度
Wi
第i种包装箱的质量
ni
第i种包装箱的数目
五、模型建立与求解
对于题目中所说的对C5,C6,C7类包装箱的总数的特别限制,存在以下两种理解:
(1)一种是对于每辆车而言,车上C5,C6,C7类包装箱的总空间不超过302.7cm,
(2)另一种是对于两辆车而言,C5,C6,C7类包装箱的总空间不超过302.7cm。
对此我们分别建立了以下两种模型:
1、两辆铁路平板车装运包装箱的整数规划模型一
2、两辆铁路平板车装运包装箱的整数规划模型二
5.1模型一的建立与求解
5.1.1模型一的建立
假设装箱时每辆平板车上只能装载一排的包装箱,不存在并排或者叠加等情况,同时有包装箱之间的间隙可忽略不计。
此时,设第i种包装箱装在第j辆平板车上数目Cij,则包装箱在两辆车上所占据的长度:
即为两辆平板。
车的总长为2040cm,所以浪费的空间
。
由于两辆平板车均有各自的长度限制,所以在两辆平板车上的包装箱总厚度不应超过两辆平板车各自的长度限制。
问题中给出两辆车的容许长度均为1020cm,据此建立第一个约束条件
。
由于当地货运的限制,对C5,C6,C7类的包装箱的总数有一个特别的限制:
这类箱子所占的空间(厚度)不能超过302.7cm。
据此建立第二个约束条件
。
由于两辆平板车均为超出容许的载重,在平板车上的载重为,两辆平板车的载重均为40000Kg。
据此建立第三个约束条件
。
若包装箱全部装车,则所需空间为2749.5cm。
而两辆平板车的总长仅2040cm,可以发现包装箱不可以完全装到平板车上。
因此不应将所有包装箱都装到平板车上。
所以七种包装箱的数目在提供的包装箱件数ni的容许的范围内,并且包装箱在每辆平板车上的数目不为负值,所以可以建立第四个约束条件
。
根据以上分析可建立以下整数线性规划数学模型:
5.1.2模型一的求解
根据两辆铁路平板车装运包装箱的整数规划模型一,我们用LINGO求得最优解为两辆车装运C1,C2,…,C7类包装箱的数量分别为(6,2,6,0,0,0,4;1,5,2,5,1,1,2),剩余厚度为0cm。
考虑到LINGO求解整数规划只能求出一组最优解的局限性,我们进而用Fortran编程求出了所有符合条件的12组最优解。
因为不考虑两车先后次序,我们又用对结果去重,最终得到6组最优解(详见下表)。
表一:
序
号
1
2
5
2
5
0
1
2
6
2
6
0
0
0
4
2
1
5
2
5
1
1
2
6
2
6
0
0
0
4
3
0
5
2
5
2
1
2
6
2
6
0
0
0
4
4
2
4
2
5
0
2
2
6
2
6
0
0
0
4
5
1
4
2
5
1
2
2
6
2
6
0
0
0
4
6
2
3
2
5
0
3
2
6
2
6
0
0
0
4
5.2模型二的建立与求解
5.2.1模型二的建立
分析可知模型二与模型一的差别,在于模型一中的第二约束条件。
模型二中,两辆平板车上C5,C6,C7类箱子所占总空间的(厚度)不能超过302.7cm。
所以约束条件
。
可以建立如下整数线性规划模型:
5.2.2模型二的求解
根据铁路平板车装运包装箱的整数规划模型二,用LINGO求得最优解为两辆车装运C1,C2,…,C7类包装箱的数量分别为(3,2,9,1,3,0,0;5,5,0,5,0,3,0),剩余厚度为0.6cm。
同样由于LINGO软件的局限性,我们又用Fortran编程求得所有符合条件的54组最优解,经过去重后最终得到27组最优解(详见下表)。
表二:
序
号
1
6
2
9
1
0
0
0
2
5
0
5
3
3
0
2
4
7
4
3
0
0
0
4
0
5
3
3
3
0
3
7
3
5
3
0
0
0
1
4
4
3
3
3
0
4
5
2
9
1
1
0
0
3
5
0
5
2
3
0
5
3
7
4
3
1
0
0
5
0
5
3
2
3
0
6
6
3
5
3
1
0
0
2
4
4
3
2
3
0
7
4
2
9
1
2
0
0
4
5
0
5
1
3
0
8
2
7
4
3
2
0
0
6
0
5
3
1
3
0
9
5
3
5
3
2
0
0
3
4
4
3
1
3
0
10
3
2
9
1
3
0
0
5
5
0
5
0
3
0
11
4
3
5
3
3
0
0
4
4
4
3
0
3
0
12
8
1
0
6
3
0
0
0
6
9
0
0
3
0
13
4
6
4
3
0
1
0
4
1
5
3
3
2
0
14
7
2
5
3
0
1
0
1
5
4
3
3
2
0
15
5
7
0
5
0
1
0
3
0
9
1
3
2
0
16
5
1
9
1
1
1
0
3
6
0
5
2
2
0
17
3
6
4
3
1
1
0
5
1
5
3
2
2
0
18
6
2
5
3
1
1
0
2
5
4
3
2
2
0
19
4
7
0
5
1
1
0
4
0
9
1
2
2
0
20
4
1
9
1
2
1
0
4
6
0
5
1
2
0
21
2
6
4
3
2
1
0
6
1
5
3
1
2
0
22
5
2
5
3
2
1
0
3
5
4
3
1
2
0
23
3
7
0
5
2
1
0
5
0
9
1
1
2
0
24
3
1
9
1
3
1
0
5
6
0
5
0
2
0
25
1
6
4
3
3
1
0
7
1
5
3
0
2
0
26
4
2
5
3
3
1
0
4
5
4
3
0
2
0
27
8
0
0
6
3
1
0
0
7
9
0
0
2
0
六、模型分析
本文针对两辆铁路平板车装运包装箱的问题(视两辆平板车相同,不考虑方案不同仅仅是AB车车次相互交换的情况)装货建立整数规划模型,通过LINGO实现了平板车浪费空间最小的目标,得出了不同种类包装箱装运件数的最优解。
然而,用LINGO求得最优解(仅为多组解中一组),我们采用高级语言:
Fortran编译程序,从而得出其他解系(详见附件)。
七、模型推广
铁路平板车装运包装箱的整数规划模型在多重约束的线性排列组合问题上具有一定通用性。
八、结论
对于第一种理解即每辆车C5、C6、C7这类箱子所占的空间不超过302.7cm的情况,我们建立了模型一,得到6组最优解,两辆车浪费的总空间(厚度)最少为0cm。
对于第二种理解即两辆车C5、C6、C7这类箱子所占的总空间不超过302.7cm的情况,我们建立了模型二、模型三、模型四,最终得到27组最优解,两辆车浪费的总空间(厚度)最少为0.6cm。
九、参考文献
[1]马瑞民,FORTRAN90程序设计,哈尔滨工程大学出版社,2005。
附录1:
程序说明
1、pbc1.lg4平板车装货问题规划模型1Lingo求解的输出数据
2、pbc1.lgr平板车装货问题规划模型1Lingo求解源程序
3、pbc2.lg4平板车装货问题规划模型1Lingo求解源程序
4、pbc2.lgr平板车装货问题规划模型1Lingo求解的输出数据
5、pbcgh1.dat平板车装货问题规划模型1Fortran90求解的输出数据
6、pbcgh1.f90平板车装货问题规划模型1Fortran90求解的源程序
7、pbcgh2.dat平板车装货问题规划模型2Fortran90求解的输出数据
8、pbcgh2.f90平板车装货问题规划模型2Fortran90求解的源程序
附录2:
!
平板车装货问题规划模型1
programpbcgh1
implicitnone
integer,dimension(14):
:
c!
C为第一辆、第二辆平板车装各类包装箱数量的组合;
integer:
:
i1,i2,i3,i4,i5,i6,i7,j1,j2,j3,j4,j5,j6,j7,wi,wj,n
!
i1,i2,...,i7为分别为第一辆车装C1,C2,...,C7类包装箱的数量;
!
i1,i2,...,i7为分别为第一辆车装C1,C2,...,C7类包装箱的数量;
!
wi,wj分别为第一辆车、第二辆车上包装箱总重量;
!
n为最优解的个数;
real:
:
t1,t2,ti,tj,s
!
t1,t2分别为第一辆车、第二辆车上C5,C6,C7类的包装箱的总厚度;
!
ti,tj分别为第一辆车、第二辆车上所有包装箱的总厚度;
!
s为平板车上剩余厚度(空间剩余量);
open(1,file='pbcgh1.dat',status='old')!
文件pbcgh1为平板车装货问题模型1的数据文件
s=2040!
平板车剩余厚度
!
为优化算法从C7,C6,...,C1的顺序穷举
doi7=0,8
doi6=0,4
doi5=0,6
t1=48.7*i5+52.0*i6+64.0*i7
if(t1<=302.7)then!
第一辆车C5,C6,C7类的包装箱的总厚度不超过302.7cm;
doi4=0,6
doi3=0,9
doi2=0,7
doi1=0,8
ti=48.7*i1+52.0*i2+61.3*i3+72.0*i4+48.7*i5+52.0*i6+64.0*i7
if(ti<=1020)then!
第一辆车上所有包装箱的总厚度不超过车长1020cm;
wi=2000*i1+3000*i2+1000*i3+500*i4+4000*i5+2000*i6+1000*i7
if(wi<=40000)then!
第一辆车上包装箱总重量不超过40000Kg;
doj7=0,8-i7
doj6=0,4-i6
doj5=0,6-i5
t2=48.7*j5+52.0*j6+64.0*j7
if(t2<=302.7)then!
第二辆车C5,C6,C7类的包装箱的总厚度不超过302.7cm;
doj4=0,6-i4
doj3=0,9-i3
doj2=0,7-i2
doj1=0,8-i1
tj=48.7*j1+52.0*j2+61.3*j3+72.0*j4+48.7*j5+52.0*j6+64.0*j7
if(tj<=1020)then!
第二辆车上所有包装箱的总厚度不超过车长1020cm;
wj=2000*j1+3000*j2+1000*j3+500*j4+4000*j5+2000*j6+1000*j7
if(wj<=40000)then!
第二辆车上包装箱总重量不超过40000Kg;
!
如果该组合下平板车剩余厚度小于s,最优解的个数记为1,并将该组合下平板车剩余厚度记s;
!
将该最优解组合存放在数组c中,并将文件定位到文件初始点在第一行按顺序记录下n,c,wi,wj,ti,tj,t1,t2,s的值
if((2040-ti-tj)
n=1
s=2040-ti-tj
c=(/i1,i2,i3,i4,i5,i6,i7,j1,j2,j3,j4,j5,j6,j7/)
rewind
(1)
write(1,'(1X,17I6,5F7.1)')n,c,wi,wj,ti,tj,t1,t2,s
!
如果该组合下平板车剩余厚度等于s,最优解的个数n加1;
!
将该最优解组合存放在数组c中,并将文件定位到文件初始点在第n行按顺序记录下n,c,wi,wj,ti,tj,t1,t2,s的值
elseif((2040-ti-tj)==s)then
n=n+1
c=(/i1,i2,i3,i4,i5,i6,i7,j1,j2,j3,j4,j5,j6,j7/)write(1,'(1X,17I6,5F7.1)')n,c,wi,wj,ti,tj,t1,t2,s
endif
endif
endif
enddo
enddo
enddo
enddo
endif
enddo
enddo
enddo
endif
endif
enddo
enddo
enddo
enddo
endif
enddo
enddo
enddo
close
(1)
endprogrampbcgh1
附录3:
平板车装货问题规划模型2求解的Fortran程序
!
平板车装货问题规划模型2
programpbcgh2
implicitnone
integer,dimension(14):
:
c!
C为第一辆、第二辆平板车装各类包装箱数量的组合;
integer:
:
wi,wj,i1,i2,i3,i4,i5,i6,i7,j1,j2,j3,j4,j5,j6,j7,n
!
i1,i2,...,i7为分别为第一辆车装C1,C2,...,C7类包装箱的数量;
!
i1,i2,...,i7为分别为第一辆车装C1,C2,...,C7类包装箱的数量;
!
wi,wj分别为第一辆车、第二辆车上包装箱总重量;
!
n为最优解的个数;
real:
:
ti,tj,t1,t2,t12,s
!
t1,t2分别为第一辆车、第二辆车上C5,C6,C7类的包装箱的总厚度;
!
ti,tj分别为第一辆车、第二辆车上所有包装箱的总厚度;
!
s为平板车上剩余厚度(空间剩余量);
open(1,file='pbcgh2.dat',status='old')!
文件pbcgh2为平板车装货问题模型1的数据文件
s=2040!
平板车剩余厚度
!
为优化算法从C7,C6,...,C1的顺序穷举
doi7=0,8
doi6=0,4
doi5=0,6
t1=48.7*i5+52.0*i6+64.0*i7!
第一辆车C5,C6,C7类的包装箱的总厚度不超过302.7cm;
doi4=0,6
doi3=0,9
doi2=0,7
doi1=0,8
ti=48.7*i1+52.0*i2+61.3*i3+72.0*i4+48.7*i5+52.0*i6+64.0*i7
if(ti<=1020)then!
第一辆车上所有包装箱的总厚度不超过车长1020cm;
wi=2000*i1+3000*i2+1000*i3+500*i4+4000*i5+2000*i6+1000*i7
if(wi<=40000)then!
第一辆车上包装箱总重量不超过40000Kg;
doj7=0,8-i7
doj6=0,4-i6
doj5=0,6-i5
t2=48.7*j5+52.0*j6+64.0*j7
t12=t1+t2
if(t12<=320.7)then!
两辆车上C5,C6,C7类的包装箱的总厚度不超过302.7cm;
doj4=0,6-i4
doj3=0,9-i3
doj2=0,7-i2
doj1=0,8-i1
tj=48.7*j1+52.0*j2+61.3*j3+72.0*j4+48.7*j5+52.0*j6+64.0*j7
if(tj<=1020)then!
第二辆车上所有包装箱的总厚度不超过车长1020cm;
wj=2000*j1+3000*j2+1000*j3+500*j4+4000*j5+2000*j6+1000*j7
if(wj<=40000)then!
第二辆车上包装箱总重量不超过40000Kg;
!
如果该组合下平板车剩余厚度小于s,最优解的个数记为1,并将该组合下平板车剩余厚度记s;
!
将该最优解组合存放在数组c中,并将文件定位到文件初始点在第一行按顺序记录下n,c,wi,wj,ti,tj,t1,t2,t12,s的值
if((2040-ti-tj)
n=1
s=2040-ti-tj
c=(/i1,i2,i3,i4,i5,i6,i7,j1,j2,j3,j4,j5,j6,j7/)
rewind
(1)
write(1,'(1X,17I6,6F7.1)')n,c,wi,wj,ti,tj,t1,t2,t12,s
!
如果该组合下平板车剩余厚度等于s,最优解的个数n加1;
!
将该最优解组合存放在数组c中,并将文件定位到文件初始点在第n行按顺序记录下n,c,wi,wj,ti,tj,t1,t2,t12,s的值
elseif((2040-ti-tj)==s)then
n=n+1
c=(/i1,i2,i3,i4,i5,i6,i7,j1,j2,j3,j4,j5,j6,j7/)
write(1,'(1X,17I6,6F7.1)')n,c,wi,wj,ti,tj,t1,t2,t12,s
endif
endif
endif
enddo
enddo
enddo
enddo
endif
enddo
enddo
enddo
endif
endif
enddo
enddo
enddo
enddo
enddo
enddo
enddo
close
(1)
endprogrampbcgh2
附录3:
平板车装货问题规划模型1Lingo求解的输出数据:
Globaloptimalsolutionfound.
Objectivevalue:
-0.1705303E-12
Objectivebound:
0.000000
Infeasibilities:
0.1154632E-12
Extendedsolversteps:
231161
Totalsolveriterations:
380690
ModelTitle:
两辆铁路平板车的装货问题
VariableValueReducedCost
A16.000000-48.70000
A22.000000-52.00000
A36.000000-61.30000
A40.000000-72.00000
A50.000000-48.70000
A60.000000-52.00000
A7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 铁路 平板车 装货 问题 讨论 教材