Lindo使用教程_第1頁(yè)
Lindo使用教程_第2頁(yè)
Lindo使用教程_第3頁(yè)
Lindo使用教程_第4頁(yè)
Lindo使用教程_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、LINDO軟件包(學(xué)生版) 使用手冊(cè) 目 錄第一節(jié) 簡(jiǎn)介與安裝第二節(jié) 用LINDO求解線性規(guī)劃 (LP) 問(wèn)題第三節(jié) 用LINDO求解整數(shù)規(guī)劃(IP) 和二次規(guī)劃(QP) 問(wèn)題 第四節(jié) GINO簡(jiǎn)介第五節(jié) LINGO簡(jiǎn)介1997年8月第一節(jié) 簡(jiǎn)介與安裝1·1簡(jiǎn)介本文主要面向大中專學(xué)生, 研究生, 及掌握一定的高等代數(shù)知識(shí)的讀者,介紹LINDO軟件包(學(xué)生版)的基本使用方法。該軟件包(學(xué)生版)主要功能在于幫助使用者較快地輸入一個(gè)優(yōu)化問(wèn)題的式子, 求解并分析該優(yōu)化問(wèn)題, 然后可做些較小的改動(dòng), 并重復(fù)上述的過(guò)程. 該軟件包(學(xué)生版)在微機(jī)上DOS環(huán)境下運(yùn)行。其使用界面不是圖形式的,而是字

2、符式的;不是菜單式的, 而是面向具體的命令 (Command). 它有許多的命令, 每一個(gè)命令都可隨時(shí)執(zhí)行, 由系統(tǒng)檢查該命令是否在上下文中起作用. 它采用一種對(duì)用戶友好的交互使用方式, 包括了所有的使用過(guò)程指導(dǎo). 基于使用的具體情況, 它會(huì)向使用者詢問(wèn)下一步將做什么, 或等待使用者輸入下一個(gè)命令.LINDO軟件包(學(xué)生版)包括LINDO,GINO,LINGO和 LINGO NL(LINGO2)等優(yōu)化軟件的學(xué)生版以及相應(yīng)的例子文件。由于LINDO程序執(zhí)行速度很快,易于方便地輸入、求解和分析優(yōu)化問(wèn)題,LINDO在教學(xué)、科研和工業(yè)界得到廣泛應(yīng)用。這里用LINDO軟件包作為L(zhǎng)INDO,GINO,LI

3、NGO和 LINGO NL等的統(tǒng)稱,包含五種組件,下面分別介紹如下:(1)LINDO是Linear INteractive and Discrete Optimizer字首的縮寫形式,是由Linus Schrage 于1986年開發(fā)的優(yōu)化計(jì)算軟件包, 可以用來(lái)求解線性規(guī)劃 (LP-Linear Programming), 整數(shù)規(guī)劃 (IP-Integer Programming) 和二次規(guī)劃 (QP-Quadratic Programming) 問(wèn)題. LINDO易于規(guī)劃問(wèn)題的輸入、求解和分析,程序執(zhí)行速度很快。LINDO學(xué)生版最多可求解多達(dá)200個(gè)變量和100個(gè)約束的規(guī)劃問(wèn)題。 (2)GIN

4、O可用于求解非線性規(guī)劃 (NLP-Nonlinear Linear Programming) 問(wèn)題,求解線性和非線性方程組和不等式組,以及代數(shù)方程求根。GINO中包含了有關(guān)財(cái)務(wù)、概率等方面的函數(shù)和三角函數(shù),以及各種一般的數(shù)學(xué)函數(shù),可供使用者建立問(wèn)題模型時(shí)調(diào)用。GINO 學(xué)生版最多可求解多達(dá)50個(gè)變量和30個(gè)約束的問(wèn)題。 (3)LINGO 可用于求解線性規(guī)劃和整數(shù)規(guī)劃問(wèn)題。(4) LINGO NL(LINGO2) 可用于求解線性、非線性和整數(shù)規(guī)劃問(wèn)題。 與LINDO和GINO不同的是,LINGO和LINGO NL(LINGO2) 包含了內(nèi)置的建模語(yǔ)言,允許以簡(jiǎn)練、直觀的方式描述所需求解的問(wèn)題,模

