LINDO使用方法_第1頁
LINDO使用方法_第2頁
LINDO使用方法_第3頁
LINDO使用方法_第4頁
LINDO使用方法_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章 LINDO軟件的基本使用方法,原書相關(guān)信息 謝金星, 薛毅編著, 清華大學(xué)出版社, 2005年7月第1版. ,優(yōu)化建模與LINDO/LINGO軟件,2.6* LINDO命令窗口,內(nèi)容提要: LINDO命令窗口概述 INFORMATION(信息類命令) INPUT (輸入類命令) DISPLAY (顯示類命令) OUTPUT (輸出類命令) SOLUTION (求解類命令) PROBLEM EDITING (編輯類命令) QUIT (退出類命令) “IP、QCP、PRP” (整數(shù)、二次與參數(shù)規(guī)劃類命令) CONVERSATIONAL PARAMETERS (對話類命令) USER SUP

2、PLIED ROUTINES (用戶過程類命令) MISCELLANEOUS (其他命令),LINDO命令窗口概述,前面介紹的基本上是在Windows下拉式菜單模式下驅(qū)動LINDO運行,使用起來相當(dāng)方便。LINDO還提供了另一種運行模式,即“Command-Line”(命令行)模式。所謂“命令行”模式,即通過在字符方式下輸入一行一行的命令來驅(qū)動LINDO運行,因此每個命令也稱為“行命令”。這種操作方式很像老式DOS操作系統(tǒng)和UNIX操作系統(tǒng)下的運行方式。在Windows操作系統(tǒng)下,相信很少有人會選擇使用“命令行”模式,但為了對LINDO軟件介紹的完整性,這里還是簡單介紹一下。,通過菜單命令“W

3、indow|Open Command Window (Alt+C)”打開命令窗口,在命令窗口下操作,命令窗口下的提示符是“:”,用戶在“:”后面可以輸入各種LINDO的有效命令進行操作,輸出也馬上顯示在命令窗口。,在命令窗口下, 只需鍵入 COMMANDS或“COM”(命令),就會看到LINDO的所有有效行命令。,如果某個命令較長,通??梢灾粚懗銮懊娴娜舾蓚€字母,但注意不要與其他命令重名。,2.6.1 INFORMATION(信息類命令),HELP 命令: 鍵入“HELP”會顯示出LINDO的一般幫助信息。 鍵入HELP name, LINDO可幫你了解某個具體的命令 , 其中 name是命令

4、名。,COMMAND(COM)命令: 給出按類型分類的LINDO 命令目錄。 (注:括號內(nèi)表示的是該命令的最簡單的簡寫形式,下同),LOCAL(LOC)命令: 給出LINDO程序的版本信息。,CATEGORY(CAT)命令: 列出LINDO 命令類型, 并可按提示(序號)有選擇地給出某類型下的所有命令。,TIME 命令: 顯示本次啟動LINDO運行后累計的時間。,DATE 命令: 顯示當(dāng)前的日期和時間。,2.6.2 INPUT (輸入類命令),MAX/MIN 命令: 用于輸入一個包含目標(biāo)函數(shù),約束條件在內(nèi)的 LP 模型.,輸入過程如下: 在提示符“:”下輸入MAX ( 或MIN ), 繼之以自

5、然格式的目標(biāo)函數(shù)作為第一行; 再輸入 “SUBJECT TO”或“SUCH THAT“(可簡寫為 ”ST”或“S.T.”), 后面跟約束條件行。 每次回車后將顯示“?”提示符。 最后, 輸入END 回到命令狀態(tài)模式.,例:,下面是同一問題的兩種合法的輸入方式:,1) MIN 2X+3Y SUBJECT TO -5X-2y5 END,2) MIN 2X + 3 Y ST -5x-2Y +5 END,注: 變量名可以由18個字母或數(shù)字型的字符構(gòu)成, 且第一個字符必須是字母。變量系數(shù)不能是指數(shù)型, 例如: .258E+29形式的系數(shù)是不允許的。任一系數(shù)的整數(shù)位數(shù)最多為9位,小數(shù)位數(shù)最多為五位。 關(guān)鍵

