有一段lingo代码不懂,请教!

来自:    更新日期:早些时候
求LINGO能手帮助解决,求LINGO老师,初学不懂望指教。 如果解决两边我都给分,非线性规划,LINGO程序~

model:
sets:
r/1..6/:;
c/1..5/:d;
z/1..30/:;
link(r,c):m,n,p;
endsets
data:
d=0.088 0.061 0.02 0.042 0.056;
enddata
max=@sum(link:n)*2250-@sum(link:m*p)-2.5*@sum(z(k):@sum(c(j):@sum(r(i):(7-i)*m(i,j))-@sum(r(i):(6-i)*n(i,j))-k/30*@sum(r(i):n(i,j))+3000));
@for(r(i):n(i,1)+n(i,2)<=200);
@for(r(i):n(i,3)+n(i,4)+n(i,5)<=250);
@for(c(j):500+@sum(r(i)|i#le#j:m(i,j))-@sum(r(i)|i#lt#j:n(i,j))<=1000);
@for(c(j):@sum(r(i):m(i,j)-n(i,j))=0);
@for(r(i):0.03*@sum(c(j):n(i,j))<= @sum(c(j):d(j)*n(i,j)) );
@for(r(i):@sum(c(j):d(j)*n(i,j))<=0.06*@sum(c(j):n(i,j)));
end
这个程序可以解决一维的情况。
式子可能有问题。尤其是最后的区间限制。

这样语法没错误了 另外提醒你lingo的变量默认非负 如果要取消非负限制 要用@free函数 用法跟@bin @gin一样

model:
sets:
V/1..12/;
E/1..66/:x,q;
matrix(V,E):H; !12x66的矩阵;
endsets
max=@sum(E(i):x(i));
@for(V(i):@sum(E(j):H(i,j)*q(j))=0);
@for(E(i):q(i)>=-1000*x(i));
@for(E(i):q(i)<=1000*(1-x(i))-0.01);
@for(V(i):@sum(E(j):H(i,j))<=1);
@for(E:@bin(x));
end

对星期一到星期天 人数的限制,上面还少两个约束,我这里给你个你参考下:
min=x1+x2+x3+x4+x5+x6+x7;
x4+x5+x6+x7+x1>=20;
x5+x6+x7+x1+x2>=16;
x6+x7+x1+x2+x3>=13;
x7+x1+x2+x3+x4>=16;
x1+x3+x3+x4+x5>=19;
x2+x3+x4+x5+x6>=14;
x3+x4+x5+x6+x7>=12;
@gin(x1);@gin(x2);@gin(x3);
@gin(x4);@gin(x5);@gin(x6);@gin(x7);
运行结果:
Objective value: 23.00000
Objective bound: 23.00000
Infeasibilities: 0.000000
Extended solver steps: 0
Total solver iterations: 11

对集days的元素生成约束


有一段lingo代码不懂,请教!视频

相关评论:
  • 13982293772我的lingo编程总是出现错误代码11,哪位大神可以帮忙看一看,急
    慎寇胞1, 查阅LINGO的用户手册得知:(1)LINGO的错误代码11 (error code 11) 是概括性的句法错误, 除非是混淆了LINGO和LINDO的语言(即错误地在lng或lg4文件中使用LINDO语言, 或者在ltx文件中使用LINGO语言), 否则没有详细的错误信息 (是一个"口袋"错误);(2)LINGO15(不含15)以下的版本中, 错误位置可能...

  • 13982293772lingo代码运行有问题,错误代码为69,但我自认为程序没有问题啊?(只要把...
    慎寇胞1、把h=8;h=0;改为@bnd(0,h,8);你试试,因为lingo里表示变量的范围用两行语句很容易出错,避免这样的错误最好用@bnd,明白了吗?不明白就找我,想我学lingo时都没人可以问的。2、把代码贴出来看看,才知道怎么改错误代码:29的意思是:数据段或初始段的数据个数不符要修改的看具体的。

  • 13982293772lingo程序代码问题
    慎寇胞问题是你的括号和分号写的是全角的。model:min=x1+x2+x3+x4;r11*x1+r12*x2+r13*x3+r14*x4>=15;r21*x1+r22*x2+r23*x3+r24*x4>=28;r31*x1+r32*x2+r33*x3+r34*x4>=21;r41*x1+r42*x2+r43*x3+r44*x4>=30;290*r11++315*r21+350*r31+455*r41<=1850;290*r12++315*r22+350*...

  • 13982293772我的lingo代码哪里错了?
    慎寇胞他不知道怎么读你的数。因为我不太明白你的函数,所以不能一点一点跟你改。你可以尝试:1. 把角标改为一致的。2.k-1你在数组中没有定义,系统不会读这个数的,我明白你的意思,你是想说由一个循环,但是LINGO不懂,你必须用一个for 循环来表示。对不起,如果不是很直接得回答你的问题。

  • 13982293772这段lingo程序是什么意思
    慎寇胞它的意思如下三个式子:storage(1):t2(1,1)+t2(1,2)+t2(1,3)=t1(1,1)+t1(1,2);storage(2):t2(2,1)+t2(2,2)+t2(2,3)=t1(2,1)+t1(2,2);storage(3):t2(3,1)+t2(3,2)+t2(3,3)=t1(3,1)+t1(3,2);因为时间的关系,后面的几句话就不说了,我想...

  • 13982293772求大神帮忙看看下面的lingo程序的错误?错误代码11.INVALID INPUT. A...
    慎寇胞你写的可以说完全不对而且最后的条件里面还有无用的条件 不知道你什么意思 大概这样改了一下 model:sets:train\/1..7\/:x,y,h,w,n;endsets data:h=48.7,52.0,61.3,72.0,48.7,52.0,64.0;w=2,3,1,0.5,4,2,1;n=8,7,9,6,6,4,8;enddata max = @sum(train(i):h(i)*...

  • 13982293772lingo 代码问题,
    慎寇胞目标函数是min=max{c(1,1)*x(1,1),c(1,2)*x(1,2)...c(1,20)*x(1,20)...c(20,20)*x(20,20)},是一个指派0-1规划,目标是让完成所有任务的最终时间最短,请问目标函数该怎么表达 min = @max(link:c*x);bin(link:x);

  • 13982293772这到题lingo代码怎么写
    慎寇胞我不知道你这里的c和C一不一样,姑且当成一样的好了,反正不是重点。。。model:sets:y\/1..1000\/;links(a,b):M,C; %这里的a和b指派生集M,C的父集 endsets data 数据自己加 enddata min=@sum(links(i,j),M(i,j)*C(i,j));for(a(i),c(i,j)=3);for(b(j),c(i,j)<...

  • 13982293772lingo 错误代码24 求改正 以下是程序 第10 行y有错误
    慎寇胞改成@for(wan(i):@sum(wan(i):y(i)*s(i))=14370);就行了,你的@sum函数后面没有写集合,根据你的数据算出来没有可行解。

  • 13982293772Lingo 错误代码 12-(data missing right parenthesis)
    慎寇胞1,你的程序真的少了个括号。2,你的程序有矛盾,lingo又找不出你的矛盾所在,于是错误判断出你少了个括号。对于第1种情况,你就寻找哪里掉了括号补充上就行了。对于第2种情况,建议你分段将你的程序编程注释程序,然后分别运行调试,最后找到矛盾语句。我有3年数学建模经验,遇到过很多这样的程序问题...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网