5、型中所需的數(shù)據(jù)可以以一定格式保存在列表(List)和表格(Table)中,也可以保存在獨(dú)立的文件中。LINGO和LINGO NL(LINGO2) 學(xué)生版最多可求解多達(dá)200個(gè)變量和100個(gè)約束的問(wèn)題。(5)例子文件:在軟件包中還含有例子文件,其中有些例子文件與各軟件在一起,但大多數(shù)例子文件一般安裝在例子目錄。例子目錄下的例子文件是以LUTOS 1-2-3的WK1格式存儲(chǔ)的(也可用MS-OFFICE工具的EXCEL軟件讀寫)。1·2安裝過(guò)程:LINDO軟件包(學(xué)生版)在微機(jī)上DOS環(huán)境下通過(guò)安裝后運(yùn)行。安裝盤為一片三英寸軟盤,安裝盤上有安裝程序 (install.exe) 和簡(jiǎn)要介紹文

6、本 (read.me),還帶有多個(gè)壓縮文件和一個(gè)解壓縮程序 (lha.exe). 安裝時(shí),將安裝盤直接插入軟驅(qū),然后運(yùn)行該軟盤上的安裝程序,即在該軟驅(qū)的提示符 (如A:> 或B:>)下鍵入“install”。 按“回車”(ENTER鍵)后,只需遵照屏幕上的提示即可完成整個(gè)安裝過(guò)程:(1)用戶首先必須選擇所需安裝的內(nèi)容:用戶可以任意選擇所需安裝的內(nèi)容(從1·1節(jié)所介紹的五種組件中任意選?。H绻氚惭b五種組件中的某個(gè)組件,就在它前面鍵入“Y”;否則鍵入“N”,然后“回車”。如此反復(fù),完成后屏幕將提示您確認(rèn)您的選擇。(2)用戶必須選擇所需安裝到的目的地(一般是硬盤上的某個(gè)目錄

7、)。屏幕將提示缺省的目錄,您可以任意修改,如此反復(fù),完成后屏幕將提示您確認(rèn)您的選擇。 (3)確認(rèn)您的選擇之后,安裝程序就會(huì)自動(dòng)完成全部后續(xù)安裝過(guò)程。安裝過(guò)程結(jié)束后,您就可以進(jìn)入安裝好的目錄,運(yùn)行相應(yīng)的優(yōu)化軟件了。第二節(jié) 用LINDO求解線性規(guī)劃(LP)問(wèn)題2.1初試 LINDO LINDO 的求解機(jī)制:LINDO 的求解過(guò)程采用單純形法,一般是首先尋求一個(gè)可行解, 在有可行解情況下再尋求最優(yōu)解. 用LINDO 求解一個(gè)LP問(wèn)題會(huì)得到如下的幾種結(jié)果: 不可行(No feasible solution) 或 可行(Feasible) 可行時(shí)又可分為: 有最優(yōu)解(Optimal Solution)和

8、解無(wú)界(Unbounded Solution)兩種情況. 由于在實(shí)際問(wèn)題中, 不太可能出現(xiàn)最大利潤(rùn)無(wú)上限的情形, 所以使用者應(yīng)檢查是否少了一個(gè)約束或有其它印刷錯(cuò)誤. 在LINDO子目錄下執(zhí)行LINDO.EXE文件即可進(jìn)入LINDO工作環(huán)境,其屏幕顯示如下:LINDO/PC 5.02 (4 MAR 92)STUDENT VERSION. FOR EDUCATIONAL USE ONLY.SINGLE USER LICENSE FOR EDUCATIONAL USE ONLY DISTRIBUTED WITH TEXTBOOKS BY WADSWORTH PUBLISHING : “:”為L(zhǎng)IND

9、O提示符,在其之后, 使用者即可用具體的命令來(lái)輸入并求解優(yōu)化問(wèn)題。讓我們來(lái)解如下LP問(wèn)題: 由于LINDO 中已假設(shè)所有的變量都是非負(fù)的, 所以非負(fù)約束可不必再輸入到計(jì)算機(jī)中;LINDO也不區(qū)分變量中的大小寫字符(實(shí)際上任何小寫字符將被轉(zhuǎn)換為大寫字符);約束條件中的“<=” 及“>=”可用“<” 及“>”代替。上面問(wèn)題用鍵盤輸入如下: : MAX 2x + 3Y ? ST ? 4X + 3Y < 10 ? 3x + 5Y < 12 ? END :LINDO 中一般稱上面這種問(wèn)題實(shí)例(INSTANCE)為模型(MODEL)。以后涉及該模型時(shí),目標(biāo)函數(shù)為第一行,

10、兩個(gè)約束條件分別為第二、三行。直接鍵入運(yùn)行(GO)命令就可得到解答, 屏幕顯示如下::GOLP OPTIMUM FOUND AT STEP 2 OBJECTIVE FUNCTION VALUE 1) 7.4545450 VARIABLE VALUE REDUCED COST X 1.272727 .000000 Y 1.636364 .000000 ROW SLACK OR SURPLUS DUAL PRICES 2) .000000 .090909 3) .000000 .545455 NO. ITERATIONS= 2 DO RANGE(SENSITIVITY) ANALYSIS? N:

