lingo解一个规划问题

问题描述:

lingo解一个规划问题
程序是
model:
sets:
n=5;
task/1..131/:a,p1,p2,p3,x,y;
endsets
data:
a=@file(dat.txt);
p1=@file(d1.txt);
p2=@file(d2.txt);
p3=@file(d3.txt);
enddata
min=@sum(task:a*x*y+(131-i)*0.4+0.8*((33292*x*y-a*x*y)*(33292*x*y-a*x*y)*p1+(49975*x*y-a*x*y)*(49975*x*y-a*x*y)*p2+(66658*x*y-a*x*y)*(66658*x*y-a*x*y)*p3));
min=@sum(task(i):(a(i)*x(i)*y(i)+(131-i)*0.4+0.1*((33292*x(i)*y(i)-a(i)*x(i)*y(i))*(33292*x(i)*y(i)-a(i)*x(i)*y(i))*p1(i)+(49975*x(i)*y(i)-a(i)*x(i)*y(i))*(49975*x(i)*y(i)-a(i)*x(i)*y(i))*p2(i)+(66658*x(i)*y(i)-a(i)*x(i)*y(i))*(66658*x(i)*y(i)-a(i)*x(i)*y(i))*p3(i)));
@for(task(i):@bin(x(i)));
@sum(task(i):x(i))=4;
@for(task(i):@bnd(0,y(i),500));
@for(task(i):@bnd(0,z(i),132));
@for(task(i):@sum(x(i)*y(i))=500;
@sum(task(i):x(i)*y(i))=500;
@sum(task(i):x(i)*y(i))=500;
@sum(task(i):x(i))=4;
END
其中dat.txt,d1.txt,d2.txt,d3.txt为数据
肯请哪位高手看看程序那错了.
数据比较多,没法发.要是需要我可以发邮箱里 .
我调了好长时间了,lingo用的不多.
1个回答 分类:综合 2014-10-18

问题解答:

我来补答
大致看了一下,程序应该没有什么问题.
(注意目标函数里检查有没式子书写问题 比如括号 运算符号什么)
我想可能是条件过于苛刻
比如:
@sum(task(i):x(i)*y(i))=500;
建议可减少约束条件试试 逐句检查
 
 
展开全文阅读
剩余:2000