6、詞 (“MAX”,“ST”,“END”.) 及各行之間必須用一個或多個空格分隔開。空格可以出現(xiàn)在一行之中, 但不能出現(xiàn)在變量名中。 一個回車符等價于一個空格。 任一約束可自由選擇一個名稱來代替行號, 例如: DEMAND) 10X - Y 5,RETRIEVE(RETR)命令:執(zhí)行該命令可直接從硬盤上的文件中獲得一個LINDO格式的模型。LINDO 會為你提示可供選擇的具體的文件名。 能被RETRIEVE的模型文件必須是以前經(jīng)過“SAVE” 行命令存入的文件,或者經(jīng)過FILE|SAVE(或SAVE AS)菜單命令以LINDO PACKET格式存入的模型, 后綴通常是“LPK”, (即LINGO

7、壓縮格式文件);而不能是LINDO文本格式文件(后綴通常是“LTX”).,RMPS 命令:讀取一個MPS 格式文件, 并轉(zhuǎn)化成LINDO格式的模型。 LINDO 會為你提示可供選擇的具體的文件名。該模型文件必須是MPS 格式文件(關(guān)于MPS格式文件的說明見附錄),如以前經(jīng)過“SMPS”命令存入的文件,或經(jīng)過FILE|SAVE(或SAVE AS)菜單命令以MPS格式存入的模型(后綴通常是“MPS”,即MPS格式文件).,TAKE 命令: 用該命令可執(zhí)行由一系列LINDO命令組成的文本文件(稱為LINDO命令的腳本文件)。該文件內(nèi)容只能同終端輸入一致, 例如文件中不能有行號等,且文件中最后一個命令

8、應(yīng)為“LEAVE”。參見本章2.7節(jié)的例子。,LEAVE 命令: 該命令表示結(jié)束一個可由“TAKE”行命令或“FILE|TAKE COMMANDS”菜單命令訪問的文件的輸入。,RDBC 命令: 從(數(shù)據(jù)庫格式)文件中讀出當(dāng)前模型的一個初始解。 該解應(yīng)該是以前由SDBC 命令存入文件中的。,FBR 和 FINS命令: FBR 命令從一個由 FBS 命令建立的文件中得到一個(可行)基,F(xiàn)INS 命令從一個MPS格式的文件中得到一個(可行)基。此時一個與該(可行)基匹配的LP模型必須是內(nèi)存中已有的。,2.6.3 DISPLAY (顯示類命令),PICTURE(PIC)命令: 給出一個模型中系數(shù)矩陣的

9、邏輯示意圖,參見 Report|Basis Picture菜單命令。該命令有助于檢查一個模型的輸入是否正確。,Z .000000 - .000001 Y .000001 - .000009 X .000010 - .000099 W .000100 - .000999 V .001000 - .009999 U .010000 - .099999 T .100000 - .999999 A 1.000001 - 10.000000 B 10.000001 - 100.000000 C 100.000001 - 1000.000000 D 1000.000001 - 10000.000000 E

10、 10000.000001 - 100000.000000 F 100000.000001 - 1000000.000000 G 1000000,邏輯示意圖中用字母代表的數(shù)字大小:,TABLEAU (TABL)命令: 顯示當(dāng)前單純形表(參見菜單命令Reports|TABLEAU)。,LOOK 命令: 可用“LOOK”查看當(dāng)前問題模型的全部或部分。鍵入 “LOOK ALL”可看全部問題模型。鍵入 “LOOK row1,row2” 或 “LOOK row1-row2” 可看行row1至行row2。 模型中系數(shù)只能有5個小數(shù)位, 最多有9 位整數(shù),任何更大的數(shù)只能顯示為“*”。,NONZEROES(

11、NONZ)命令: 顯示一個簡略的解答報告, 其中只顯示非零的變量及相應(yīng)的行。 “NONZ”命令并不能求解問題, 所以需首先執(zhí)行“GO” 命令, 且“NONZ”只有在設(shè)置了“TERSE”(簡潔型)交互型模式后才能起作用。,SHOCOLUMN(SHOWC)命令: 鍵入 SHOC variable-name可顯示出變量variable-name 的系數(shù)列。,SOLUTION(SOLU)命令: 顯示解的標(biāo)準(zhǔn)報告。,RANGE 命令: 顯示關(guān)于 RHS(右端項)及OBJ(目標(biāo)函數(shù)費用系數(shù))的范圍報告(敏感性分析)。,BPICTURE (BPIC)命令: 按最后一次轉(zhuǎn)置/三角化的行序顯示當(dāng)前(可行)基的邏