11、計(jì)算結(jié)果表明: “LP OPTIMUM FOUND AT STEP2”表示單純形法在兩次迭代(旋轉(zhuǎn))后得到最優(yōu)解。 “OBJECTIVE FUNCTION VALUE 1) 7.4545450 ”表示最優(yōu)目標(biāo)值為7.4545450. “VALUE”給出最優(yōu)解中各變量(VARIABLE)的值: X =1.272727, Y =1.636364. “REDUCED COST” 給出最優(yōu)單純形表中第0行中變量的系數(shù) ( max型問(wèn)題). 其中基變量的reduced cost值應(yīng)為0,對(duì)于非基變量, 相應(yīng)的 reduced cost值表示當(dāng)該非基變量增加一個(gè)單位時(shí)目標(biāo)函數(shù)減少的量。本例中此值均為0。

12、“SLACK OR SURPLUS” 給出松馳變量的值: 第2、3行松馳變量均為0, 說(shuō)明對(duì)于最優(yōu)解來(lái)講,兩個(gè)約束(第2、3行)均取等號(hào)。 “DUAL PRICES” 給出對(duì)偶價(jià)格的值: 第2、3行對(duì)偶價(jià)格分別為 .090909,.545455。 “NO. ITERATIONS= 2” 表示用單純形法進(jìn)行了兩次迭代(旋轉(zhuǎn))。一個(gè)問(wèn)題解答之后, LINDO 會(huì)詢問(wèn)是否需要做靈敏性分析(DO RANGE (SENSITIVITY) ANALYSIS? ) 如果你不需要,你應(yīng)回答“N”(NO),回到提示符“:”之下. 如果想重新看到剛才的模型,可鍵入 LOOK 命令, LINDO 會(huì)詢問(wèn)具體的行號(hào).

13、 典型的應(yīng)答可以是 3, 或1-2, 或ALL, 而結(jié)果, 相應(yīng)地會(huì)顯示出第 3行, 第1-2 行, 或所有問(wèn)題行.: LOOKROW:3 3) 3 X + 5 Y <= 12:或: LOOK all MAX 2x + 3Y SUBJECT TO 2) 4 X + 3 Y <= 10 3) 3 X + 5 Y <= 12 END :如果想修改問(wèn)題,可鍵入 ALTER 命令, LINDO 會(huì)詢問(wèn)行號(hào), 變量名, 及新的系數(shù). 例如:如果要將上面問(wèn)題中約束條件改為,再全部看一下,并求解新問(wèn)題,那么鍵入ALTER 命令后相應(yīng)的應(yīng)答為 2,X,和6, 以下是演示過(guò)程:ALTERROW

14、:2VAR:XNEW COEFFICIENT:6:LOOK ALL MAX 2 X + 3 Y SUBJECT TO 2) 6 X + 3 Y <= 10 3) 3 X + 5 Y <= 12 END:go LP OPTIMUM FOUND AT STEP 0 OBJECTIVE FUNCTION VALUE 1) 7.3333330 VARIABLE VALUE REDUCED COST X .666667 .000000 Y 2.000000 .000000 ROW SLACK OR SURPLUS DUAL PRICES 2) .000000 .047619 3) .0000

