请lingo高手检查一下这段程序,谢谢!
来自:比较好的东西 更新日期:早些时候
请高手帮我检查一下这个lingo程序?急!!~
MODEL:
SETS:
kind/1,2,3/:k,l,h,c,e,s; !k=三种发电机(Kind),l=最低功率级(Low), h=最高功率级(High), c=最低功率级的每小时费用(Cost);
!e=超过最低功率级的每兆瓦小时费用(Extra), s=启动费用(Start Cost);
time/1,2,3,4,5/:t,d; !t=5个时间段(Time), d=每个时间段需要满足的发电量(Demand);
link_kind_time(kind,time):x,n,a; !x=每种发电机在各时段的发电量, n=每种发电机在各时段所需的台数,a=每个时间段中新增启动的第i类发动机的数量(Add);
ENDSETS
DATA:
!------类型1 类型2 类型3------!;
l = 850 1250 1500;
h = 2000 1750 4000;
c = 1000 2600 3000;
e = 2 1.3 3;
s = 2000 1000 500;
ENDDATA
!-------------------------第一问目标函数--------------------------!;
MIN=@SUM(link_kind_time(i,j):e(i)*(x(i,j)-l(i)*n(i,j))+c(i)*n(i,j)+s(i)*a(i,j));
!-------------------------第一问目标函数--------------------------!;
!
SUBJECT TO
!---每个时间段必须满足的发电量,5个约束条件---!;
x(1,1)+x(2,1)+x(3,1)>=15000;
x(1,2)+x(2,2)+x(3,2)>=30000;
x(1,3)+x(2,3)+x(3,3)>=25000;
x(1,4)+x(2,4)+x(3,4)>=40000;
x(1,5)+x(2,5)+x(3,5)>=27000;
!------------发电机工作在极限范围以内,30个约束条件------------!;
@for(link_kind_time(i,j):l(i)*n(i,j)<=x(i,j));
@for(link_kind_time(i,j):x(i,j)<=h(i)*n(i,j));
!----第一问条件,额外保险负荷要求是应能在不多启动发电机情况下得到满足,15个约束条件-----!;
@FOR(time(j):@SUM(kind(i):h(i)*n(i,j))<=(115/100)*d(j));
!---------第三问条件,降低15%后备输出后的总费用,15个约束条件----------!;
! @FOR(link_kind_time(i,j):@SUM(link_kind_time:h(i)*n(i,j))<=d(i));
!----在周期t中启动的发电机台数必须等于发电机增加的台数,5个约束条件-----!;
@FOR(time(j)|j#gt#1:@sum(kind(i):a(i,j))>=@SUM(kind(i):n(i,j)-n(i,j-1)));
END
MIN=@SUM(link_kind_time(i,j):e(i)(x(i,j)-l(i)n(i,j))+c(i)n(i,j)+s(i)a(i,j));
@FOR(link_kind_time(i,j):@SUM(link_kind_time:h(i)*n(i,j))<=(115/100)d(j));
这两句少了运算符号,我猜你应该是掉了*
@FOR(time(j):@sum(kind(i):a(i,j))>=@SUM(kind(i):n(i,j)-n(i,j-1)));
这一句也对j少了限制,应该至少是@FOR(time(j)|j#gt#2:@sum(kind(i):a(i,j))>=@SUM(kind(i):n(i,j)-n(i,j-1)));
请lingo高手检查一下这段程序,谢谢!视频
相关评论:15625373596:请lingo高手检查一下这段程序,谢谢!
充使虎time\/1,2,3,4,5\/:t,d; !t=5个时间段(Time), d=每个时间段需要满足的发电量(Demand);link_kind_time(kind,time):x,n,a; !x=每种发电机在各时段的发电量, n=每种发电机在各时段所需的台数,a=每个时间段中新增启动的第i类发动机的数量(Add);ENDSETS DATA:!---类型1 类...
15625373596:lingo排课模型程序代码怎么使用?这段程序错在哪里?要怎么改?
充使虎1、通过Lingo自己的编程语言把优化模型转化成LINGO程序名然后运行即可。2、不能修改。代码段(codesegment\/textsegment)也称为(text段)通常是指用来存放程序执行代码的一块内存区域。3、for前面的两行有问题,上一行i\/10应该删除,上二行a=i%10应该修改后放在for的下面,修改为:错误太多了,里面的if...
15625373596:请高手看看这个LINGO程序那错了
充使虎sets:people\/1..6\/:c,x;endsets data:c=20 30 25 10 20 15;enddata max=20*x(1)+0*x(2)+0*x(3)+10*x(4)+0*x(5)+0*x(6);x(1)+x(2)+x(3)<=30;x(4)+x(5)+x(6)<=20;20*x(1)+10*x(4)-(30*x(2)+20*x(5))=0;30*x(2)+20*x(5)-(25*...
15625373596:一段简单地lingo的程序语句 求高手看看 哪里错了 也可以另给一个相同...
充使虎不要加行号 目标函数里面的常数去掉 约束里面的常数合并并且放到右边 你这个是lindo程序 不是lingo
15625373596:lingo编程错误,请高手帮忙看看
充使虎你的语法真的错了好多 我就改了一下 但还是没有结果 你自己再改改吧 model:sets:time\/t1 t2 t3 t4 t5 t6 t7\/:w,h;kind\/k1 k2 k3 k4\/:m,minw,maxw,c1,c2,b;links(time,kind):x,sw,d;endsets data:w=12000,32000,25000,36000,25000,30000,18000;h=6,3,3,2,4,4,2...
15625373596:请高手帮我看看lingo软件以下提示是什么意思?可能是哪里出错?
充使虎你装的是lingo 9.0破解版的吧,有可能是软件问题,你换个版本试试,还有问题再追问。。。最好给出代码,才好帮你改正。。。给你一个lingo 10.0的免安装版 下载地址:http:\/\/maths.hqu.edu.cn\/New\/UploadFiles\/lingo10.0.rar 解压后导入其中的注册表(双击NoAuto.reg,确定)的即可 ...
15625373596:请求高手帮我看看这个lingo程序错在哪里?
充使虎变量命名重复了GY\/g1,g2\/:gx,gy,gl;这句命名了两个gy,lingo不区分大小写的。
15625373596:请教高手!帮我检查LINGO的一个语句就行! 答对再加分!
充使虎争议。也因为产地的不同,南美短鲷鱼只的欣赏价值也有所差异。以凤尾短鲷为例,大致可分为野生种及人工培育个体。野生种是直接从野外环境中捕捉来的鱼只个体,最多也只经过一段人为的空腹、蓄养时间而已,但并不见得是采集自同一水域中,所以在形态上就会有些许的差异 ...
15625373596:lingo程序改错,请高手帮忙:
充使虎首先你的循环加和有问题,看你的意思link因该是二维的派生集合,但是set(j)是一维的,不能对i循环,如果一定是二维循环可以嵌套,如果你有数学表达式的话,倒是可以帮你编一下,错误提示是说你的括号不匹配,少个右侧括号
15625373596:求lingo高手解答
充使虎开始集的定义就不对 r0(recycle,0):G;h0(handle,0):T;这个两句不符合lingo语法 括号里面必须要是集
先把模型给出来啊,不然看着多麻烦啊
首先,@if语句后又多个括号“+34)”
这句话有严重问题:@for(days(i):c(i)=0.3*i+4);@sum(days:g)<25000*0.85);你的@for后面没语句,而且语法括号混乱。我不知道你想表达什么意思,我试试改了下:
@for(days(i):c(i)=0.3*i+4<25000);
@sum(days:g)<25000*0.85;
MODEL:
SETS:
kind/1,2,3/:k,l,h,c,e,s; !k=三种发电机(Kind),l=最低功率级(Low), h=最高功率级(High), c=最低功率级的每小时费用(Cost);
!e=超过最低功率级的每兆瓦小时费用(Extra), s=启动费用(Start Cost);
time/1,2,3,4,5/:t,d; !t=5个时间段(Time), d=每个时间段需要满足的发电量(Demand);
link_kind_time(kind,time):x,n,a; !x=每种发电机在各时段的发电量, n=每种发电机在各时段所需的台数,a=每个时间段中新增启动的第i类发动机的数量(Add);
ENDSETS
DATA:
!------类型1 类型2 类型3------!;
l = 850 1250 1500;
h = 2000 1750 4000;
c = 1000 2600 3000;
e = 2 1.3 3;
s = 2000 1000 500;
ENDDATA
!-------------------------第一问目标函数--------------------------!;
MIN=@SUM(link_kind_time(i,j):e(i)*(x(i,j)-l(i)*n(i,j))+c(i)*n(i,j)+s(i)*a(i,j));
!-------------------------第一问目标函数--------------------------!;
!
SUBJECT TO
!---每个时间段必须满足的发电量,5个约束条件---!;
x(1,1)+x(2,1)+x(3,1)>=15000;
x(1,2)+x(2,2)+x(3,2)>=30000;
x(1,3)+x(2,3)+x(3,3)>=25000;
x(1,4)+x(2,4)+x(3,4)>=40000;
x(1,5)+x(2,5)+x(3,5)>=27000;
!------------发电机工作在极限范围以内,30个约束条件------------!;
@for(link_kind_time(i,j):l(i)*n(i,j)<=x(i,j));
@for(link_kind_time(i,j):x(i,j)<=h(i)*n(i,j));
!----第一问条件,额外保险负荷要求是应能在不多启动发电机情况下得到满足,15个约束条件-----!;
@FOR(time(j):@SUM(kind(i):h(i)*n(i,j))<=(115/100)*d(j));
!---------第三问条件,降低15%后备输出后的总费用,15个约束条件----------!;
! @FOR(link_kind_time(i,j):@SUM(link_kind_time:h(i)*n(i,j))<=d(i));
!----在周期t中启动的发电机台数必须等于发电机增加的台数,5个约束条件-----!;
@FOR(time(j)|j#gt#1:@sum(kind(i):a(i,j))>=@SUM(kind(i):n(i,j)-n(i,j-1)));
END
MIN=@SUM(link_kind_time(i,j):e(i)(x(i,j)-l(i)n(i,j))+c(i)n(i,j)+s(i)a(i,j));
@FOR(link_kind_time(i,j):@SUM(link_kind_time:h(i)*n(i,j))<=(115/100)d(j));
这两句少了运算符号,我猜你应该是掉了*
@FOR(time(j):@sum(kind(i):a(i,j))>=@SUM(kind(i):n(i,j)-n(i,j-1)));
这一句也对j少了限制,应该至少是@FOR(time(j)|j#gt#2:@sum(kind(i):a(i,j))>=@SUM(kind(i):n(i,j)-n(i,j-1)));
请lingo高手检查一下这段程序,谢谢!视频
相关评论:
充使虎time\/1,2,3,4,5\/:t,d; !t=5个时间段(Time), d=每个时间段需要满足的发电量(Demand);link_kind_time(kind,time):x,n,a; !x=每种发电机在各时段的发电量, n=每种发电机在各时段所需的台数,a=每个时间段中新增启动的第i类发动机的数量(Add);ENDSETS DATA:!---类型1 类...
充使虎1、通过Lingo自己的编程语言把优化模型转化成LINGO程序名然后运行即可。2、不能修改。代码段(codesegment\/textsegment)也称为(text段)通常是指用来存放程序执行代码的一块内存区域。3、for前面的两行有问题,上一行i\/10应该删除,上二行a=i%10应该修改后放在for的下面,修改为:错误太多了,里面的if...
充使虎sets:people\/1..6\/:c,x;endsets data:c=20 30 25 10 20 15;enddata max=20*x(1)+0*x(2)+0*x(3)+10*x(4)+0*x(5)+0*x(6);x(1)+x(2)+x(3)<=30;x(4)+x(5)+x(6)<=20;20*x(1)+10*x(4)-(30*x(2)+20*x(5))=0;30*x(2)+20*x(5)-(25*...
充使虎不要加行号 目标函数里面的常数去掉 约束里面的常数合并并且放到右边 你这个是lindo程序 不是lingo
充使虎你的语法真的错了好多 我就改了一下 但还是没有结果 你自己再改改吧 model:sets:time\/t1 t2 t3 t4 t5 t6 t7\/:w,h;kind\/k1 k2 k3 k4\/:m,minw,maxw,c1,c2,b;links(time,kind):x,sw,d;endsets data:w=12000,32000,25000,36000,25000,30000,18000;h=6,3,3,2,4,4,2...
充使虎你装的是lingo 9.0破解版的吧,有可能是软件问题,你换个版本试试,还有问题再追问。。。最好给出代码,才好帮你改正。。。给你一个lingo 10.0的免安装版 下载地址:http:\/\/maths.hqu.edu.cn\/New\/UploadFiles\/lingo10.0.rar 解压后导入其中的注册表(双击NoAuto.reg,确定)的即可 ...
充使虎变量命名重复了GY\/g1,g2\/:gx,gy,gl;这句命名了两个gy,lingo不区分大小写的。
充使虎争议。也因为产地的不同,南美短鲷鱼只的欣赏价值也有所差异。以凤尾短鲷为例,大致可分为野生种及人工培育个体。野生种是直接从野外环境中捕捉来的鱼只个体,最多也只经过一段人为的空腹、蓄养时间而已,但并不见得是采集自同一水域中,所以在形态上就会有些许的差异 ...
充使虎首先你的循环加和有问题,看你的意思link因该是二维的派生集合,但是set(j)是一维的,不能对i循环,如果一定是二维循环可以嵌套,如果你有数学表达式的话,倒是可以帮你编一下,错误提示是说你的括号不匹配,少个右侧括号
充使虎开始集的定义就不对 r0(recycle,0):G;h0(handle,0):T;这个两句不符合lingo语法 括号里面必须要是集