sets:
dmc/1..92/:u;!直销中心i;
dc/1..92/:y;!配送中心j;
tlink(dmc,dc):x,d;
endsets
min=@sum(dmc(i)|i#LE#20:@sum(dc(j):d(i,j)*x(i,j)*u(i)))*2*60+300000*@sum(dc(j):y(j));
@for(dmc(i)|i#LE#20:@sum(dc(j):x(i,j))=1);
@for(dc(j):@for(dmc(i)|i#LE#20:x(i,j)<=y(j));
@for(dc(j):x(j,j)=y(j));
@for(tlink:@bin(x));
@for(dc:@bin(y)));
data:
data=@ole('C:\Users\DELL\Desktop\副本附件 网点坐标、订货量、配送道路的数据表.xls','data');
!省略自己补充
enddata
一直报错不知道原因,恳请大家帮帮忙解决一下
不知道你这个问题是否已经解决, 如果还没有解决的话:(1)代码实现
model
max = 72*x1 +64*x2
[milk] x1 + x2 < 50
[time] 12*x1 + 8*x2 < 480
[epct] x*x1 <100
end
(2)Lingo实验结果分析
如图中的
MILK 0.0000 48.0000表示MILK增加一个单位,利润增加48。就比如如果公式中的50变成51,fmin = 3360+48
TIME 0.0000 2.00000表示TIME增加一个单位,利润增长2.
CPCT 40.000 0.0000 表示这个约束有40的波动,在这个区间内变化,利润是不会变的
(3)价值和应用分析
Lingo options -->Output Level–>选择Verbose
Lingo options–>Dual Computations -->选择Price & Range
X1 72 24 8表示X当前系数是72,增加24范围内或减小8的范围内,整个方案是不变的
X2 64 8 16 表示X2当前系数是64,增加8范围内或减小16的范围内,整个方案是不变的
MILK 50 10 6.66667 表示可以变动范围是最多增加10,最多减小6.66667
以下同理