简单lingo程序
例一:
MODEL:
sets:
WH/W1..W6/:AI;
VD/V1..V8/:DJ;
Links(WH,VD):C,X;
endsets
data:
AI=60,55,51,43,41,52;
DJ=35,37,22,32,41,32,43,38;
C=6,2,6,7,4,2,5,9
4,9,5,3,8,5,8,2
5,2,1,9,7,4,3,3
7,6,7,3,9,2,7,1
2,3,9,5,7,2,6,5
5,5,2,2,8,1,4,3;
enddata
MIN=@sum(Links(i,j):C(i,j)*X(i,j));
@FOR(WH(i):@sum(VD(j):X(i,j))<=AI(i));
@FOR(VD(j):@sum(WH(i):X(i,j))=DJ(j));
END
运行结果
例二
model:
sets:
demand/1..6/:a,b,d;
supply/1..2/:x,y,e;
link(demand,supply):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,y=5,1,2,7;
enddata
min=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));
@for (demand(i):@sum(supply(j):c(i,j))=d(i););
@for (supply(j):@sum(demand(i):c(i,j))<=e(j););
end
解题思路
建立模型,列约束条件,编程实现。
小白开始学习建模啦,感觉又踏上了一条不归路。。。
01背包的lingo求解
model:
sets:
WP/W1..W8/:A,C,X;
ENDSETS
DATA:
A=1 3 4 3 3 1 5 10;
C=2 9 3 8 10 6 4 10;
ENDDATA
MAX=@sum(WP:C*X);
@FOR(WP:@BIN(X));
@sum(WP:A*X)<=15;
END
其中
@FOR(WP:@BIN(X));
限定了X为布尔型变量
运行结果