12、輯圖。參見 Report|Basis Picture菜單命令。,CPRI和RPRI 命令: 可選擇地顯示列 (用CPRI命令)或 行(用RPRI命令)的有關(guān)信息。,CPRI的命令格式如下: CPRI print-list : conditional-expression 例如, 執(zhí)行 CPRI N P : N = M%X .AND. D 0 將顯示滿足下列條件的列(變量)的名稱(N:NAME)及原始值(P:PRIMAL VALUE), 其條件為:列名(N)的第一個字符 = M, 第二、三個字符任意,第四個字符 = X, 且有一對偶值(DUAL VALUE)大于零。如果print-list一項被

13、省略了, 將只顯示匹配的數(shù)目。,N = NAME(名稱) P = PRIMAL VALUE 原始值(相當(dāng)于行的松馳量) D = DUAL VALUE (相當(dāng)于列的REDUCED COST ) R = RIM (列對應(yīng)的目標(biāo)函數(shù)的系數(shù); 對于行,則表示右端項) U = SIMPLE UPPER BOUND(簡單上界) L = SIMPLE LOWER BOUND(簡單下界) T = 變量類型 (C, I, or F; ) Z = 一列或一行中的非零元. % =名稱(N)中的不確定字符(任意字符),print-list (顯示列表)及 conditional-expression(條件表達式) 中

14、有關(guān)列/行特征的常用符號及意義:,其它一些有用的符號有: 算術(shù)運算符 邏輯運算符 關(guān)系運算符 順序運算符 + - / * .AND. = # ( ) LOG( ) EXP( ) .OR. ABS( ) .NOT.,DMPS 命令: 以MPS(數(shù)學(xué)規(guī)劃系統(tǒng)) 格式顯示當(dāng)前解答報告.,PPIC 命令: 交換模型中的行或列,給出模型中系數(shù)的報告,使得非零數(shù)盡量靠近主對角線。,LKLG 命令: LKLG是LOOK LINGO的意思,以LINGO格式顯示模型(LINGO格式將在下一章介紹)。,2.6.4 OUTPUT (輸出類命令),SAVE 命令: 將當(dāng)前的問題模型用LINGO 壓縮格式存儲到一個文件

15、中。該問題模型可由“RETR”命令重新提取。,DIVERT(DIVE)命令: 要求你提供一個文件名, 隨后所有的輸出(如解集報告等), 將轉(zhuǎn)至該文件中, 直至你給出一個 RVRT (REVERT) 命令為止.,RVRT 命令: 重新使以后的所有結(jié)果輸出都回到終端。該命令的作用與“DIVERT” 命令相反。,SMPS 命令: 將當(dāng)前的問題模型用MPS 格式存儲到文件中。,SDBC 命令: 用數(shù)據(jù)庫格式存儲一個解。變量名稱, 取值大小, REDUCED COST, 變量類型,上界(SUB)和下界(SLB)分別以(A8,2G15.8,A1,2G15.8) 格式存儲(這里A表示字符型,G表示數(shù)值型)。

16、,FBS 命令: 將當(dāng)前的(可行)基按LINDO格式存入一個文件。若重新提取, 可參見 FBR 命令,FPUN 命令: 將當(dāng)前的(可行)基以MPS格式存入一個文件。若重新提取, 可參見 FINS 命令。,SMPN 命令: 將當(dāng)前的模型以擴展的MPS格式存入一個文件,該格式可以包括BV, LI,UI等擴展。,2.6.5 SOLUTION (求解類命令),GO 命令: 求解當(dāng)前的問題模型。該模型在求解過程中不會被改變。 若在GO之后有一正整數(shù), 表示用單純形法迭代旋轉(zhuǎn)(PIVOT)的次數(shù),PIVOT (PIV) 命令: 演示單純形方法的每一步旋轉(zhuǎn)迭代(PIVOT STEP)。 如果鍵入“PIVOT