15、00 .571429 NO. ITERATIONS= 0 DO RANGE(SENSITIVITY) ANALYSIS? N: QUIT最后鍵入退出(QUIT)命令, 即可退出LINDO工作環(huán)境。注:輸入、查看和修改一個(gè)LP模型更方便的方法是采用全屏幕編輯器。在“:”提示符下鍵入編輯(EDIT)命令可以進(jìn)入全屏幕編輯器,可以和其他文本編輯器一樣方便使用。2·2 求解LP問(wèn)題的一般步驟及例子步驟: 1) 首先是輸入一個(gè)LP問(wèn)題。為了檢查有無(wú)錯(cuò)誤,可用LOOK命令來(lái)顯示問(wèn)題式中的一行,幾行或全部。 例如: LOOK 3 - 屏幕顯示第3行LOOK 1-3 - 顯示第1-3行LOOK AL

16、L - 顯示整個(gè)模型2)修正模型。如果需要對(duì)問(wèn)題中某變量系數(shù)進(jìn)行修正,可用ALTER命令。此時(shí),在LINDO的提示下需輸入相應(yīng)的變量所在的行號(hào),變量名,及新的系數(shù)值。此外下面兩種情況也可用ALTER命令:改動(dòng)約束條件的右端頂,可以將RHS(即right-hand side)做為變量名。改變約束條件中的不等號(hào)方向(如< 或 >),可以將DIR做為變量名。修改問(wèn)題還可用EXT命令(增加新的約束行), DEL命令(去掉一行), 和APPC命令(增加一個(gè)新的變量), 也可用EDIT編輯器。3)存儲(chǔ)模型如果輸入的問(wèn)題模型已經(jīng)不再需要改動(dòng),可用SAVE命令將它存入文件中。(此時(shí)LINDO會(huì)提示

17、你輸入一個(gè)文件名。)日后如需用到該問(wèn)題可用RETR命令提取。 4)鍵入GO命令可得到LP問(wèn)題的最優(yōu)解。如果想將計(jì)算結(jié)果直接輸出到某文件中,可在GO命令前先使用DIVERT命令,LINDO會(huì)提示你鍵入該輸出文件的文件名,此后鍵入GO命令,屏幕上只會(huì)顯示最優(yōu)的目標(biāo)函數(shù)值,其它結(jié)果都將存入輸出文件。GO命令執(zhí)行后,LINDO會(huì)問(wèn)你是否做敏感性分析,可看需要鍵入“Y”(YES)或“N” (NO). 如果沒(méi)什么錯(cuò)誤,求解就結(jié)束了??涉I入QUIT退出。 LINDO 中有下面三種命令可幫助使用者對(duì)LINDO的命令有更多的了解: HELP: 若HELP后面跟有具體命令, 則解釋該命令. 若單只一個(gè)HELP,

18、將會(huì)給出一般性的信息. CATEGORIES (可簡(jiǎn)寫為CAT): 只列出所有命令的類型目錄, 隨后可允許使用者有選擇地列出某個(gè)具體類型中的所有命令. COMMANDS ( 簡(jiǎn)寫為COM) COM: 按類型列出所有有效的命令, 例如輸入(INPUT)型命令, 輸出(OUTPUT)型命令, 等等.下面即是一個(gè)具體應(yīng)用的例子: (可參照上述使用步驟)首先輸入問(wèn)題: (或用命令RETR讀取LINDO目錄下的例子文件DAKOTA) MAX 60 DESKS + 30 TABLES + 20 CHAIRS SUBJECT TO 2) 8 DESKS + 6 TABLES + CHAIRS <= 4

19、8 3) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 20 4) 2 DESKS + 1.5 TABLES + 0.5 CHAIRS <= 8 5) TABLES <= 5 END 問(wèn)題求解:GO LP OPTIMUM FOUND AT STEP 2 OBJECTIVE FUNCTION VALUE 1) 280.00000 VARIABLE VALUE REDUCED COST DESKS 2.000000 .000000 TABLES .000000 5.000000 CHAIRS 8.000000 .000000 ROW SLACK OR SU

20、RPLUS DUAL PRICES 2) 24.000000 .000000 3) .000000 10.000000 4) .000000 10.000000 5) 5.000000 .000000 NO. ITERATIONS= 2DO RANGE(SENSITIVITY) ANALYSIS? 隨后鍵入"Y" 表示同意做敏感性分析: RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREA

21、SE DESKS 60.000000 20.000000 4.000000 TABLES 30.000000 5.000000 INFINITY CHAIRS 20.000000 2.500000 5.000000 RIGHT HAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 48.000000 INFINITY 24.000000 3 20.000000 4.000000 4.000000 4 8.000000 2.000000 1.333333 5 5.000000 INFINITY 5.000

