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