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/07/09 05:10:36
![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)](/uploads/image/z/8881909-61-9.jpg?t=model+is+ill+lingo%2C%E9%AB%98%E6%89%8B%E5%B8%AE%E5%B8%AE%E5%BF%99%211%E4%B8%8B%E9%9D%A2%E7%9A%84%E6%98%AF%E6%88%91%E5%86%99%E7%9A%84+%E4%BD%86%E6%98%AF%E6%80%8E%E4%B9%88%E6%94%B9%E9%83%BD%E6%9C%89%E9%94%99%21model%3Asets%3A++varei%2F1..7%2F%3At%2Cs%3B++varej%2F1..4%2F%3Asize%2Cnum%2Cp1%2Cp2%2Cg%2Cb%2Cq%3B++links%28varei%2Cvarej%29%3Ax%2Cp%2Cm%2Cd%3Bendsets%21%E7%9B%AE%E6%A0%87%E5%87%BD%E6%95%B0%3Bmin%3D%40sum%28links%3Am%28i%2Cj%29%2A%28%28p%28i%2Cj%29-p1%28j%29%29%2Ab%28j%29%2Bg%28j%29%29%2At%28i%29)
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)这个表达式越界了!