LINDO入門介紹.ppt_第1頁
LINDO入門介紹.ppt_第2頁
LINDO入門介紹.ppt_第3頁
LINDO入門介紹.ppt_第4頁
LINDO入門介紹.ppt_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、2.1.2 編寫一個(gè)簡單的LINDO程序,例2.1 簡單的線性規(guī)劃(LP)問題:,在空白的模型窗口中輸入這個(gè)LP模型:,max 2x+3y st 4x+3y=10 3x+5y12 end,如圖:,LINDO程序有以下特點(diǎn):, 程序以“MAX”(或“MIN”)開始,表示目標(biāo)最大化(或最小化)問題,后面直接寫出目標(biāo)函數(shù)表達(dá)式和約束表達(dá)式; 目標(biāo)函數(shù)和約束之間用“ST”分開; (或用“s.t.”,“sunject to”) 程序以“END”結(jié)束( “END” 也可以省略)。 系數(shù)與變量之間的乘號(hào)必須省略。 系統(tǒng)對(duì)目標(biāo)函數(shù)所在行自動(dòng)生成行名“1)”,對(duì)約束默認(rèn)的行名分別是“2)” “3)”,用戶也可以

2、自己輸入行名;行名放在對(duì)應(yīng)的約束之前。 書寫相當(dāng)靈活,不必對(duì)齊,不區(qū)分字符的大小寫。 默認(rèn)所有的變量都是非負(fù)的, 所以不必輸入非負(fù)約束。 約束條件中的“=”可分別用“”代替。 一行中感嘆號(hào)“!”后面的文字為是注釋語句,可增強(qiáng)程序的可讀性,不參與模型的建立。,模型求解:,用鼠標(biāo)點(diǎn)擊工具欄中的圖標(biāo) , 或從菜單中選擇Solve|Solve(Ctrl+S)命令,LINDO首先開始編譯這個(gè)模型,編譯沒有錯(cuò)誤則開始求解; 求解時(shí)會(huì)首先顯示如右圖所示的LINDO“求解器運(yùn)行狀態(tài)窗口 ”。,求解器運(yùn)行狀態(tài)窗口顯示的相應(yīng)信息及含義:,緊接著彈出一對(duì)話框,詢問你是否需要做靈敏性分析(DO RANGE (SENS

3、ITIVITY) ANALYSIS? )先選擇“否(N)”按鈕,這個(gè)窗口就會(huì)關(guān)閉。然后,再把狀態(tài)窗口也關(guān)閉。,報(bào)告窗口,用鼠標(biāo)選擇“Window | Reports Window”(報(bào)告窗口), 就可以查看該窗口的內(nèi)容,輸出結(jié)果表示的意思是:,“LP OPTIMUM FOUND AT STEP2” 表示單純形法在兩次迭代(旋轉(zhuǎn))后得到最優(yōu)解。,“VALUE”給出最優(yōu)解中各變量(VARIABLE)的值: X =1.272727, Y =1.636364.,“OBJECTIVE FUNCTION VALUE 1) 7.4545450 ”表示最優(yōu)目標(biāo)值為7.4545450.(注意:在LINDO中目標(biāo)

4、函數(shù)所在的行總是被認(rèn)為是第1行,這就是這里“1)”的含義)。,“SLACK OR SURPLUS(松馳或剩余)” 給出約束對(duì)應(yīng)的松馳變量的值: 第2、3行松馳變量均為0, 說明對(duì)于最優(yōu)解來講,兩個(gè)約束(第2、3行)均取等號(hào),即都是緊約束。 “DUAL PRICES” 給出對(duì)偶價(jià)格的值: 第2、3行對(duì)偶價(jià)格分別為 .090909,.545455。 “NO. ITERATIONS= 2” 表示用單純形法進(jìn)行了兩次迭代(旋轉(zhuǎn))。,“REDUCED COST” 給出最優(yōu)的單純形表中目標(biāo)函數(shù)行(第1行)中變量對(duì)應(yīng)的系數(shù)(即各個(gè)變量的檢驗(yàn)數(shù)(也稱為判別數(shù)). 其中基變量的reduced cost值一定為0

5、;對(duì)于非基變量(注意:非基變量本身取值一定為0), 相應(yīng)的 reduced cost值表示當(dāng)該非基變量增加一個(gè)單位(其他非基變量保持不變)時(shí)目標(biāo)函數(shù)減少的量( 對(duì)max型問題)。本例最優(yōu)解中兩個(gè)變量都是基變量,所以對(duì)應(yīng)的REDUCED COST的值均為0。,保存文件,選擇File|Save(F5)命令把“結(jié)果報(bào)告”保存在一個(gè)文件中(缺省的后綴名為LTX,即LINDO文本文件) 類似地,回到模型窗口,可以把輸入的模型保存在一個(gè)文件中。保存的文件將來可以用File | Open(F3)和File | View(F4)重新打開,用前者打開的程序可以進(jìn)行修改,而后者只能瀏覽。,如果模型有錯(cuò)誤,運(yùn)行時(shí)會(huì)

6、彈出出錯(cuò)信息報(bào)告窗口(LINDO Error Message),則需要修改模型。,2.1.3 LINDO模型的一些注意事項(xiàng),1.變量名由字母和數(shù)字組成,但必須以字母開頭,且長度不能超過8個(gè)字符,不區(qū)分大小寫字母,包括關(guān)鍵字(如MAX、MIN等)也不區(qū)分大小寫字母。,2.對(duì)目標(biāo)函數(shù)和約束用行號(hào)(行名)進(jìn)行標(biāo)識(shí),這些標(biāo)識(shí)會(huì)在將來的求解結(jié)果報(bào)告中用到。 行名可以和變量名一樣命名,也可以只用數(shù)字命名,還可以含有中文字符,但長度同樣不能超過8個(gè)字符。 為了方便將來閱讀求解結(jié)果報(bào)告,建議用戶總是自覺地對(duì)每個(gè)約束進(jìn)行命名。 行名結(jié)束標(biāo)志符號(hào)、即右括號(hào)“)”必須是英文字符,否則會(huì)出現(xiàn)錯(cuò)誤。,3.可以用“TIT