22、000 2·3計(jì)算結(jié)果顯示及敏感性分析 仍以上面的問(wèn)題DAKOTA為例,下面給出其結(jié)果的一般注釋:“LP OPTIMUM FOUND AT STEP2”表示 LINDO在(用單純形法)兩次迭代或旋轉(zhuǎn)后得到最優(yōu)解。 “OBJECTIVE FUNCTION VALUE 280.000000“表示最優(yōu)目標(biāo)值為280. “VALUE”給出最優(yōu)解中各變量的值。例. Dakota 問(wèn)題中需造2個(gè)(書桌)desks, 0個(gè)(桌子)tables, 和8個(gè)(椅子) chairs. “SLACK OR SURPLUS”給出松馳變量的值。上例中: s1= 第2行松馳變量 =24 s2= 第3行松馳變量 =

23、0 s3= 第4行松馳變量 =0 s4= 第5行松馳變量 =5 “REDUCED COST” 出最優(yōu)單純形表中第0行中變量的系數(shù) ( max型問(wèn)題). 其中基變量的reduced cost值應(yīng)為0,對(duì)于非基變量 Xj, 相應(yīng)的 reduced cost值表示當(dāng)Xj 增加一個(gè)單位時(shí)目標(biāo)函數(shù)減少的量。 另外,當(dāng)你執(zhí)行TABLEAU命令后,LINDO會(huì)顯示單純形表。 在下表中我們可看到, 基向量為BV=s1, Chairs, DESKS, s4, 注意,在此例中,SLK5對(duì)應(yīng)的是s4. ART是人工變量(artificial variable)。ART就是相應(yīng)的目標(biāo)值z(mì); 這樣 z+ 5TABLES

24、 +10s2+10s3=280。:TABLEAU THE TABLEAU ROW (BASIS) DESKS TABLES CHAIRS SLK 2 SLK 3 1 ART .000 5.000 .000 .000 10.000 2 SLK 2 .000 -2.000 .000 1.000 2.000 3 CHAIRS .000 -2.000 1.000 .000 2.000 4 DESKS 1.000 1.250 .000 .000 -.500 5 SLK 5 .000 1.000 .000 .000 .000 ROW SLK 4 SLK 5 1 10.000 .000 280.000 2

25、-8.000 .000 24.000 3 -4.000 .000 8.000 4 1.500 .000 2.000 5 .000 1.000 5.000 敏感性分析 使用LINDO時(shí), 結(jié)果輸出中會(huì)提供敏感性分析. 這一信息一般包含于兩個(gè)標(biāo)題之下, 其一是REDUCED COSTS, 另一個(gè)是DUAL PRICES. 它們分別表示了當(dāng)變量或約束條件有微小變動(dòng)時(shí), 目標(biāo)函數(shù)的變化率. 在輸出結(jié)果中對(duì)應(yīng)于每個(gè)變量都有一個(gè)REDUCED COST, 若其數(shù)值為x, 表示對(duì)應(yīng)的變量為零時(shí), 若增加1 個(gè)單位, 目標(biāo)函數(shù)將減少x 個(gè)單位. 輸出結(jié)果中對(duì)應(yīng)于每一個(gè)約束也都有一個(gè)DUAL PRICE. 若其

26、數(shù)值為x, 表示對(duì)應(yīng)約束中不等式右端項(xiàng)若減少1 個(gè)單位, 目標(biāo)函數(shù)將增加x 個(gè)單位. 如果REDUCED COST或DUAL PRICE 的值為0, 表示微小擾動(dòng)不影響目標(biāo)函數(shù). 有時(shí), 通過(guò)分析DUAL PRICE, 也可對(duì)產(chǎn)生不可行問(wèn)題的原因有所了解.2·4 注意事項(xiàng):1). 進(jìn)入LINDO后, ":" 表示LINDO 已準(zhǔn)備接受一個(gè)命令.2) . LINDO 中已假定所有變量非負(fù). 變量名不能超過(guò)8個(gè)字符。3) 如要輸入 <= 或 >= 型約束, 相應(yīng)以< 或 >代替即可. 4) . LINDO不允許變量出現(xiàn)在一個(gè)約束條件的右端. 5

