Lingo求解物流配送中心选址问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
优化与统计建模试验
专业
学号:
姓名:
2015年5月24日
摘要
在优化与系统建模试验这门课程当中,我们学习了Lingo,Cplex这两种优化软件以及SPSS,R语言这两种统计软件,并且简单了解了如何进行优化求解,学会了如何对数据进行简单分析。本文运用了Lingo软件,对物流配送中心选址问题进行求解;采用优化软件Cplex对运输问题进行了求解,最后是使用了SPSS软件,对我国城镇居民消费进行统计分析。
关键词:Lingo;Cplex; SPSS
一、Lingo求解物流配送中心选址问题
设有4个备选物流配送中心地址,6个工厂为其供货,6个客户需要产品,最多设置3个物流配送中心,工厂到物流配送中心的运输价格见表1,物流配送中心到客户的运输价格见表2,工厂的总生产能力见表3,物流配送中心的固定成本、单位管理成本,及容量见表4,客户的需求量见表5
表1 工厂到配送中心的运输价格
表2 配送中心到客户的运输价格
表3 工厂的总生产能力
表4 备选物流配送中心的固定成本,单位管理成本,容量
表5 客户的需求量
利用Lingo软件求解以上混合整数规划,编程如下:model:
sets:
factory/p1..p6/:p;
warhouse/w1..w4/:a,f,g;
customer/c1..c6/:d;
tr/tr1..tr4/:z;
link1(factory,warhouse):c,w;
link2(warhouse,customer):h,x;
endsets
data:
p=40000,50000,60000,70000,60000,40000;
a=70000,60000,70000,50000;
f=500000,300000,400000,400000;
g=3,2,5,4;
d=10000,20000,10000,20000,30000,10000;
c=6 5 4 2
2 3 4 9
6 8
7 5
7 4 2 3
4 2
5 1
3 4 1 7;
h=3 2 7 4 7 5
6 1 4 2 5 3
2 4 5
3 6 8
5 6 3 7 4 6;
enddata
min=@sum(link1(k,i):c(k,i)*w(k,i))+@sum(link2(i,j):h(i,j)*x(i,j))
+@sum(link1(k,i):g(i)*w(k,i))+@sum(warhouse(i):f(i)*z(i));
@for(factory(k):@sum(link1(k,i):w(k,i))<=p(k));
@for(warhouse(i):@sum(link2(i,j):x(i,j))=@sum(link1(k,i):w(k,i)));
@for(customer(j):@sum(link2(i,j):x(i,j))>=d(j));
@for(warhouse(i):@sum(link1(k,i):w(k,i))<=(a(i)*z(i)));
@sum(tr(i):z(i))<=3;
@for(tr(i):@bin(z));
end
直接按Lingo求解按钮,就可以得到以上问题的解,部分结果如下:
Global optimal solution found.
Objective value: 1480000.
Objective bound: 1480000. Infeasibilities: 0.000000
Extended solver steps: 7
Total solver iterations: 44
Model Class: MILP
Total variables: 52
Nonlinear variables: 0
Integer variables: 4
Total constraints: 22
Nonlinear constraints: 0
Total nonzeros: 180
Nonlinear nonzeros: 0
从以上结果中可以得到,选择2号和4号备选地址作为物流配送中心地址,最小物流成本为1480。
二、Cplex求解运输问题
某公司经销甲产品。它下设三个加工厂。每日的产量分别是:A1为7吨,A2为4吨,A3为9吨。该公司把这些产品分别运往四个销售点。各销售点每日销量为:B1为3吨,B2为6吨,B3为5吨,B4为6吨。已知从各工厂到各销售点的单位产品运价如下表 6 ,问该公司应如何调运产品,在满足各销点的需要量的前提下,使总运费最少。
表6 产销平衡表
目标函数:
Min Z =∑∑c ij x ij n
j=1
m i=1
约束条件:
x 11+x 12+x 13+x 14=7 x 21+x 22+x 23+x 24=4 x 31+x 32+x 33+x 34=9 x 11+x 21+x 31=3 x 12+x 22+x 23=6, x 13+x 23+x 33=5, x 14+x 24+x 34=56 x ij ≥0(i =1,2,3;j =1,2,3,4)
利用CPLEX 软件对上述问题进行求解,编程如下:
{string}SCities=...; {string}DCities=...;
float Supply[SCities]=...; float Demand[DCities]=...; assert
sum(o in SCities)Supply[o]==sum(d in DCities)Demand[d]; float Cost[SCities][DCities]=...; dvar float+ Trans[SCities][DCities]; minimize
sum(o in SCities, d in DCities) Cost[o][d]*Trans[o][d]; subject to{
forall(o in SCities) ctSupply:
sum(d in DCities)
Trans[o][d]==Supply[o];