LINDO、LINGO入門教程.doc_第1頁
LINDO、LINGO入門教程.doc_第2頁
LINDO、LINGO入門教程.doc_第3頁
LINDO、LINGO入門教程.doc_第4頁
LINDO、LINGO入門教程.doc_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

LINDO、LINGO入門教程要學好用這兩個軟件最好的辦法就是學習他們自帶的HELP文件。下面擬舉數例以說明這兩個軟件的最基本用法(例子均選自張瑩運籌學基礎)。例.(選自運籌學基礎.汽油混合問題,線性規劃問題)一種汽油的特性可用兩個指標描述:其點火性用“辛烷數”描述,其揮發性用“蒸汽壓力”描述。某煉油廠有四種標準汽油,設其標號分別為,其特性及庫存量列于下表中,將上述標準汽油適量混合,可得兩種飛機汽油,某標號為,這兩種飛機汽油的性能指標及產量需求列于表中。問應如何根據庫存情況適量混合各種標準汽油,使既滿足飛機汽油的性能指標,而產量又為最高。表標準汽油辛烷數蒸汽壓力(g/cm2)庫存量.7.11*10(-2).11.38*10(-2).5.69*10(-2).28.45*10(-2)(1 g/cm2=98Pa)表飛機汽油辛烷數蒸汽壓力(g/cm2)產量需求()=建模過程略(詳見運籌學基礎)目標函數:max z=x1+x2+x3+x4約束條件:x5+x6+x7+x8=250000x1+x5=380000x2+x6=265200x3+x7=408100x4+x8=02.85x5-1.42x6+4.27x7-18.49x8=016.5x1+2.0x2-4.0x3+17x4=07.5x5-7.0x6-13.0x7+8.0x8=0xj=0(j=1,2.,8)下面我們就用LINDO來解這一優化問題。輸入語句:max(不區分大小寫) x1+x2+x3+x4ST(大寫或寫subject to)x5+x6+x7+x8=250000x1+x5=380000x2+x6=265200x3+x7=408100x4+x8=02.85x5-1.42x6+4.27x7-18.49x8=016.5x1+2.0x2-4.0x3+17x4=07.5x5-7.0x6-13.0x7+8.0x8=0end然后再按運算符鍵即可得結果。LINDO是規定j非負的,我們可發現輸入方式與我們的數學書寫的形式基本一致,運算后,計算機會問您是否需要靈敏度分析,我們選擇是,結果如下:LP OPTIMUM FOUND AT STEP 6 OBJECTIVE FUNCTION VALUE 1) 933400.0 VARIABLE VALUE REDUCED COST X1 161351.734375 0.000000 X2 265200.000000 0.000000 X3 408100.000000 0.000000 X4 98748.265625 0.000000 X5 218648.265625 0.000000 X6 0.000000 0.000000 X7 0.000000 0.000000 X8 31351.734375 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 -1.000000 3) 0.000000 1.000000 4) 0.000000 1.000000 5) 0.000000 1.000000 6) 0.000000 1.000000 7) 0.000000 0.000000 8) 43454.000000 0.000000 9) 3239024.250000 0.000000 10) 1890675.875000 0.000000 NO. ITERATIONS= 6 RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 1.000000 0.000000 1.154137 X2 1.000000 INFINITY 0.000000 X3 1.000000 INFINITY 0.000000 X4 1.000000 0.000000 0.000000 X5 0.000000 1.154137 0.000000 X6 0.000000 0.000000 INFINITY X7 0.000000 0.000000 INFINITY X8 0.000000 0.000000 0.000000 RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 250000.000000 186222.062500 234752.984375 3 380000.000000 234752.984375 15247.017578 4 265200.000000 30601.410156 265200.000000 5 408100.000000 156685.250000 10176.581055 6 130100.000000 2350.135254 36184.207031 7 0.000000 43454.000000 669046.000000 8 0.000000 43454.000000 INFINITY 9 0.000000 3239024.250000 INFINITY 10 0.000000 1890675.875000 INFINITY下面給出其結果的一般解釋:“LP OPTIMUM FOUND AT STEP 6”表示LINDO在(用單純形法)次迭代或旋轉后得到最優解。“OBJECTIVE FUNCTION VALUE 1)933400.0”表示最優目標值為933400。“VALUE”給出最優解中各變量的值。“SLACK OR SURPLUS”給出松弛變量的值。上例中SLK 2= 第二行松弛變量(模型第一行表示目標函數,所以第二行對應第一個約束)“REDUCE COST”列出最優單純形表中判別數所在行的變量的系數,表示當變量有微小變動時,目標函數的變化率,其中基變量的reduce cost 值應為,對于非基變量j相應的reduce cost值表示j增加一個單位(此時假定其他非基變量保持不變)時目標函數減小的量(max 型問題)。上例中:X1 對應的 reduce cost 值為,表示當X1=1 時,目標函數值不變。“DUAL PRICE”(對偶價格)列出最優單純形表中判別數所在行的松弛變量的系數,表示當對應約束有微小變動時,目標函數的變化率,輸出結果中對應每一個約束有一個對偶價格。若其數值為,表示對應約束中不等式右端項若增加一個單位,目標函數將增加個單位(max 型問題)。上例中:第二行對應的對偶價格值應為-表示當約束)X5 + X6 + X7 + X8250000變為)X5 + X6 + X7 + X8250001時,目標函數值933400-1933399當REDUCE COST 或DUAL PRICE 的值為。表示當微小擾動不影響目標函數。有時,通過分析DUAL PRICE,也可對產生不可行問題的原因有所了解。靈敏度分析:如果做敏感性分析,則系統報告當目標函數的費用系數和約束右端項在什么范圍變化(此時假定其他系數保持不變)時,最優基保持不變。報告中INFINITY表示正無窮,如上例:目標函數中的變量系數為,當它在1-1.154137,1-0= -0.154137,1 變化時,最優基保持不變 。第一個約束右端項為250000,當它在250000-234752.984375,250000+186222.0625=15247.015625,436222.0625 范圍變化時,最優基保持不變 。當您要判斷表達式輸入是否有錯誤時,也可以使用菜單“Reports“的”Picture“選項。若想獲得靈敏度分析,可用“Reports“的”Rang“選項。若需顯示單純形表,可執行“Reports“的”Tab lean“選項。注意事項:) 目標函數及各約束條件之間一定要有“Subject to (ST) ”分開。) 變量名不能超過個字符。) 變量與其系數間可以有空格,單不能有任何運算符號(如乘號“”等)。) 要輸入=約束,相應以代替即可。) 一般LINDO中不能接受括號“()“和逗號“,“,例:400(X1+X2) 需寫成400X1+400X2;10,000需寫成10000。) 表達式應當已經過簡化。不能出現 2 X1+3 X2-4 X1,而應寫成-X1+3 X2。例2(選自運P94習題2.4;整數規則)有四個工人,要分別指派他們完成四項不同的工作,每個人做各項工作所消耗的時間如表。問應該如何指派,才能使總的消耗時間為最小? 工作所耗時間工人 A B C D 甲 15 18 21 24 乙 19 23 22 18 丙 26 17 16 19 丁 19 21 23 17這是一道典型的整數規則問題。我們記派第I去做工作記為Xij注意到每人只能做一項工作。每項工作一人做。我們得到目標函數為約束條件: min 15x11+19x21+26x31+19x41+18x12+23x22+17x32+21x42+24x13+22x23+16x33+23x43+24x14+18x24+19x34+17x44STx11+x12+x13+x14=1x21+x22+x23+x24=1x31+x32+x33+x34=1x41+x42+x43+x44=1x11+x21+x31+x41=1x12+x22+x32+x42=1x13+x23+x33+x43=1x14+x24+x34+x44=1endint 16運行后我們可得到最優目標值為70當 ,其余為0時。(具體的Reports 我們略去)在用LINDO解整數規劃(IP)問題時,只要在END后加上標識即可,其中解0/1規劃的用命令。INT name 或 INT n (n 指前n 個變量標識為0/1型)解混合型整數規劃則用GIN來標識。LINDO解整數規劃對變量的限制為50個。(指LINDO 6.1學生版)。所以說,盡管LINDO對整數規劃問題是很有威力。要有效地使用還是需要一定技術的。這是因為,人們很容易將一個本質上很簡單的問題列成一個輸入模型。從而有可能會導致一個冗長的分支定界計算。例3 用LINDO解目標規劃由于LINDO不能直接求解目標規劃問題,這是否就意味著LINDO失去了效力呢?不是的。由求解目標規劃問題的有效算法序貫式算法可知其實目標規劃我們常采取分解成前面二種辦法而已。例如算:min a=(d1_+d1),(2d2+d3)G1:x1-10x2+d1_-d1=50G2:3x1+5x2+d2_-d2=20G3:8x1+6x2+d3_-d3=100xi(i=1,2),dj_,dj(j=1,2,3)=0先求目標函數的最優值min d1_+d1STx1-10x2+d1_-d1=503x1+5x2+d2_-d2=20end求得D1_+D1 的最優值為0然后再求min 2d2+d3STx1-10x2+d1_-d1=503x1+5x2+d2_-d2=208x1+6x2+d3_-d3=100d1_+d1=0end即可算得第二級最優值2d2+d3例4 LINDO雖亦可求解二次規劃問題。(但我認為它在輸入對不如用LINGO方便,用LINDO輸入時要先作偏導數計算不如LINGO哪樣可直接輸入。(選自運籌學基礎190.習題4.10min f(x)=(x1-1)2+(x2-2)2x2-x1=1x1+x2=0,x2=0先來說一說如何使用LINGO一般來說LINGO多用于解決大規模數學規劃。用時要注意以下幾點:(1) 每條語句后必須使用分號“;”結束。問題模型必須由MODEL命令開始,END結束。(2) 用MODEL命令來作為輸入問題模型的開始,格式為MODEL:statement (語句)。(3) 目標函數必須由“min =”或“max =”開頭。則上面的例子的輸入就為modul:min=(x1-1)2+(x2-2)2;x2-1=1;x1+x2=2;end我們即可得到最優值0.5。當X1=0.5,X2=1.5,及靈敏度分析。我們還可得作圖分析。對于大規模規劃求解請參見LINGO的HELP文件。min x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24STx1+x2+x3+x4+x5+x6+x7+x8=10x9+x10+x11+x12+x13+x14+x15+x16=10x17+x18+x19+x20+x21+x22+x23+x24=10x1+x2+x3+x4+x9+x10+x11+x12+x17+x18+x19+x20=15x5+x6+x7+x8+x13+x14+x15+x16+x21+x22+x23+x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論