7、LE”語句對(duì)輸入的模型命名,用法是在TITLE后面寫出其名字(最多72個(gè)字符,可以有漢字),在程序中單獨(dú)占一行,可以在模型的任何地方。 模型命名的第一個(gè)作用類似于對(duì)模型的注釋和說明。 模型命名的另一個(gè)目的,是為了方便將來閱讀求解結(jié)果報(bào)告。因?yàn)橛脩粲锌赡芡瑫r(shí)處理多個(gè)模型,很容易混淆模型與求解結(jié)果的對(duì)應(yīng)關(guān)系。這時(shí)如果對(duì)不同模型分別進(jìn)行了命名,就可以隨時(shí)(例如在求解當(dāng)前模型前)使用菜單命令“FILE|TITLE”將當(dāng)前模型的名字顯示在求解結(jié)果報(bào)告窗口中,這樣就容易判別每個(gè)求解結(jié)果與每個(gè)模型的對(duì)應(yīng)關(guān)系。,4.模型中以感嘆號(hào)“!” 開頭的是注釋行(注釋語句,或稱為說明語句),可以幫助他人或以后自己理解這

8、個(gè)模型。實(shí)際上,每行中“!”符號(hào)后面的都是注釋或說明。注釋語句中可以使用漢字字符 。,5.變量不能出現(xiàn)在一個(gè)約束條件的右端(即約束條件的右端只能是常數(shù));變量與其系數(shù)間可以有空格(甚至回車),但不能有任何運(yùn)算符號(hào)(包括乘號(hào)“*”等)。,6.模型中不接受括號(hào)“( )”和逗號(hào)“,”等符號(hào)(除非在注釋語句中)。 例如: 4(X1+X2)需寫為4X1+4X2;“10,000”需寫為10000。,7.表達(dá)式應(yīng)當(dāng)已經(jīng)經(jīng)過化簡。 如不能出現(xiàn)2X1 + 3X2 - 4X1,而應(yīng)寫成 -2X1 + 3X2等。,8.LINDO 中已假定所有變量非負(fù)。若要取消變量的非負(fù)假定,可在模型的“END”語句后面用命令“FR

