以下是用lingo写的程序,但不能运行,格式有错吗?请问错在哪里了?

model:
sets:
number/1..32/:A,x,a,z;
endsets
max= @sum(number(j):(A(j)-1)*x(j)*a(j)) ;
@for(number(j):x(j)*(A(j)-1)<=z(j));
@for(number(j):@sum(number(j):A(j)<=180));
@for(number(j):x(j)>=0,a(j)>=0,A(j)>=0,z(j)>=0);
data:
x=60,15,35,10,12.5,75,7.5,90,100,50,110,30,40,37.5,40,25,15,12.5,25,25,30,15,15,40,10,30,35,40,60,75,22.5,40;
z=500,130,200,30,60,800,10,500,400,300,1000,80,1500,1000,500,300,200,100,700,2000,300,200,600,500,100,400,600,700,1000,3000,1500,1200;
enddata
end

错误很多 最好能自己仔细阅读lingo教程
1 lingo不区分大小写 所以你的A和a重名
2 倒数第二个约束括号位置错了
3 最后一个约束不必写 因为lingo默认变量非负 如果要写的话中间也应该是;而不是,
改成这样
model:
sets:
number/1..32/:A,x,a1,z;
endsets
max= @sum(number(j):(A(j)-1)*x(j)*a1(j)) ;
@for(number(j):x(j)*(A(j)-1)<=z(j));
@for(number(j):@sum(number(j):A(j))<=180);
data:
x=60,15,35,10,12.5,75,7.5,90,100,50,110,30,40,37.5,40,25,15,12.5,25,25,30,15,15,40,10,30,35,40,60,75,22.5,40;
z=500,130,200,30,60,800,10,500,400,300,1000,80,1500,1000,500,300,200,100,700,2000,300,200,600,500,100,400,600,700,1000,3000,1500,1200;
enddata
end
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-05
第二个for循环应该里面是@sum(number(j):A(j))<=180
你的括号打错了,导致sum函数里面有个不等式,所以错了。

以下是用lingo写的程序,但不能运行,格式有错吗?请问错在哪里了?
错误很多 最好能自己仔细阅读lingo教程 1 lingo不区分大小写 所以你的A和a重名 2 倒数第二个约束括号位置错了 3 最后一个约束不必写 因为lingo默认变量非负 如果要写的话中间也应该是;而不是,改成这样 model:sets:number\/1..32\/:A,x,a1,z;endsets max= @sum(number(j):(A(j)-1)*x(j...

关于lingo的一段代码,问能不能运行成功。如果出错,错在哪里?
语法分析,这段代码没有问题,算不出来的原因是因为你的约束条件构不成一个封闭的域。简单的说,如果用线性规划的方法来画图你会发现这个约束条件是没有上限的。那么,你的max函数当然是不能取得值的!解决这个问题,你需要增加约束条件来限制目标函数要么只有改变目标函数。

(问题解决在加10分)求救,这个LINGO程序有什么语法错误没有,为什么我...
确实有错,min=@sum(note(i)|i#LE#3:350*(K(i+1)-K(i))+K(i)*(100+10*xa(i)+14*xb(i)))+@sum(note(i)|i#LE#3:100*(L(i+1)+L(i))+L(i)*(200+12ya(i)+15yb(i))); 这句中少最后两个乘号。另外200-x(1))*K(1)+(100-y(1))*L(1)>20;200-x(2))*K...

lingo软件运行问题,程序不能运行,代码哪里错了?
代码没有错误,只是 b 的前面,a 的最后少了一个分号。

LINGO程序哪里出错了运行不了啊
语句没错但调试时报错,可能是粘贴过去时有些问题吧,我又把这条语句删掉重新手工输入通过了。2.@FOR(MONTH(I): @SUM(STOREAMOUNT(J):YN2(I, J)=1);语句在=前少了一个右括号,应该改为。FOR(MONTH(I):SUM(STOREAMOUNT(J):YN2(I, J))=1);运行结果(部分)Global optimal solution found...

lingo程序运行不出来出现错误,请高手帮忙!谢谢
1. 由于缺乏数据段,可能导致程序难以运行。错误可能源于数据段的处理。2. 在最后一句中,"n"似乎是一个无关的变量,并未在其他约束条件中出现。这可能是需要修改的另一处错误。3. 楼主需要注意的一个问题是,目标函数是非线性的,而且处理的数据是一个1000*100的矩阵。使用Lingo软件解这个问题可能会...

Lingo中怎样查询语法错误的位置?
运行你的lingo程序,若有错,lingo系统会弹出一个“LINGO ERROR MESSAGE”的窗口,提示你哪里出错。其中“ERROR CODE”指的是程序错误的编号(LINGO把常见的错误都进行了编号,姜启源的lingo教材中有对应每一个标号错误的中文解释和解决方法,可以参考),下面的“Error Text”中有具体错误所在的行数,还有...

刚学习lingo编程,编的程序运行不出结果,请高人告诉我下面的程序的错误吧...
还有一个错误未修改,需要知道原约束条件,否则无法修改 Sets:Kinds\/1,2,3,4\/:F,P,D,b;Liners\/1,2\/:Q,A;Var(kinds,liners):X,S,O,V,R;!派生集定义错误,已修改;Endsets Data:F=20.58, 22.59, 25.78, 28.11;P=21.9, 23.72, 29.2, 43.8;D=7.3058, 8.5, 12.0218,...

LINGO的使用总是出错
你的程序可能有几点错误(不知是你复制上去错了还是源程序错误,这可能导致lingo运行不起):首先是:第6行的@bin(x(i))之后没打分号应为@bin(x(i));还有就是你的@for(set1(i):@sum(set1:y(i))>0.8*b(i));对于集合set1你要么就全省略i要么就不省略,这里在@for(set1(i):@没省略...

新手第一次用lingo做数模,不知道错在哪里,求大神改错
2.LINGO自带函数的使用。比如你程序中用到的指数函数@EXP(),余弦函数@COS(),正切函数@TAN();3.LINGO集合的运用。这个你的程序按这么写可能没什么错,但是当问题规模比较大时,比如我的X有10万个,就不太方便了。如果楼主还没有看过系统介绍LINGO的基本使用及其适用的领域的话,可以参考《优化建模...

相似回答