27、) 目標(biāo)函數(shù)及各約束條件之間一定要有空格分開. 6) 一般LINDO中不能接受括號(hào)( )和逗號(hào)"," , 例:400(X1+X2)需寫為400X1+400X2; 10,000需寫為10000.7). EDIT 命令調(diào)用一個(gè)全屏幕編輯器,可對(duì)當(dāng)前模型進(jìn)行全屏幕編輯. 編輯完成后用“Esc” 鍵保存當(dāng)前修改,退出全屏幕編輯器;此時(shí)若模型有錯(cuò)誤,則要求改正錯(cuò)誤后再退出。用“Ctrl + Break” 鍵廢棄當(dāng)前修改,退出全屏幕編輯器。8). LINDO 有 DEL, EXT,及 ALTER等其它編輯命令, 雖然全屏幕編輯器EDIT 使這些命令用處減少了, 但 DEL 在大塊地清除

28、一個(gè)模型時(shí)是有用的, 而ALTER可允許做全局性的替換.9). LOOK 命令會(huì)為你在屏幕上顯示你的問(wèn)題(EDIT 也可如此).10). 如想獲得敏感性分析可用RANGE 命令.11). SAVE 命令用來(lái)存儲(chǔ)一個(gè)問(wèn)題模型到文件中, RETR或TAKE 命令用來(lái)讀取一個(gè)以文件存儲(chǔ)的模型. TAKE命令還可用于解讀一個(gè)以文本格式存儲(chǔ)的LINGO 格式的問(wèn)題模型.12). DIVERT 會(huì)導(dǎo)致大多數(shù)信息被輸送到文件中, 而只有少量信息被傳送到屏幕. RVRT 用于結(jié)束 DIVERET. 如果你divert 到一個(gè)名為 PRN的文件, 結(jié)果將被直接傳到打印機(jī).13)LINDO文件中常有注釋間雜于各命

29、令(COMMANDS)之中, 前面注有!符號(hào). 例如: ! This is a comment. 14)LINDO將目標(biāo)函數(shù)所在行作為第一行,從第二行起為約束條件。行號(hào)自動(dòng)產(chǎn)生,也可以人為定義行號(hào)或行名。行名和變量名一樣,不能超過(guò)8個(gè)字符。15)數(shù)值均衡化及其它考慮 LINDO 不能將LP 中的矩陣進(jìn)行數(shù)值均衡化. 為了避免數(shù)值問(wèn)題, 使用者應(yīng)自己對(duì)矩陣的行列進(jìn)行均衡化. 一個(gè)原則是, 系數(shù)矩陣中非零元的絕對(duì)值不能大于100,000 或者小于.0001. 如果LINDO 覺(jué)得矩陣元素之間很不均衡, 將會(huì)給出警告.16)量綱分析與一般錯(cuò)誤的避免 當(dāng)你將一個(gè)實(shí)際問(wèn)題寫成一個(gè)數(shù)學(xué)表達(dá)式時(shí), 有可能式

30、子中會(huì)帶有某些錯(cuò)誤. 這些錯(cuò)誤主要有以下幾類: 1.簡(jiǎn)單的印刷錯(cuò)誤 2.表達(dá)式的原理錯(cuò)誤 3.近似誤差第一類錯(cuò)誤雖只是抄寫一類問(wèn)題造成的, 但當(dāng)問(wèn)題規(guī)模較大時(shí), 要搜尋它們也是一個(gè)困難的問(wèn)題; 第二類錯(cuò)誤也往往是建模不當(dāng)造成的. 如何避免這些錯(cuò)誤? 對(duì)第一類錯(cuò)誤, 主要任務(wù)在于如何找到它們. 在LINDO 中有一些可幫助尋找錯(cuò)誤的功能. 其中之一就是PICTURE 命令, 它的功能是可以將表達(dá)式中的系數(shù)通過(guò)列表顯示出來(lái). 例: MIN 5 A0 +6 A1 +2 A2 +4 B0 +3 B1 +7 B2 +2 C0 +9 C1 +8 C2 SUBJECT TO 2) A0 +A1 +A2<

31、;=8 3) B0 +B1 +B2<=9 4) A0 +A1 +A2<=6 5) A0 +B0 +CO =6 6) A1 +B1 +C1 =5 7) A2 +B2 +C2 =9 END 用PICTURE可得到 A A A B B B C C C C 0 1 2 0 1 2 0 1 2 O 1: 5 6 2 4 3 7 2 9 8 MIN 2: 1 1 1 <8 3: 1 1 1 <9 4: 1 1 1 <6 5: 1 1 1 =6 6: 1 1 1 =5 7: 1 1 1 =9 從上表可以發(fā)現(xiàn), 最后一列中的 1可能放錯(cuò)位置了. 其實(shí)原因只不過(guò)在表達(dá)式5) 行中C