9、EE”。例如,在“END”語句后輸入FREE vname,可將變量vname的非負(fù)假定取消。,9.可以在模型的“END”語句后面用命令“SUB”(即設(shè)置上界(SET UPPER BOUND)的英文縮寫)設(shè)定變量的上界,用命令“SLB” (即設(shè)置下界(SET LOWER BOUND)的英文縮寫)設(shè)定變量的上下界。其用法是:“SUB vname value”將變量vname的上限設(shè)定為value;“SLB”的用法類似。 用“SUB”和“SLB”表示的上下界約束不計(jì)入模型的約束,因此LINDO也不能給出其松緊判斷和敏感性分析。,10.數(shù)值均衡化考慮:如果約束系數(shù)矩陣中各非零元的絕對(duì)值的數(shù)量級(jí)差別很大

10、(相差1000倍以上),則稱其為數(shù)值不均衡的。為了避免數(shù)值不均衡引起的計(jì)算問題, 使用者應(yīng)盡可能自己對(duì)矩陣的行列進(jìn)行均衡化。此時(shí)還有一個(gè)原則, 即系數(shù)中非零元的絕對(duì)值不能大于100000 或者小于.0001。LINDO 不能對(duì)LP 中的系數(shù)自動(dòng)進(jìn)行數(shù)值均衡化,但如果LINDO 覺得矩陣元素之間很不均衡, 將會(huì)給出警告。,11. 簡單錯(cuò)誤的檢查和避免: 輸入模型時(shí)可能會(huì)有某些輸入錯(cuò)誤. 當(dāng)問題規(guī)模較大時(shí), 要查找錯(cuò)誤是比較困難的。在LINDO 中有一些可幫助尋找錯(cuò)誤的功能,其中之一就是菜單命令“Report | Picture(Alt+5)” , 它的功能是可以將目標(biāo)函數(shù)和約束表達(dá)式中的非零系數(shù)

11、通過列表(或圖形)顯示出來。,例2.2 菜單命令“Report | Picture(Alt+5)” 的功能,用Report | Picture命令,將彈出一個(gè)對(duì)話框,在彈出的對(duì)話框中采用缺省選項(xiàng)(即不采用下三角矩陣形式,并以圖形方式顯示),直接按“OK”按鈕可得到一個(gè)輸出圖形??梢詮膱D中很直觀地發(fā)現(xiàn),其實(shí)錯(cuò)誤原因只不過是在輸入5)行的表達(dá)式中C0與CO弄混了(英文字母O與數(shù)字0弄混了)。在圖中,還可以用鼠標(biāo)控制顯示圖形的縮放,這對(duì)于規(guī)模較大的模型是有用的。,MIN 5 A0 +6 A1 +2 A2 +4 B0 +3 B1 +7 B2 +2 C0 +9 C1 +8 C2 SUBJECT TO 2

12、) A0 +Al +A2 =8 3) B0 +B1 +B2 =9 4) C0 +C1 +C2 =6 5) A0 +B0 +CO =6 6) A1 +B1 +C1 =5 7)A2 +B2 +C2 =9 END,對(duì)如下的一個(gè)有錯(cuò)誤的模型輸入:,例2.3 三個(gè)變量范圍限定命令(FREE、SUB、SLB)的作用,求解如下的LP問題:,這個(gè)模型中對(duì)變量x沒有非負(fù)限制,對(duì)y有上限限制,對(duì)z有下限限制。用FREE、SUB、SLB三個(gè)命令可以實(shí)現(xiàn)這些功能。,MAX 2x 3y + 4z S.T. con2) 4 x + 3y + 2z 8 con5) -5x - y - z 2 END free x ! 說明:變量x沒有非負(fù)限制 sub y 20 ! 說明:變量y的上界為20 slb z 30 ! 說明:變量

溫馨提示

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

評(píng)論

0/150

提交評(píng)論