北交大lingo考试1转运问题等.docx
《北交大lingo考试1转运问题等.docx》由会员分享,可在线阅读,更多相关《北交大lingo考试1转运问题等.docx(12页珍藏版)》请在冰豆网上搜索。
北交大lingo考试1转运问题等
《物流软件》实验报告
实验编号:
学号:
序号:
姓名:
班级:
2015年10月
一,用lingo解决运输问题
(1)建立数学模型
设Cij为从工厂Ai销售到销售点Bj运费单价,Xij为从Ai到B觉得运输量,因此总运费为
第i个产地的运出量应小于等于该地的需求量
第j个销售地的运入量应等于该地的需求量
因此得到数学模型如下:
Min
;
.
Xij>=0,i=1,2,…,m,j=1,2,…,n.
(2)编写相关的模型如下
MODEL:
SETS:
warehouse/1,2,3,4/:
a;
customer/1,2,3,4,5/:
b;
ROUTES(WAREHOUSE,CUSTOMER):
c,x;
ENDSETS
DATA:
a=20,15,25,30;
b=25,20,15,20,10;
c=3,11,3,10,4,
1,9,2,8,3,
7,4,10,5,6,
5,8,2,6,2;
enddata
[OBJ]min=@sum(ROUTES:
c*x);
@FOR(WAREHOUSE(I):
[SUP]
@SUM(CUSTOMER(J):
X(I,J))<=a(i));
@for(customer(j):
[dem]
@sum(warehouse(i):
x(i,j))=b(j));
End
!
ROUTES为派生集合名,c,x为属性,c表示运费,x表决策的运量
!
customer为销售点集合名,1,2,3,4是元素;b为属性,表示需求量
!
warehouse为库存集合名,1,2,3,4是元素;a为属性,表示产量上限
(3)在lingo运行
Globaloptimalsolutionfound.
Objectivevalue:
Totalsolveriterations:
0
VariableValueReducedCost
A
(1)
A
(2)
A(3)
A(4)
B
(1)
B
(2)
B(3)
B(4)
B(5)
C(1,1)
C(1,2)
C(1,3)
C(1,4)
C(1,5)
C(2,1)
C(2,2)
C(2,3)
C(2,4)
C(2,5)
C(3,1)
C(3,2)
C(3,3)
C(3,4)
C(3,5)
C(4,1)
C(4,2)
C(4,3)
C(4,4)
C(4,5)
X(1,1)
X(1,2)
X(1,3)
X(1,4)
X(1,5)
X(2,1)
X(2,2)
X(2,3)
X(2,4)
X(2,5)
X(3,1)
X(3,2)
X(3,3)
X(3,4)
X(3,5)
X(4,1)
X(4,2)
X(4,3)
X(4,4)
X(4,5)
RowSlackorSurplusDualPrice
OBJ
SUP
(1)
SUP
(2)
SUP(3)
SUP(4)
DEM
(1)
DEM
(2)
DEM(3)
DEM(4)
DEM(5)
从上面结果只知,最少运费为300
二,用lingo解决转运问题
(1)建立数学模型
转运问题中有2个仓库,4个顾客,3个中间环节。
用ai表示第i个工厂的产量,bk表示第k个顾客的需求量,Cij1表示仓库到物流中心的运费单价,Cjk2表示物流中心到顾客的运费单价,Xij1表示仓库到物流中心的运量,Xij2表示物流中心到顾客的运量,则转运问题的数学表达式为
Min
+
.
,i=1,2;(运出量不大于储存量)
=
j=1,2,3;(运入量等于运出量)
k=1,2,3,4;(运入量应等于需求量)
X1>=0X2>=0
(2)用lingo编程
MODEL:
SETS:
WAREHOUSE/W1,W2/:
PRODUCE;
CENTER/P1,P2,P3/;
CUSTOMER/D1,D2,D3,D4/:
REQUIRE;
LINKI(WAREHOUSE,CENTER):
CI,XI;
LINKII(CENTER,CUSTOMER):
CII,XII;
ENDSETS
DATA:
PRODUCE=11,9;
REQUIRE=3,6,5,6;
CI=13,12,15,
11,13,22;
CII=3,11,3,10,
1,9,2,8,
7,4,10,5;
ENDDATA
[obj]min=@sum(linki:
ci*xi)+@sum(linkii:
cii*xii);
@for(WAREHOUSE(i):
[sup]
@sum(center(j):
xi(i,j))<=produce(i));
@for(center(j):
[mid]
@sum(WAREHOUSE(i):
xi(i,j))=@sum(customer(k):
xii(j,k)));
@for(customer(k):
[dem]
@sum(center(j):
xii(j,k))=require(k));
End
!
LINKI和LINKII都是派生集合名,CI,CII是属性,表对应的运费,XI,XII也是属性,表对应的决策运量。
!
CUSTOMER是顾客需求集合名,D1,D2,D3,D4是元素,require是属性
!
CENTER是物流中心集合名,P1,P2,P3是元素。
!
WAREHOUSE是仓库集合名W1,W2是元素,PRODUCE是属性
(3)运行结果如下
Globaloptimalsolutionfound.
Objectivevalue:
Totalsolveriterations:
0
VariableValueReducedCost
PRODUCE(W1)
PRODUCE(W2)
REQUIRE(D1)
REQUIRE(D2)
REQUIRE(D3)
REQUIRE(D4)
CI(W1,P1)
CI(W1,P2)
CI(W1,P3)
CI(W2,P1)
CI(W2,P2)
CI(W2,P3)
XI(W1,P1)
XI(W1,P2)
XI(W1,P3)
XI(W2,P1)
XI(W2,P2)
XI(W2,P3)
CII(P1,D1)
CII(P1,D2)
CII(P1,D3)
CII(P1,D4)
CII(P2,D1)
CII(P2,D2)
CII(P2,D3)
CII(P2,D4)
CII(P3,D1)
CII(P3,D2)
CII(P3,D3)
CII(P3,D4)
XII(P1,D1)
XII(P1,D2)
XII(P1,D3)
XII(P1,D4)
XII(P2,D1)
XII(P2,D2)
XII(P2,D3)
XII(P2,D4)
XII(P3,D1)
XII(P3,D2)
XII(P3,D3)
XII(P3,D4)
RowSlackorSurplusDualPrice
OBJ
SUP(W1)
SUP(W2)
MID(P1)
MID(P2)
MID(P3)
DEM(D1)
DEM(D2)
DEM(D3)
DEM(D4)
从结果可以看出,W1向P1,P2,P3分别运送0,5,6;
W2向P1,P2,P3分别运送9,0,0。
P1向D1,D2,D3,D4,分别配送3,0,5,1;
P2向D1,D2,D3,D4分别配送0,0,0,5;
P3向D1,D2,D3,D4分别配送0,6,0,0。
最少运费为347元/单位
(4)改变以上的扩建规模,经过分析,每个仓库最多可以扩建2单位。
有9种可能性
1,W1+1,W2+0(无解)
2,W1+1,W2+1(无解)
3,W1+1,W2+2(388)
4,W1+2,W2+0(无解)
5,W1+2,W2+1(387)
6,W1+2,W2+2(387)
7,W1+0,W2+0(无解)
8,W1+0,W2+1(无解)
9,W1+0,W2+2(无解)
应该选择方案5,即扩建W1两单位,扩建W2一单位。
相应程序如下
MODEL:
SETS:
WAREHOUSE/W1,W2/:
PRODUCE;
CENTER/P1,P2,P3/;
CUSTOMER/D1,D2,D3,D4/:
REQUIRE;
LINKI(WAREHOUSE,CENTER):
CI,XI;
LINKII(CENTER,CUSTOMER):
CII,XII;
ENDSETS
DATA:
PRODUCE=13,11;
REQUIRE=6,6,5,6;
CI=13,12,15,
11,13,22;
CII=3,11,3,10,
1,9,2,8,
7,4,10,5;
ENDDATA
[obj]min=@sum(linki:
ci*xi)+@sum(linkii:
cii*xii);
@for(WAREHOUSE(i):
[sup]
@sum(center(j):
xi(i,j))<=produce(i));
@for(center(j):
[mid]
@sum(WAREHOUSE(i):
xi(i,j))=@sum(customer(k):
xii(j,k)));
@for(customer(k):
[dem]
@sum(center(j):
xii(j,k))=require(k));
end
结果运行
Globaloptimalsolutionfound.
Objectivevalue:
Totalsolveriterations:
11
VariableValueReducedCost
PRODUCE(W1)
PRODUCE(W2)
REQUIRE(D1)
REQUIRE(D2)
REQUIRE(D3)
REQUIRE(D4)
CI(W1,P1)
CI(W1,P2)
CI(W1,P3)
CI(W2,P1)
CI(W2,P2)
CI(W2,P3)
XI(W1,P1)
XI(W1,P2)
XI(W1,P3)
XI(W2,P1)
XI(W2,P2)
XI(W2,P3)
CII(P1,D1)
CII(P1,D2)
CII(P1,D3)
CII(P1,D4)
CII(P2,D1)
CII(P2,D2)
CII(P2,D3)
CII(P2,D4)
CII(P3,D1)
CII(P3,D2)
CII(P3,D3)
CII(P3,D4)
XII(P1,D1)
XII(P1,D2)
XII(P1,D3)
XII(P1,D4)
XII(P2,D1)
XII(P2,D2)
XII(P2,D3)
XII(P2,D4)
XII(P3,D1)
XII(P3,D2)
XII(P3,D3)
XII(P3,D4)
RowSlackorSurplusDualPrice
OBJ
SUP(W1)
SUP(W2)
MID(P1)
MID(P2)
MID(P3)
DEM(D1)
DEM(D2)
DEM(D3)
DEM(D4)