32、0與CO弄混了. 另外, 使用者有時(shí)從不合理的計(jì)算結(jié)果中也可發(fā)現(xiàn)第1 類的錯(cuò)誤.第二類的表達(dá)式錯(cuò)誤有許多類. 這類常由新手造成的問(wèn)題可通過(guò)量綱分析(dimensional analysis)暴露出來(lái). 所謂量綱分析, 就是檢查一下表達(dá)式中各量的單位是否一致.2.5 LINDO命令 LINDO 中有下面三種命令可幫助使用者對(duì)LINDO的命令有更多的了解: HELP CATEGORIES (可簡(jiǎn)寫為CAT) COMMANDS ( 簡(jiǎn)寫為COM) 功能如下: HELP: 若HELP后面跟有具體命令, 則解釋該命令. 若單只一個(gè)HELP, 將會(huì)給出一般性的信息. CAT: 只列出所有命令的類型目錄,

33、隨后可允許使用者有選擇地列出某個(gè)具體類型中的所有命令. COM: 按類型列出所有有效的命令, 例如輸入(INPUT)型命令, 輸出(OUTPUT)型命令, 等等. 下面按類型列出所有LINDO命令及簡(jiǎn)單的英文注釋如下(本文后附所有命令的詳細(xì)的中文注釋): 1. Information HELP Gives help in various situations COM Lists commands by category LOCAL Give info specific to your local installation CAT Lists categories of commands 2.

34、Input MAX Start natural input MIN Start natural input RETR Retrieve old problem from file RMPS Retrieve an MPS format file TAKE Take terminal input from a file LEAVE Undo the previous TAKE 3. Display LOOK Print (part of )problem in natural format SOLUTION Print standard solution report RANGE Print R

35、ANGE analysis report PICTURE Print logical PICTURE of matrix SHOCOLUMN Display a column of the problem TABLEAU Print current tableau NONZEROES Print nonzero variables solution report BPICTURE Print logical PICTURE of basis 4. File output SAVE Save current problem to file DIVERT Divert output to file

36、 RVRT Revert output to terminal SMPS Save current problem in MPS format 5. Solution GO Go to solve the problem PIVOT Do the next simplex pivot 6. Problem editing ALTER Alter some element of current problem EXT Extend problem by adding constraints DEL Delete a specified constraint SUB Enter a simple

37、upper bound for a var. APPC Append a new column in the formulation 7. Integer programs INT Identify integer variables 8. Conversational Parameters WIDTH Set terminal width TERSE Set conversational style to terse VERBOSE Set conversational style to verbose (default) BATCH Tell LINDO that this is a ba

38、tch run 9. User supplied subroutines USER Call user written subroutine 10. Miscellaneous INVERT Invert current basis to get more accurate answers STAT Print matrix summary statistics BUG What to do if you find a bug 11. Quit QUIT Quit *LINDO 常用命令注釋表*LINDO 軟件包可以用來(lái)求解以自然格式輸入的線性規(guī)劃, 整數(shù)規(guī)劃及二次規(guī)劃問(wèn)題. 下面即是一個(gè)常見(jiàn)

39、問(wèn)題的有效輸入格式: MAX 2X + 3Y ST 4X + 5Y < 9 7X + 6Y < 13 END GO進(jìn)入LINDO后, 屏幕上出現(xiàn) ":", 表示進(jìn)入可接受命令的狀態(tài). 此時(shí)鍵入LINDO的有效命令即可執(zhí)行. 需要時(shí), 可鍵入 "COMMANDS"即可得到LINDO的所有有效命令. 如需得到其中某個(gè)命令的幫助信息, 可鍵入 "HELP name" , 其中 "name"為該命令名. 例如,初學(xué)者通過(guò)鍵入 "HELP MAX"可以了解怎樣輸入一個(gè)LP問(wèn)題的數(shù)學(xué)表達(dá)式, .