17、”+變量名, 則該變量會進入基。 變量名后還可給出該變量所在的行號,即指定旋轉(zhuǎn)元。,GLEX 命令: 按字典序?qū)δ繕?biāo)進行優(yōu)化。先優(yōu)化第1個目標(biāo),然后把這個 目標(biāo)的值固定在最優(yōu)值,對第2個目標(biāo)進行優(yōu)化;依此類推。 這時要求按照一定的特殊形式輸入一個多目標(biāo)模型。,2.6.6 PROBLEM EDITING (編輯類命令),ALTER (ALT)命令: 用ALTER可編輯當(dāng)前的問題模型. 使用格式為: ALTER row-id var-id. row-id 是需要改動的行的行號, “var-id”是需要改動變量系數(shù)的變量名。 隨后, LINDO會提示你輸入一個新的值. 如果想改動RHS(右端項),

18、DIRECTION(不等號方向) 或某個行的名稱,var-id一項可用 RHS, DIR, 或 NAME。,注: - 對目標(biāo)函數(shù)而言, 有效的 DIRECTIONS有MAX 或MIN; - 對所有其它行可用 ; - 請用DELETE命令, 而勿用ALTER來消去一行。,EXTEND (EXT)命令: 可為一個以前定義的問題模型增添約束行。 輸入新的行, 不要再鍵入MAX, MIN或SUBJECT TO這樣的關(guān)鍵詞。新的行將會被附在原問題模型的最后,鍵入END結(jié)束。,DELETE (DEL)命令: 鍵入DELETE row-id可從當(dāng)前的問題模型中消除行 row-id . 也可 鍵入 DELET

19、E row1 row2 消去行row1 至行row2。DELETE ALL 可用來清除當(dāng)前的整個問題模型。,FREE、SUB、SLB 命令: 分別設(shè)置自由變量、變量上界、下界,與模型窗口下的功能和使用方法類似。,APPC 命令: 是APPEND COLUMN的意思。鍵入 APPC var-id 可為問題模型添加 以var-id命名的新的一列。隨后是關(guān)于該對應(yīng)變量出現(xiàn)的行/系數(shù)值。 每行有一對行/系數(shù)值; 行和系數(shù)值要用一個空格分開。 輸入0作為行名可結(jié)束。若以RHS為列名, 將使輸入成為新的 RHS(右端項)。,2.6.7 QUIT (退出類命令),QUIT 命令: 該命令用于退出LINDO系

20、統(tǒng)(不僅僅是退出命令窗口?。H魏挝创鎯ο聛淼膯栴}模型和其他數(shù)據(jù)會被丟失!,2.6.8 INTEGER QUADRATIC AND,INTEGER (INT)和 GIN 命令:GIN命令可將問題模型中的變量標(biāo)為整數(shù)型,INT 命令可將問題模型中的變量標(biāo)為 0/1型。 第一種格式為“INT(或GIN) n” , 其中 n 是整型變量的個數(shù),此時LINDO 要求整型變量應(yīng)放在問題模型的最前面。 第二種格式為 INT(或GIN) var-id , 其中 var-id是變量名。這與模型窗口中的功能和使用方法類似。,PARAMETRIC PROGRAMS(整數(shù)、二次與參數(shù)規(guī)劃類命令),QCP 命令: Q

