线性规划相关算法 - ZYL-Harry/Mathematical_Modeling_Algorithms GitHub Wiki
MODEL:
SETS:
person/1..14/:y,s;
item/1..5/;
assign(item,person):x,a;
ENDSETS
DATA:
a=10,1,4,10,5,5,4,6,2,4,8,6,10,9,
9,5,6,4,4,7,4,7,8,6,7,8,1,4,
7,5,5,6,7,7,8,8,7,10,2,6,4,5,
3,5,9,5,8,6,9,10,6,6,5,4,2,4,
3,10,8,2,8,7,7,5,8,6,9,8,3,7;
ENDDATA
max=z;
z=z1+z2;
z1=0.8*@sum(person(j):s(j)*y(j));
z2=@sum(assign(i,j):a(i,j)*x(i,j));
@sum(person(j):y(j))=3;
@for(assign(i,j):x(i,j)<=1-y(j));
@for(person(j):@sum(item(i):x(i,j))>=1-y(j));
@for(person(j):@sum(item(i):x(i,j))<=3);
@for(item(i):@sum(person(j):x(i,j))<=6);
@for(person(j):s(j)=@sum(item(i):a(i,j)));
@for(assign(i,j):@BIN(x(i,j)));
@for(person(j):@BIN(y(j)));
END
-
MODEL:…END
:Lingo程序的开头…结尾 -
SETS:…ENDSETS
:变量的设置 -
DATA:…ENDDATA
:相关变量数据的导入 -
max=z;
:目标函数 -
其他均为约束项
person/1..14/:y,s;
:setname[/member_list/][:attribute_list];
集 ←→ 结构体
集成员 ←→ 结构体的成员:可 显示罗列 或者 隐式罗列
集属性 ←→ 结构体的实例
-
Lingo默认变量“≥0”
-
@bin(x)
:限制x 为0 或1 — 用于0-1规划 -
@bnd(L,x,U)
:限制L≤x≤U,同时也取消了对变量x的默认下界为0的限制 -
@free(x)
:取消对变量x的默认下界为0的限制,即x可以取任意实数 -
@gin(x)
:限制x为整数