请问这个lingo线性规划算法哪里有问题

首页/题库/392℃/2024-07-01 09:26:50

请问这个lingo线性规划算法哪里有问题

model:

sets:

months/1..12/:prod,a,f,y;

endsets

data:

a=2 3 4 6 8 10 10 6 4 3 2 2;

y=1;

enddata

@for(months(I)| prod(I) #GT# prod(I-1):

f(I)= 10 * @abs(prod(I)-prod(I-1));

);

@for(months(I)| prod(I-1) #GT# prod(I):

f(I)= 5 * @abs(prod(I-1)-prod(I));

);

min = @sum(months:f);

@for(months(i)|i#eq#1:prod(i)+1-a(i)

有了进一步改进(刚学这个,

@for(months(I)|I#ge#2:

f(I)=@if(prod(I)#GE#prod(I-1),10 * @abs(prod(I)-prod(I-1)),5 * @abs(prod(I-1)-prod(I)));

程序运行提示这一行有错,我用的lingo4

谢谢zjpwang的指点。前面那句我已经把gt改为ge。不过按照你说的“不可省略部分”我加了,如下

@for(months(I)|I#ge#2:

f(I)=@if(prod(I)#GT#prod(I-1),10 * @abs(prod(I)-prod(I-1)),@if(prod(I-1) #GT# prod(I),5 * @abs(prod(I-1)-prod(I)),0)));

但还是这一行有错。

请问你用的是哪个版本的,是4.

你运行的结果是多少?

优质解答:

@for(months(I)| prod(I) #GT# prod(I-1):

当I=1时I-1=0出错

语句也有问题

可改成如下形式(因为prod(I)==prod(I-1)时怎么搞不知道,数值用?代替了)

@for(months(I)|I#ge#2:

f(I)=@if(prod(I)#GT#prod(I-1),10 * @abs(prod(I)-prod(I-1)),@if(prod(I-1) #GT# prod(I),5 * @abs(prod(I-1)-prod(I)),)));

处要填入prod(I)==prod(I-1)的情况,不能省略!

少了“)” 注意检查

@for(months(I)|I#ge#2:

f(I)=@if(prod(I)#GT#prod(I-1),10 * @abs(prod(I)-prod(I-1)),@if(prod(I-1) #GT# prod(I),5 * @abs(prod(I-1)-prod(I)),0)));

这个没错误!我这可以运行!

----------------------------------------------

我的是LINGO10.0.网上都有的下,下一个高一点的吧太老了.

程序:

sets:

months/1..12/:prod,a,f,y;

endsets

data:

a=2 3 4 6 8 10 10 6 4 3 2 2;

y=1;

enddata

@for(months(I)|I#ge#2:

f(I)=@if(prod(I)#GT#prod(I-1),10 * @abs(prod(I)-prod(I-1)),@if(prod(I-1) #GT# prod(I),5 * @abs(prod(I-1)-prod(I)),0)));

min = @sum(months:f);

@for(months(i)|i#eq#1:prod(i)+1-a(i)

我来回答修改/报错/举报内容!

猜你喜欢

一个神奇的在线题库网,分享各类考试题库、题目资料与资料答案、在线搜题与练习等!
本网站部分内容、图文来自于网络,如有侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
Copyright © 2021-2024 315题库 All Rights Reserved