資源描述:
《lingo求解優(yōu)化問題》由會員上傳分享,免費在線閱讀,更多相關內容在學術論文-天天文庫。
1、首頁91一、Lingo簡介1.目標函數(shù)一個函數(shù)解析式,你希望求它的最大或最小值max=函數(shù)解析式;或min=函數(shù)解析式;例max=3*b+2*c^2;min=b^(1/3)-c*k;Lingo的語句以;號結束。2.運算加(+),減(-),乘(*),除(/),乘方(x^a)3.變量用字母或字母數(shù)字的組合表示例a,b,cc1,x1。Lingo的變量缺省值為非負數(shù)。4.限制條件一組等式或不等式。Lingo的>,<與>=,<=等價。示例程序1min=3*x1+5*x2;!x1,x2是非負變量;3*x1+2*x2>=36;913*x1+5*x2>=45;Lingo
2、的注釋語句用!開頭用;結束。5.變量類型變量類型說明@bin(變量名);限制該變量為0或1。@bnd(a,變量名,b);限制該變量介于a,b之間。@free(變量名);允許該變量為負數(shù)。@gin(變量名);限制該變量為整數(shù)。91二、Lingo高級sets語句連續(xù)六個月的產(chǎn)量,可以用x1,x2,x3,x4,x5,x6表示,但十二個月的產(chǎn)量用同樣的方法表示就顯繁瑣。Lingo可以通過sets語句設置數(shù)組功能使問題變得簡單。例定義數(shù)組x,有x(1),x(2),x(3),x(4)…x(12)個成員,用以表示十二個月的產(chǎn)量。sets:r/1..12/:x;!r是組
3、的類型名,x數(shù)組名;endsets;sets語句以sets開頭,endsets結束。示例程序2sets:mat/1..4/:x;!mat是組的類型名,x數(shù)組名;endsetsmin=50*x(1)+20*x(2)+30*x(3)+80*x(4);400*x(1)+200*x(2)+150*x(3)+500*x(4)>=500;3*x(1)+2*x(2)>=6;2*x(1)+2*x(2)+4*x(3)+4*x(4)>=10;2*x(1)+4*x(2)+x(3)+5*x(4)>=8;91data語句有時,我們要用到常數(shù)數(shù)組,比如在400*x(1)+200*x
4、(2)+150*x(3)+500*x(4)>=500中,x(1),x(2),x(3),x(4)的系數(shù)分別為400,200,150,500,此時,可用data語句。例定義數(shù)組a,其中a(1)=400,a(2)=200,a(3)=150,a(4)=500。sets:l/1..4/:a,x;endsetsdata:a=400200150500;enddatadata語句是以data開頭,enddata結尾。示例程序3sets:l/1..4/:x,a;91endsetsdata:a=7239;!a(1)=7,a(2)=2,a(3)=3,a(4)=9;enddat
5、amax=x(1)*a(3)+x(2)*a(1)+x(3)*a(4)+x(4)*a(2);x(1)+x(4)-x(2)-x(3)6、):b(i)7、b(i)*a(i));!等價于max=b(1)+b(2)+b(3)+b(4)+b(1)/a(1)+b(2)/a(2)+b(3)/a(3)+b(4)/a(4);@for(r(i):b(i)8、ed(1);g(2)=g(1)+y(2)*(@sum(m(i):x(i))-x(