完全初学者请教关于lingo程序的问题

涉足编程才不久,搞不太懂,请高手解释一下为什么运行错误,而且lingo能调试吗?
有100个数,任意相邻50个和小于等于500,那么这100个数字之和最大是多少?
我的程序:
model:
init:
n=100;
endinit
sets:
run/1..100/:s;
endsets
max=@sum(run:s);
@for(run(i)|i#le#(n/2):
@sum(run(j)|(j #ge# i) #and# (j #le# (n/2)):s(j))<=500);
end
谢谢下面的回答。
只是我有一点没有搞懂,j #le# (j+49),我觉得j是一定小于等于j+49的,你这里的限制是什么意思啊?
关于n,我其实是想弄个常量,譬如说不是100个数,1000个数的话,相邻500个相等这样的问题,拿我只需改动常量你的值就可以了。但是发现,在申明sets的时候,run/1..n/:s;它说不对,不知道有没有办法解决。

model:
init:
n=100;
endinit
sets:
run/1..100/:s;
endsets
max=@sum(run:s);
@for(run(i)|i#le#50:@sum(run(j)|((j #ge# i) #and# (j #le# (j+49))):s(j))<=500;);
end
这样子就可以啦。
还有啊,你的变量里面没有n啊,写下面那句没什么意义啊。
init:
n=100;
endinit
嗯,你说一定小于j+49是从题目本身来说的还是其他约束条件已经包括这一点了从而没有必要写这句了?另外据我所知lingo不能写成形如run/1..n/:s;的语句。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-08-14
model:
sets:
run/1..100/:s;
endsets
max=@sum(run:s);
n=100;
@for(run(i)|i#le#(n/2+1): @sum(run(j)|(j #ge# i) #and# (j #le# (i+n/2-1)):s(j))<=500);
end

这样应该就可以
init定义的是解决时初始取值,并不是定义常量

完全初学者请教关于lingo程序的问题
嗯,你说一定小于j+49是从题目本身来说的还是其他约束条件已经包括这一点了从而没有必要写这句了?另外据我所知lingo不能写成形如run\/1..n\/:s;的语句。

初学者向Lingo高手请教关于Lingo程序的小问题,非常感谢!
第三个问题不太理解啥意思,我只见过4维问题,你可以看《优化模型与lindo\/lingo软件》一书,比较好~~~上面有3,4维问题的模型。

初学者向Lingo高手请教关于Lingo计算时小问题
4 0.000000 0.000000 这个题目很简单,因为我没学过lingo,只是接触过一下下

请教关于lingo软件的问题:1关于(I)和(I-1)怎么处理, 2,当k<1时,k=y...
第二个肯定不能那样写 lingo不是程序性的语言 你自己把最终应该的结果算出来才行

请教Lingo程序的一个问题
集操作函数写的不对 另外感觉你定义的问题用的维数和集都太多了 需要看一下你原来的题目 错误代码没用 f1=@sum(allowed3:M*MPC(k));f2=@sum(allowed3:G*MOC(k));f3=@sum(allowed3:(N*capacity(k)-G)*MIC(k));f4=@sum(allowed4|j #LE# 3: @floor(demand(i,q)\/HC(i))*@abs...

lingo错误代码11,我是初学者,求各位大神帮忙看看怎么改语法
没什么大的问题,代码略作更改就能正常运行:Max= I-O-F-C;I=(x1*1000+x2*800)*100+(y1*1000+y2*1600)*100+(z1*800+z2*1600)*100;O=50*(x1*800+x2*500+y1*800+y2*1000+z1*500+z2*1000);F=x1*60000+x2*100000+y1*60000+y2*110000+z1*80000+z2*90000;C=12600*(x1...

请教高人,怎么用lingo做
另外,还有一个方法,lingo有返回灵敏度分析结果的一个函数,可以调用这个返回值,人为设置一个合理的区间,给出结果。或者干脆用循环的形式给出六个不确定系数的区间,暴力搜索。具体怎么写,我暂时帮不了你,我也很长时间没用这个软件了。如果我有时间用Mathematica做一个看看。不知道其他人有什么好办法...

求大神 请教LINGO问题
这个是matlab写的,lingo代码类似,仅供参考:R = [2 3.4 5 6 7 8.4 8.7];P = [7.75 9 13 17 21 22 25];Min_PR= 2225.04 + 321753.6.\/(0.5+R) + 576*P;[min_PR,loc] = min(Min_PR);P_loc = P(loc)R_loc = R(loc)结果:(8.4,22)最小,最小值为min_PR ...

lingo软件的问题
错误显示为模型定义错误,,在倒数第二三排集合名viab后加上(i)就行 model:sets:viab\/1..3\/: p,r1,r2,r3,rs,rp;endsets data:r=0.0354;r1=0.046,0.04,0.0312;r2=0.064,0.058,0.021;r3=-0.143,0.109,0.038;rp=0.039,0.05566,0.0133;enddata min=a;a>=0;p0>1;for...

lingo请教高人 程序错误
程序表达的是一个最优规划问题 具体是什么当然要看题目了 单纯看着程序说什么意思也不好理解啊 而且你给的程序也不全 光标点错误就很多 这样没法给你看 集的定义没有啊 里面还有标点错误 不是没得改 是没法改 你给的都不完整 而且都不知道问题 怎么给你改 教程已经发 ...

相似回答