数学建模运输优化模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
. . . . 2012年数学建模培训第二次测试论文
题目运输优化模型
姓名马鹏
系(院)数学系
专业信息与计算科学、应用数学
2012 年8 月27 日
运输优化模型
[摘要]在社会的经济生产活动中,产地(厂家)与客户都会想方设法合理调拨资源、降低运输费用,实现利益最大化,完成资源优化配置。
本文在运输费单价恒定,各产地发量一定,各客户的需求量也一定的条件下,努力解决多个特定目标实现问题。
力求最优的运输方案。
在确定问题为不平衡的运输问题时,先虚设一个产地,将问题装华为平衡运输问题,将问题转化为目标规划问题,按照目标规划问题的建模思想逐步建立模型。
本文的主要特点在于,将不平衡的线性规划问题合理地转化为目标规划问题,在求解时充分利用LINGO软件求解。
关键词:lingo 目标规划线性规划运输优化问题运费最少
一.问题重述
运输功能是整个现代物流七大基本功能之一,占有很重要的地位,运输成本在整个物流系统中所占的比重也很大,运输成本的有效控制对物流总成本的节约具有举足轻重的作用。
通过物流流程的改善能降低物流成本,能给企业带来难以预料的效益,影响运输成本的因素是多样化、综合性的,这就要求对运输成本的分析要采用系统的观点,进行综合分析。
由于影响物流运输成本的因素很多,控制措施既涉及运输环节本身,也涉及供应链的整个物流流程。
要想降低物流运输成本,就必须运用系统的观点和方法,进行综合分析,发现问题,解决问题,使物流运输活动更加优化、物流运输成本更加合理化。
本文已知把一种产品从产地一、二运到客户1、2、3处,产地的发量、客户的收量及各产地到各客户的运输单价已知。
本文要解决问题是:客户1为重要部门,必须全部满足需求量;满足客户2、3至少75%的的需求量;使总运费尽量少;从产地2到客户1的运量至少有1000个单位。
二.问题分析
根据题目中所给出的条件知:有现成的两个产地和需要产品的三个客户。
且两个产地的产量不同,运送到各个客户的运费单价不同。
三个客户所需的货物量不同。
而三个客户对两个产地的总需求为2000+1500+5000=8500(单位),而两个产地总的发量为3000+4000=7000(单位),故需求量大于发量,属于需求量和发量不平衡问题。
且提出四个不同的目标。
故使用目标规划实现建模。
首先设置目标约束的优先级,建立目标约束按目标的优先级,写出相应的目标规划模型。
再接着使用LINGO软件实现模型的求解,并作出相应结果的分析。
三.模型假设
(1) 产品的运输过程不存在任何的导致产品发量和产品收量不相符的问题。
产
品安全送到客户处。
即有:产品的发量就等于产品的收量。
(2) 产品的运输单价始终恒定,不存在中途因为某种原因而导致产品的单价变
化问题。
即运费只取决于所运输的产品的数量。
(3) 产地的生产量(即发量)有极限值,不可能超出本产地正常的生产范围。
(4) 客户需求量在一定的范围内或或是特定的具体值。
四.符号说明
基于题目及所要建立的模型所要用到的变量及参数,作如下符号说明: (1)产地用i A (2,1i =其中)表示,表示第产地i ;)2,1(=i a i 表示其发量; (2)客户用j B (其中j=1,2,3)表示,表示客户j;)3,2,1(=j b j 表示其需求量; (3)用ij c 1,2,3j 2;,1i ==其中表示产地i A (2,1i =其中)往客户j B (其中j=1,2,3)处运输产品的单位费用; (4)用z 表示总的运输费用;
(5)用ij x 1,2,3j 2;,1i ==其中表示产地i A (2,1i =其中)运往客户j B (其中j=1,2,3)处的物品数量;
五.模型建立
由发量和需求量可知,发量小于需求量,故我们需要添加一个虚拟产地(产地3),使各产地的总产量之和等于各客户的需求量之和。
使问题为平衡的运输问题。
且令虚拟产地到各客户的运费单价都为0,如表1所示:
表1
至此,基于问题的分析与假设,将问题转化为目标规划问题。
故分以下步骤进行模型的建立。
5.1设置目标约束的优先级
P1:客户1为重要部门,需求量必须全部满足; P2:满足其他两个客户至少75%的需要量; P3:使运费尽量少;
P4:从产地2到客户1的运量至少有1000个单位。
5.2建立目标约束
:1-d 达不到客户1的需求量 :1+d 超过客户1的需求量 :2-d 达不到客户2的需求量 :2+d 超过客户2的需求量 +3d :超过客户3的需求量 的需求量达不到客户3:3-d -4d :达不到33000的运输费用 :4+d 超过33000的运输费用
:5-d 产地二达不到客户1的需求量 :5+d 超过客户1的需求量 5.3求最少费用 LINGO 程序: model : sets :
supply/1,2,3/:a; demand/1,2,3/:b; link(supply,demand):c,x; endsets min =@sum (link(i,j): c(i,j)*x(i,j);); @for (demand(j): @sum (supply(i): x(i,j))=b(j);); @for (supply(i): @sum (demand(j): x(i,j))<=a(i);); data :
a=3000,4000,1500; b=2000,1500,5000; c=10,4,12
8,10,3
0,0,0;
enddata
End
LINGO求解结果:
Global optimal solution found.
Objective value: 33000.00 Infeasibilities: 0.000000
Total solver iterations: 6
Variable Value Reduced Cost
A( 1) 3000.000 0.000000
A( 2) 4000.000 0.000000
A( 3) 1500.000 0.000000
B( 1) 2000.000 0.000000
B( 2) 1500.000 0.000000
B( 3) 5000.000 0.000000
C( 1, 1) 10.00000 0.000000
C( 1, 2) 4.000000 0.000000
C( 2, 1) 8.000000 0.000000 C( 2, 2) 10.00000 0.000000 C( 2, 3) 3.000000 0.000000 C( 3, 1) 0.000000 0.000000 C( 3, 2) 0.000000 0.000000 C( 3, 3) 0.000000 0.000000 X( 1, 1) 1500.000 0.000000 X( 1, 2) 1500.000 0.000000 X( 1, 3) 0.000000 2.000000 X( 2, 1) 0.000000 5.000000 X( 2, 2) 0.000000 13.00000 X( 2, 3) 4000.000 0.000000 X( 3, 1) 500.0000 0.000000 X( 3, 2) 0.000000 6.000000 X( 3, 3) 1000.000 0.000000
Row Slack or Surplus Dual Price
1 33000.00 -1.000000
2 0.000000 -10.00000
3 0.000000 -4.000000
4 0.000000 -10.00000
6 0.000000 7.000000
7 0.000000 10.00000
我们在将数据整理在一个表格中,如表2所示:
表2
由上表可看出,最少的运输费用为33000,但第一个目标就不满足,用户1的需求的不到满足。
5.4按目标的优先级,写出相应的目标规划模型
客户1为重要部门,需求量必须全部满足;则目标可表示为:
}
{⎩⎨⎧=++++-
+-+2000
min 11221111d d x x d d 满足其他两个客户至少75%的需要量;则目标可表示为:
}{⎩
⎨⎧=-++-
-
+2222212min 75
.0*1500d d d x x }{⎩⎨⎧=-++-
+-75
.0*5000min 3323123d d x x d 从产地2到客户1的运量至少有1000个单位;则目标可表示为:
}
{⎩⎨⎧=-++-
+-
1000
min 55215d d x d 由最少费用,可建立目标约束为:
}
{⎪⎩
⎪⎨⎧=-+∑∑==-++
213
1
44433000min i j ij ij d d x c d 故模型建立为:
min z=-+---++++544332
211)(d p d p d d p d p
4000
3000232221131211<=++<=++x x x x x x
%
75*5000%75*15002
2
2313112212=+++=-+++-
+-d d x x d d x x
3000*3
1
3321
=-+∑∑=+-=j ij ij
i d d x c
100044
21=-++-d d x
六.模型求解
使用LINDO 软件将模型求解如下: LINGO 程序: model : sets :
Level/1,2,3,4/:P,z,Goal;
s_Con_Nun/1,2,3,4,5/:dplus,dminus; supply/1,2/:a; customer/1,2,3/:b;
Routes(supply,customer):c,x;
endsets
data:
p=?,?,?,?;
Goal=?,?,?,0;
a=3000,4000;
b=2000,1500,5000;
c=14,4,12
8,10,3;
enddata
min=@sum(Level:P*z);
z(1)=dminus(1)
z(2)= dminus(2)+dminus(3);
z(3)=dplus(4);
z(4)=dminus(5);
@for(supply(i):
@sum(customer(j):x(i,j))<=a(i););
x(1,1)+x(2,1)+dminus(1)-dplus(1)=2000;
@for(customer(j):
@sum(supply(i):x(i,2))+dminus(2)-dplus(2)=1500*0.75;
@sum(supply(i):x(i,3))+dminus(3)-dplus(3)=1500*0.75;
@sum(Routes:c*x)+dminus(4)-dplus(4)=33000;
x(2,1)+dminus(5)-dplus(5)=1000;
@for(Level(i)|i#lt#@size(Level):
@bnd(0,z(i),Goal(i)););
End
LINGO求解结果:
No feasible solution found.
Infeasibilities: 1500.000
Total solver iterations: 5
Variable Value Reduced Cost
P( 1) 0.1000000+308 0.000000
P( 2) 0.1000000+308 0.000000
P( 3) 0.1000000+308 0.000000
P( 4) 0.1000000+308 0.000000
Z( 1) 0.000000 0.000000
Z( 2) 0.000000 0.000000
Z( 3) 13000.00 0.000000
Z( 4) 500.0000 0.000000
GOAL( 1) 0.1000000+308
0.000000
GOAL( 2) 0.1000000+308 0.000000
GOAL( 3) 0.1000000+308 0.000000
GOAL( 4) 0.000000 0.000000
DPLUS( 1) 0.000000 0.000000
DPLUS( 2) 375.0000 0.000000
DPLUS( 3) 3875.000 0.000000
DPLUS( 4) 13000.00 0.000000
DPLUS( 5) 0.000000 0.1000000+308
DMINUS( 1) 0.000000 0.1000000+308
DMINUS( 2) 0.000000 0.1000000+308
DMINUS( 3) 0.000000 0.1000000+308
DMINUS( 4) 0.000000 0.1000000+308
DMINUS( 5) 500.0000 0.000000
A( 1) 3000.000 0.000000
A( 2) 4000.000 0.000000
B( 1) 2000.000 0.000000
B( 2) 1500.000 0.000000
B( 3) 5000.000 0.000000
C( 1, 1) 14.00000 0.000000
C( 1, 2) 4.000000 0.000000
C( 1, 3) 12.00000 0.000000
C( 2, 1) 8.000000 0.000000
C( 2, 2) 10.00000 0.000000
C( 2, 3) 3.000000 0.000000
X( 1, 1) 1500.000 0.000000
X( 1, 2) 1500.000 0.000000
X( 1, 3) 0.000000 0.2000000+308
X( 2, 1) 500.0000 -0.1146654+297
X( 2, 2) 0.000000 0.1300000+309
X( 2, 3) 5000.000 0.000000
Row Slack or Surplus Dual Price
1 3000.000 -1.000000
2 0.000000 -0.1000000+308
3 0.000000 -0.1000000+308
4 0.000000 -0.1000000+308
5 0.000000 -0.1000000+308
6 0.000000 Infinity
7 -1500.000 Infinity
8 0.000000 -Infinity
9 0.000000 -Infinity
10 0.000000 -Infinity
11 0.000000 0.000000
12 0.000000 0.000000
13 0.000000 0.000000
14 0.000000 0.000000
15 0.000000 0.000000
16 0.000000 0.000000
17 0.000000 0.000000
18 0.000000 0.000000
19 0.000000
-0.1000000+308
20 0.000000 0.000000 21 0.000000 0.000000 22
0.000000
0.1000000+308
23 0.000000 0.000000 即:150011=x ,150012=x ,013=x ,50021=x ,022=x ,500023=x 。
七.模型分析
产地1A 运往客户1B 的货物量为1500个单位;产地1A 运往客户2B 的货物量为1500个单位;产地1A 不往客户3B 运输货物;产地2A 运往客户1B 的货物量为500个单位;产地2A 不往客户2B 运输货物。
另一方面,由于收到生产能力的限制产地2A 运往客户3B 的货物量只能为4000个单位。
即:150011=x ,150012=x ,
013=x ,50021=x ,022=x ,400023=x 。
此时,最大限度地接近目标,使得最
费用最小,为33000。
八.模型评价
优点:
○
1 将线性规划与目标规划联系,能体现二者的异同; ○
2采用的数学模型有成熟的理论基础,可信度高; ○
3建立的数学模型都有相应的专用软件支持,算法简便,编程实现简单;
○4所得数据合理,可靠性很高,;
○5本文建立的模型能与实际紧密联系,结合实际情况对所提出的问题进行模拟,使模型更贴近实际,通用性、推广型更强。
缺点:
所建的模型只考虑具体运输的运输方案,而忽略了单价等对运输的影响,具有一定的局限性
参考文献:
[1]张干宗,线性规划[M],北京:武汉大学出版社,2004。
[2]朱洪文,宋立,王维国,应用统计[M],北京:高等教育出版社,2004。