赞
踩
lingo中如无特殊规定,变量默认大于等于0
model: sets: level/1..3/:p,z,goal; variable/1,2/:x; !x为决策变量向量; hconnum/1/:b; !刚性约束,b表示刚性约束的资源向量; sconnum/1..4/:g,dplus,dminus; !柔性约束,g表示柔性约束的资源向量,dplus,dminus是偏差变量; hcons(hconnum,variable):A; ! 基于集合构造的集合,叫做派生集合; scons(sconnum,variable):c; obj(level,sconnum):wplus,wminus; endsets data: p=? ? ?; goal=? ? 0; b=12; g=1500 0 16 15; a=2 2; c=200 300 2 -1 4 0 0 5; wplus=0 0 0 0 0 1 0 0 0 0 3 1; wminus=1 0 0 0 0 1 0 0 0 0 3 0; enddata min=@sum(level:p*z); @for(level(i): z(i)=@sum(sconnum(j):wplus(i,j)*dplus(j))+@sum(sconnum(j):wminus(i,j)*dminus(j))); @for(hconnum(i): @sum(variable(j):a(i,j)*x(j))<=b(i)); @for(sconnum(i): @sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g(i);); @for(level(i)|i#lt#@size(level): @bnd(0,z(i),goal(i));); End
或
model: sets: col/1,2/:x,y,e; row/1..6/:d,a,b; link(row,col):c; endsets data: a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75; d=3,5,4,7,6,11; e=20,20; x=5,2; y=1,7; enddata min=@sum(col(j):@sum(row(i):c(i,j)*@sqrt((x(j)-a(i))^2+(y(j)-b(i))^2))); @for(row(i):@sum(col(j):c(i,j))=d(i)); @for(col(j):@sum(row(i):c(i,j))<=e(j)); end
1.lingo 不区分大小写
2.乘法符号不能省略,可以加空格
3.不能写成 x1,x2>=3;
要分两行写:
x1>=3;
x2>=3;
4.@gin(x1):要求x1是整数
5.由于lingo里默认x>=0,使用free(x)函数可以将x变成任意实数
eg:如果x是-5~5之间的实数,则需首先free(x),再令其处于-5 ~ 5
B站的lingo编程教学视频
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。