跪求大神解答啊
各位大侠 帮帮忙啊 鄙人在lingo求解物流网络时遇到点问题代码中的0 1变量r和t不知为何始终显示为1
按照预期目标他们应该在工厂产量或者配送中心处理量不为0时候才能为1的,但是现在在配送中心WH2处理量为0时候r仍为1.
详情参见代码运行后结果:ln67,ln177~ln184.。。。。。。。。sets:
plants/p1..p5/: capacity1,fixfee1,t,prodfee,totalprod;!fixfee表示工厂p的固定费用,t为0 1变量表示工厂是否被选中,prodfee表示工厂生产单件产品费用,totalprod表示某工厂的总产量;
!以上是添加的工厂;
warehouses/wh1..wh5/: capacity2,fixfee2,r,holdfee,totalhold; !fixfee2表示配送中心的固定费用,r为0 1变量表示配送中心是否被选中,holdfee为处理费用,totalhold表示配送中心总的处理量即其流量;
customers/v1..v8/: demand;
links(plants,warehouses): cost1, volume1;!这个是工厂与配送中心的关系;
link(warehouses,customers): cost2, volume2;
endsets
@for(warehouses:@bin(r));
@for(plants:@bin(t));
!***********************************************************************
!工厂总生产量;
@for(plants(k):
@sum(warehouses(I): volume1(k,I))=totalprod);
!工厂产能约束;
@for(plants(k):
@sum(warehouses(I): volume1(k,I))<=capacity1(k));
!配送中心处理量;
@for(warehouses(I):
@sum(customers(J): volume2(I,J))=totalhold);
!配送中心容量约束;
@for(warehouses(I):
@sum(customers(J): volume2(I,J))<=capacity2(I));
!配送中心流量平衡;
@for(warehouses(I):
@sum(customers(J): volume2(I,J))=@sum(plants(k): volume1(k,I)));
!***********************************************************************
!需求约束;
@for(customers(J):
@sum(warehouses(I): volume2(I,J))=demand(J));
!########固定费用部分的0 1变量表示。#######;
@for(warehouses(I):
! r(I)>=(@sum(customers(J): volume2(I,J)) +1)/(@sum(customers(J): volume2(I,J)) +1));
r(I)=@if(totalhold #gt# 0, 1,0));
@for(plants(k):
! t(k)>=(@sum(warehouses(I): volume1(k,I)) +1)/(@sum(warehouses(I): volume1(k,I)) +1));
t(k)=@if(totalprod #gt# 0, 1,0));
!#######每个plant / warehouse的固定费用,如果palnt / warehouse的产量 /流量不为零,表示其被选中,则其相应的费用要被计入总成本#####;
!########固定费用部分的0 1变量表示。#######;
!目标函数;
min=@sum(links: cost1*volume1)+@sum(link:cost2*volume2)+@sum(warehouses:fixfee2*r)+@sum(warehouses:holdfee*totalhold)
+@sum(plants:fixfee1*t)+@sum(plants:prodfee*totalprod);
!数据部分;
data:
!工厂数据;
capacity1=160 90 110 80 100;
fixfee1=0 0 0 60 75;
prodfee=39 45 40 47 43;
!配送中心数据;
capacity2=95 100 80 130 95;
fixfee2=0 0 0 20 15;
holdfee=3 4 2 3 4;
!顾客数据;
demand=45 55 49 53 53 40 52 46;
!运输费用;
cost1=800 1000 700 500 750
900 860 1200 900 700
800 600 500 400 350
500 680 700 700 900
700 710 500 1000 550;
cost2=6 2 6 7 4 2 9 5
40 90 50 30 80 50 80 20
5 2 1 9 7 4 3 3
7 6 7 3 9 2 7 1
2 3 9 5 7 2 6 5;
enddata
end
页:
[1]