快速學(xué)懂Lingo軟件及其編程方法
2023-07-10 15:38 作者:拉布拉多多多-小布丁 | 我要投稿

最下面附帶能運行的代碼
ctrl鼠標(biāo)滾輪
放大縮小
?05:44?
初始代碼

英文版福利

Ctrl+u 是快捷鍵
?10:06?

2.lingo求解大規(guī)模問題,以及集合語言的運用
?11:27?
問題

定義集合
?
13:59
?sets:
......
endsets
注意:代碼嚴(yán)格規(guī)定省略號的點只能打兩個

【如:s/1..6/: ; 而不能用s/1.......6/:;】
表示定義一個集合;
1先確定已知和未知
集合語言知識:
{
(1)定義范圍S/1..6/: ;
(2)定義雙下標(biāo)U(S,T): ;
(3)定義滿足范圍的變量S/1..6/: a,b;
}

(方便看在放一下)問題

數(shù)據(jù)站知識
定義:
data:
.......
enddata
數(shù)據(jù)棧語言知識:
{

是多少寫多少 空格 或 逗號隔開數(shù)據(jù)
}
寫模型
?
20:13
?
記得最后加括號和前面的@sum函數(shù)配對
寫約束條件
?
21:18
?用@for來循環(huán)

非線性問題:
?
23:45
?
需要勾選全局求解器

成功代碼:
sets:
S/1..6/:a,b,d ;
T/1..2/:e,x,y ;
U(S,T):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;
x=5 2;
y=1 7;
e=20 20;
enddata
min =@sum(T(j): @sum(s(i):
c(i,j)*@sqrt((x(j)-a(i))^2+(y(j)-b(i))^2)
));
@for( S(i): @sum(T(j):c(i,j) ) =d(i) );
@for( T(j): @sum(S(i):c(i,j) )<=e(j) );
標(biāo)簽: