model is ill lingo,高手帮帮忙!1下面的是我写的 但是怎么改都有错!model:sets: varei/1..7/:t,s; varej/1..4/:size,num,p1,p2,g,b,q; links(varei,varej):x,p,m,d;endsets!目标函数;min=@sum(links:m(i,j)*((p(i,j)-p1(j))*b(j)+g(j))*t(i)

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 03:05:11

model is ill lingo,高手帮帮忙!1下面的是我写的 但是怎么改都有错!model:sets: varei/1..7/:t,s; varej/1..4/:size,num,p1,p2,g,b,q; links(varei,varej):x,p,m,d;endsets!目标函数;min=@sum(links:m(i,j)*((p(i,j)-p1(j))*b(j)+g(j))*t(i)
model is ill lingo,高手帮帮忙!1
下面的是我写的 但是怎么改都有错!
model:
sets:
varei/1..7/:t,s;
varej/1..4/:size,num,p1,p2,g,b,q;
links(varei,varej):x,p,m,d;
endsets
!目标函数;
min=@sum(links:m(i,j)*((p(i,j)-p1(j))*b(j)+g(j))*t(i)*x(i,j)+m(i,j)*q(j)*@if(x(i,j)#ne#x(i-1,j),1,0)*(x(i,j)-x(i-1,j)));
!需求约束;
@for(varei(I):
@for(varej(J):
p(I,J)*x(I,J)*m(I,J)>=s(I);
p(I,J)>=p1(J);
p(I,J)=@smax(p1(J));
);
!定义m为0/1变量;
@for(links(I,J):@bin(m(I,J)));
!数据;
data:
t=6 3 3 2 4 4 2;
s=10000 30000 22000 33000 22000 27000 16000;
size=1 2 3 4;
num=9 4 7 3;
p1=750 1000 1200 1800;
p2=1750 1500 2000 3500;
g=2250 1800 3750 4800;
b=2.6 2.1 1.7 3.6;
q=4000 1500 2200 1300;
enddata
end

model is ill lingo,高手帮帮忙!1下面的是我写的 但是怎么改都有错!model:sets: varei/1..7/:t,s; varej/1..4/:size,num,p1,p2,g,b,q; links(varei,varej):x,p,m,d;endsets!目标函数;min=@sum(links:m(i,j)*((p(i,j)-p1(j))*b(j)+g(j))*t(i)
代码修改后为:
model:
sets:
varei/1..7/:t,s,judge,differ;
varej/1..4/:size,num,p1,p2,g,b,q;
links(varei,varej):x,p,m,d;
endsets
@for(links(i,j)|i#GT#1:judge(i)=(x(i,j)#ne#x(i-1,j)));
@for(links(i,j)|i#GT#1:differ(i)=x(i,j)-x(i-1,j));
judge(1)=0;differ(1)=0;
!目标函数;
min=@sum(links(i,j):m(i,j)*((p(i,j)-p1(j))*b(j)+g(j))*t(i)*x(i,j)+m(i,j)*q(j)*judge(i)*differ(i));
!需求约束;
@for(varei(I):
@for(varej(J):
p(I,J)*x(I,J)*m(I,J)>=s(I);
p(I,J)>=p1(J);
p(I,J)=@smax(p1(J));
);
!定义m为0/1变量;
@for(links(I,J):@bin(m(I,J)));
!数据;
data:
t=6 3 3 2 4 4 2;
s=10000 30000 22000 33000 22000 27000 16000;
size=1 2 3 4;
num=9 4 7 3;
p1=750 1000 1200 1800;
p2=1750 1500 2000 3500;
g=2250 1800 3750 4800;
b=2.6 2.1 1.7 3.6;
q=4000 1500 2200 1300;
enddata
end
你的错误主要是在目标函数,目标函数里面if语句不能这样用,而且(x(i,j)-x(i-1,j)这个表达式越界了!