21、CP 用于定義一個二次規(guī)劃問題。 問題通過在實際約束前增加有關(guān)變量的一階條件轉(zhuǎn)化為線性 (互補)型。 這需要我們?yōu)槊恳粋€實際約束增加一個對偶變量。要使用QCP, 第一行(目標(biāo)函數(shù))只用于給出相應(yīng)變量的順序。 QCP用于指出第一個實際約束的行號。,PARA 命令: (參見菜單命令“Reports|Parametrics”) 鍵入PARA row-id new-rhs 可對行 row-id的RHS(右端項) 進行參數(shù)分析. PARA 會將該行RHS(右端項)的當(dāng)前值改為新值new-rhs, 同時演示出在由此方式改變?nèi)我?可行)基產(chǎn)生的最優(yōu)目標(biāo)值。在此之前, 該問題需被優(yōu)化過。,POSD 命令: (

22、參見菜單命令“Reports|Positive Definite”) 檢驗當(dāng)前二次規(guī)劃問題中二次型對應(yīng)的約束矩陣是否正定。,TITAN 命令: 該命令可收緊一個LP/IP 問題模型(加強條件),是LINDO進行預(yù)處理的一部分。,第一, 它將收緊上界, 例如: 2X + Y 12 -X + 2Y 3 執(zhí)行TITAN 命令后可將上界減為: SUB X 6 SUB Y 4.5,第二, 它會收緊整型變量的系數(shù), 例如除上述條件外另外有條件: 30W - 3X + 2Y 3 其中 W 是 0/1型, 那么執(zhí)行TITAN 命令收緊后為: 21W - 3X + 2Y 3,BIP 命令: (在菜單命令EDIT

23、|OPTIONS中也有此功能) 鍵入“BIP bound-val” 會將“bound-val”標(biāo)識為“籬笆值”,即整數(shù)解的目標(biāo)函數(shù)值的一個界。此后若分枝定界樹中某一分枝的最佳值比“籬笆值”還壞,該分枝會剪掉。例如, 任何已知的可行整數(shù)解對應(yīng)的目標(biāo)值都可以看作一個 BIP 。,IPTOL 命令: (在菜單命令EDIT|OPTIONS中也有此功能) 格式為: IPTOL F, 其中 F 是一個非負分數(shù)(百分數(shù))。當(dāng)搜索另一個IP解時, 只考慮比目前最好的解至少優(yōu) 100F%的解。,2.6.9 CONVERSATIONAL PARAMETERS (對話類命令),WIDTH和PAGE 命令: (在菜單

24、命令EDIT|OPTIONS中也有此功能) 鍵入WIDTH n可告知LINDO 你的終端行寬為 n 字符。 例如: 也許你需要用 WIDTH 132 告訴LINDO你使用的是寬行打印紙。 鍵入PAGE n設(shè)置幀幅(每頁多少行)。 例如, PAGE 24 將使每屏幕顯示 24行出現(xiàn)一次暫停。 觸擊一次CR(回車)將顯示下一幅。 PAGE 0 表示不設(shè)限制, 這對于硬拷屏是適宜的。,TERSE (TERS)和VERBOSE (VERB)命令: (在菜單命令EDIT|OPTIONS中也有此功能) TERS改變對話方式為TERSE(簡明)型。例如, 它將不會自動地顯示模型的最優(yōu)解報告,使用者需用NON

25、Z, CPRI, 或RPRI等命令來瀏覽解。 命令VERBOSE可消除 TERSE狀態(tài),令對話方式回到詳細型狀態(tài)(缺省狀態(tài)) 。,BATCH (BAT)和 PAUSE (PAUS) 命令: BATCH設(shè)置對話方式到 BATCH(批處理)狀態(tài)模式。 分批運行任務(wù),可使輸出更具可讀性,如發(fā)生錯誤,則可在第一個主要錯誤處停止運行。 PAUSE表示暫停直至用戶鍵入下一個回車,PAUSE后的內(nèi)容(在同一行)被顯示到終端上。 這兩個命令常用于命令腳本文件中(命令腳本文件可用TAKE命令讀出來運行)。,2.6.10 USER SUPPLIED ROUTINES (用戶過程類命令),USER 命令: 在LINDO命令模式下鍵入“USER”只是顯示一個提示信息,沒有什么其他用處。實際上,LINDO中提供了與其它應(yīng)用程序開發(fā)工具(如Visual Basic,F(xiàn)ortran,C+,MATLAB等)的接口,有大量子過程可供用戶開發(fā)自己的應(yīng)用程序時調(diào)用,從而構(gòu)造一個問題模型、求解并獲得解的有關(guān)信息等。這對于利用LINDO來開發(fā)自己的應(yīng)用程序來說是非常有用的,詳細信息請讀者參閱LINDO API的使用手冊。,2.6.11 MISCELLANEOUS (其他命令),INVERT (INV) 命令: INVERTS當(dāng)前的(可行)基求逆。 通常將使結(jié)果更趨精確。,S

溫馨提示

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

評論

0/150

提交評論