40、 如要結(jié)束一個(gè)臨時(shí)的問(wèn)題輸入, 只需鍵入"END"或一個(gè)回車符, 即可回到命令狀態(tài)模式":". 欲知某命令的具體功效,執(zhí)行該命令即可. 可求解的問(wèn)題規(guī)模: 輸入項(xiàng) 最大規(guī)模-非零元 4000 列 201 行 101 整型變量 200 變量(行)名字符數(shù) 8* LINDO 命令類型目錄. 欲知某個(gè)具體命令的功能, 鍵入 "HELP " + " 命令名". 1)信息類命令 HELP COM LOCAL CAT TIME 2)輸入類命令 MAX MIN RETR RMPS TAKE LEAV RDBC FBR 3)演示類

41、命令 PIC TABL LOOK NONZ SHOC SOLU RANGE BPIC CPRI RPRI 4)文件輸出類命令 SAVE DIVE RVRT SMPS SDBC FBS 5)問(wèn)題求解類命令 GO PIV 6)編輯類命令 ALT EXT DEL SUB APPC SLB FREE EDIT 7)退出命令 QUIT 8)與整數(shù), 二次型, 及參數(shù)規(guī)劃相關(guān)的命令 INT QCP PARA POSD TITAN BIP GIN IPTOL 9)交互式參數(shù)命令 WIDTH TERS VERB BAT PAGE PAUS 10)使用者應(yīng)用程序 USER 11)其它 INV STAT BUG

42、DEB SET TITL *LINDO命令中文注釋如下(按分類序):1)INFORMATION HELP COM LOCAL CAT TIME HELP 命令: 鍵入"HELP"會(huì)顯示出LINDO的一般信息. 通過(guò)鍵入"HELP command", LINDO可幫你了解某個(gè)具體的命令 , 其中 "command"是命令名. COMMAND 命令: 給出 LINDO 命令類型目錄. LOCAL 命令: 給出該程序的版本信息. CATEGORY 命令: 列出LINDO 命令類型,并可按提示有選擇地給出某類型下的所有命令. TIME 命令:

43、 顯示 執(zhí)行LINDO后累計(jì)的 CPU時(shí)間.-2)INPUT MAX MIN RETR RMPS TAKE LEAV RDBC FBR MAX/MIN 命令: 用于輸入一個(gè)包含目標(biāo)函數(shù),約束條件在內(nèi)的 LP 模型. 輸入程序如下: 輸入"MAX" ( 或"MIN" ), 繼之以自然格式的目標(biāo)函數(shù)作為第一行;再 輸入 "SUBJECT TO"(可簡(jiǎn)寫為 "ST"), 后面跟約束條件行. 最后, 輸入"END" 回到命令狀態(tài)模式. 以后只需給出"GO" 命令即可開始優(yōu)化求解過(guò)程.

44、 其中, 變量名可以由18個(gè)字母或數(shù)字型的字符構(gòu)成, 且第一個(gè)字符必須是字母. 變量系數(shù)不能是指數(shù)型, 例如: .258E+29形式的系數(shù)是不允許的. 任一系數(shù)位數(shù)為 6.5 DIGITS. 關(guān)鍵詞 ("MAX","ST","END".) 及各行之間必須用一個(gè)或多個(gè)空格分隔開. 空格可以出現(xiàn)在一行之中, 但不能出現(xiàn)在變量名中. 一個(gè)回車符等價(jià)于一個(gè)空格. 下面是同一問(wèn)題的兩種合法的輸入方式: 1) MIN 2X+3Y SUBJECT TO -5X-2Z<=10 +10X - Y >5 END 2) MIN 2X + 3 Y ST -5X-2Z < 10 10X -Y>+5 END 另外, 任一約束可自由選擇一個(gè)名稱來(lái)代替行號(hào), 例如: DEMAND) 10X - Y > 5 RETRIEVE 命令: 執(zhí)行該命令可直接從硬盤上獲得一個(gè)問(wèn)題模型. LINDO 會(huì)為你提示可供選擇的具體的文件名或 UNIT NUMBER. 能被RETRIEVE的模型文件必須是以前經(jīng) "SAVE" 命令存入的. RMPS 命令: 轉(zhuǎn)化一個(gè)MPS 格式文件, 形成問(wèn)題輸入. 該MPS格式請(qǐng)見(jiàn)IBM MPSX 手冊(cè) TAKE 命令: 用

溫馨提示

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

評(píng)論

0/150

提交評(píng)論