版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章運籌學實驗軟件簡介及操作運籌學實驗目標和軟件概述LINDO軟件簡介Lingo軟件簡介WinQSB
軟件簡介MATLAB軟件簡介運籌學實驗目標和軟件概述
運籌學的定義:運籌學(OperationsResearch)是一門應用學科,至今還沒有統(tǒng)一的定義。莫爾斯(Morse)和金博爾(Kimball)曾對運籌學下定義:“為決策機構在對其控制下業(yè)務活動進行決策時,提供以數(shù)量化為基礎的科學方法。”《中國企業(yè)管理百科全書》中運籌學的定義:“運籌學運用分析、試驗、量化的方法,對經(jīng)濟管理系統(tǒng)中人、財、物(時間)等有限資源進行統(tǒng)籌安排,為決策者提供有依據(jù)的最優(yōu)方案(滿意方案),以實現(xiàn)最有效的管理?!边\籌學的發(fā)展我國古代有很多有關運籌學的思想方法的典故。例如,田忌賽馬、丁謂建宮等故事。運籌學作為一門現(xiàn)代學科是在第二次世界大戰(zhàn)期間發(fā)展起來的,早期主要用于研究軍事領域問題,成功地解決了當時許多重要的作戰(zhàn)問題。第二次世界大戰(zhàn)以后,運籌學得到了快速的發(fā)展,除軍事方面的應用研究外,其相繼在工業(yè)、農(nóng)業(yè)、經(jīng)濟和社會等領域應用,形成了許多分支,如數(shù)學規(guī)劃,圖與網(wǎng)絡,排隊論,存儲論,決策論,博弈論,等等。此外,計算機的迅猛發(fā)展和廣泛應用,使得運籌學的方法能解決大量經(jīng)濟管理中的決策問題,極大地推動了運籌學的應用與普及。今天,運籌學的應用已涉及服務、管理、規(guī)劃、決策、組織、生產(chǎn)、建設等諸多方面,甚至可以說,很難找出它涉及不到的領域。運籌學實驗目標和軟件概述
運籌學的特點:①運籌學已被廣泛應用于工商企業(yè)、軍事部門、民政事業(yè)等研究組織內的統(tǒng)籌協(xié)調問題,故其應用不受行業(yè)、部門的限制;②運籌學既對各種經(jīng)營進行創(chuàng)造性的科學研究,又涉及組織的實際管理問題,具有很強的實踐性;③它以整體最優(yōu)為目標,從系統(tǒng)的觀點出發(fā),力圖以整個系統(tǒng)最佳的方式來解決該系統(tǒng)各部門之間的利害沖突。運籌學解決實際問題一般要經(jīng)歷以下幾個步驟:闡述問題、建立模型、求解模型、解的檢驗和修改、解的實施。在實踐中,求解運籌學問題的主要算法是優(yōu)化算法。根據(jù)優(yōu)化算法理論發(fā)展與算法原型將現(xiàn)有的優(yōu)化算法分為兩大類:經(jīng)典優(yōu)化算法和啟發(fā)式優(yōu)化算法。這兩類優(yōu)化算法都是迭代算法。規(guī)模較小的部分問題,可通過手工計算的方法求解。問題規(guī)模較大時,計算量往往大得難以承受。有很多種計算機軟件可以用來求解如LINDO、Lingo、WinQSB、MATLAB等。實驗的內容主要包括線性規(guī)劃、整數(shù)規(guī)劃、運輸問題、目標規(guī)劃、動態(tài)規(guī)劃、圖與網(wǎng)絡、排隊論、決策論、博弈論等。運籌學的實驗目的:掌握應用計算機工具對運籌學模型優(yōu)化求解的方法步驟,熟悉各種運籌學優(yōu)化軟件的使用,特別是常見優(yōu)化軟件(如Lingo、WinQSB、MATLAB等)功能的使用。同時,通過熟悉優(yōu)化軟件的操作激發(fā)學習興趣,加深對運籌學基本理論的理解。運籌學實驗目標和軟件概述
運籌學實驗軟件概述:LINDO/Lingo:美國芝加哥大學的LinusSchrage教授于1980年前后開發(fā)了一套專門用于求解最優(yōu)化問題的軟件包,后來又對其進行了多年的不斷完善和擴充,并成立了LINDO系統(tǒng)公司(LINDOSystemsInc.)進行商業(yè)化運作,取得了巨大成功,這款軟件的主要產(chǎn)品有四種:LINDO、Lingo、LINDOAPI和What’sBest!LINDO(LinearInteractiveandDiscreteOptimizer)即“交互式的線性離散優(yōu)化求解器”,可以用來求解線性規(guī)劃(LinearProgramming,LP)和二次規(guī)劃(QuadraticProgramming,QP)問題。Lingo(LinearInteractiveandGeneralOptimizer)即“交互式的線性和通用優(yōu)化求解器”,它除具有LINDO軟件的全部功能外,還可以用于求解非線性規(guī)劃問題,也可以用于一些線性和非線性方程組的求解。LINDO軟件和Lingo軟件的最大特色在于,允許決策變量是整數(shù)(即整數(shù)規(guī)劃,包括0-1規(guī)劃),而且執(zhí)行速度很快。運籌學實驗目標和軟件概述
Lingo實際上還是最優(yōu)化問題的一種建模語言,包括許多常用的數(shù)學函數(shù),供使用者建立優(yōu)化模型時調用,并可以接收其他數(shù)據(jù)文件(如文本文件、Excel電子表格文件、數(shù)據(jù)庫文件等)此外,LINDO系統(tǒng)公司還提供了LINDO和Lingo軟件與其他開發(fā)工具(如C++和Java等語言)的接口軟件LINDOAPI(LINDOApplicationProgramInterface),因此能融入到用戶應用軟件的開發(fā)中去。What’sBest!軟件提供了LINDO和Lingo軟件與電子表格軟件(如Excel等)的接口,能夠直接集成到電子表格軟件中使用。因此,LINDO、Lingo軟件在教學、科研、工業(yè)、商業(yè)、服務等領域都得到了廣泛的應用。WinQSB:QSB是QuantitativeSystemsforBusiness的縮寫形式,早期的版本是在DOS操作系統(tǒng)下運行的,后來發(fā)展成為在Windows操作系統(tǒng)下運行的WinQSB軟件。該軟件是由美籍華人Yih-LongChang和KiranDesai共同開發(fā)的,可廣泛應用于解決管理科學、決策科學、運籌學及生產(chǎn)管理等領域的問題。該軟件界面設計友好,使用簡單,使用者很容易學會操作方法并用它來解決管理和商務問題,表格形式的數(shù)據(jù)錄入以及表格與圖形形式的輸出結果都給使用者帶來極大方便,同時使用者只需要借助于軟件中的幫助文件就可以學會每一步的操作。運籌學實驗目標和軟件概述
MATLAB:MATLAB是英文MatrixLaboratory(矩陣實驗室)的縮寫形式,最早是由C.Moler用FORTRAN語言編寫的,用來方便地調用LINPACK和EISPACK矩陣代數(shù)軟件包的程序。后來C.Moler創(chuàng)立了MathWorks公司,對MATLAB軟件做了大量的、卓有成效的改進。現(xiàn)在MATLAB軟件已經(jīng)更新至2022版。MATLAB軟件是目前為止最流行的科學計算工具之一,幾乎覆蓋了科學計算的所有領域,廣泛應用于工程計算、控制設計、信號處理與通信、圖像處理、信號檢測、動態(tài)仿真、金融建模設計與分析等領域。MATLAB軟件的優(yōu)化工具(OptimizationToolbox)箱提供了對各種優(yōu)化問題的完整的解決方案,其內容涵蓋線性規(guī)劃、二次規(guī)劃、非線性規(guī)劃、最小二乘、非線性方程求解、多目標決策、最小最大、半無限等優(yōu)化問題。MATLAB軟件簡潔的函數(shù)表達、多種優(yōu)化算法的任意選擇、對算法參數(shù)的自由設置,可使用戶方便靈活地使用優(yōu)化函數(shù)。除內部函數(shù)外,所有MATLAB軟件的核心文件和工具箱文件都是可讀可改的源文件,用戶可修改源文件和加入自己的文件,擴展其功能。LINDO軟件簡介
LINDO軟件是由美國LINDO系統(tǒng)公司開發(fā)的用于解決優(yōu)化問題的一種工具軟件。LINDO軟件的特點是程序執(zhí)行速度快,易于輸入和輸出,能夠求解并分析線性規(guī)劃、二次規(guī)劃和整數(shù)規(guī)劃等問題。實驗目的(1)熟悉LINDO軟件的安裝和菜單、選項的各項功能。(2)了解LINDO文件類型和常用函數(shù)。實驗內容
LINDO軟件的安裝LINDO6.1英文測試版可以從LINDO系統(tǒng)公司網(wǎng)站下載,該版本最多可以處理150個約束條件、300個變量和30個整數(shù)變量的規(guī)劃問題。雙擊lnd61.exe安裝文件,出現(xiàn)安裝提示界面,根據(jù)提示,選擇安裝的目錄安裝即可。在本實驗中,以LINDO6.1英文測試版為例,學習LINDO軟件的基本工作界面和操作。LINDO軟件簡介
實驗內容LINDO軟件界面簡介打開LINDO軟件后,可以看到軟件界面上有標題欄、菜單欄、工具欄和編輯窗口,LINDO軟件界面如圖1-1所示。菜單欄上有“File”、“Edit”、“Solve”、“Reports”、“Window”和“Help”六個菜單,圖1-2~圖1-7顯示了每個菜單的選項,圖中選項名稱右側是其快捷鍵。工具欄上的每個按鈕與一個選項對應。下面對主要選項的功能進行簡單說明,其余選項的功能與一般Windows菜單中的大致相同。圖1-1LINDO軟件界面LINDO軟件簡介
LogOutput:打開或關閉記錄日志文件。TakeCommands:打開和執(zhí)行一個命令腳本文件。BasisRead:讀出這個基,并且從這個基開始繼續(xù)運行單純形法。BasisSave:將單純形法當前的基以指定的文件名和文件格式保存。Title:顯示當前模型標題。Date:在報告窗口中顯示當前日期。ElapsedTime:顯示所用時間。Options:設置LINDO系統(tǒng)運行的內部參數(shù)。GoToLine:光標移動到指定的行。PasteSymbol:在模型中插入“PasteSymbol”對話框中的符號。ChooseNewFont:從“字體”對話框中選擇需要顯示的字體、字形和文字的大小。圖1-2“File”菜單圖1-3“Edit”菜單LINDO軟件簡介
Solve:求解模型。CompileModel:對模型進行編譯。Debug:分析線性規(guī)劃問題無解和無界解的原因。Pivot:由當前解出發(fā)進行一次單純形法迭代。PreemptiveGoal:依次按照多個目標求解模型。Solution:顯示模型的解。Range:顯示解的靈敏度分析結果。Parametrics:分析約束條件右端項變化時,最優(yōu)值如何變化。Statistics:顯示當前模型的統(tǒng)計信息。Peruse:按要求顯示當前解的各種信息。Picture:按照圖形或文本方式顯示模型中的非零系數(shù)。BasisPicture:只顯示當前基的非零系數(shù)。Tableau:顯示當前單純形表。Formulation:顯示當前模型。ShowColumn:顯示模型中選定列的信息。PositiveDefinite:判斷二次規(guī)劃的目標函數(shù)中的二次型是否正定。圖1-4“Solve”菜單圖1-5“Reports”菜單LINDO軟件簡介
OpenCommandWindow:打開命令窗口。OpenStatusWindow:打開狀態(tài)窗口。LINDO軟件的文件類型LINDO有模型文件和求解文件兩種類型的文件格式。前者有模型文件,后綴為.ltx;LINDOPacked文件,后綴為.lpk;MPS格式文件,后綴為.MPS。后者有PUNCH格式文件,后綴為.pun;FBS格式文件,后綴為.fbs;SDBC格式文件,后綴為.sdb。LINDO軟件的常用函數(shù)FREEx:表示變量x可取任意實數(shù)。GINx:表示變量x取非負整數(shù)。INTx:表示變量x取0或1。SLBxL:表示變量x的下界為L。SUBxU:表示變量x的上界為U。TITLETitle:定義模型名稱為<Title>。圖1-6“Window”菜單圖1-7“Help”菜單Lingo軟件簡介
Lingo軟件與LINDO軟件是LINDO系統(tǒng)公司的同一系列軟件工具。Lingo軟件除了具有LINDO軟件的全部功能,還可以用于求解非線性規(guī)劃問題,也可以用于一些線性和非線性方程組的求解。Lingo軟件包含了內置的建模語言和許多常用的數(shù)學函數(shù),可供使用者在編輯程序時調用,而且提供了與其他數(shù)據(jù)文件的交互接口,方便輸入、求解和分析大規(guī)模優(yōu)化計算問題,從而被廣泛應用在生產(chǎn)與銷售規(guī)劃、運輸、財務金融、投資分配、資本預算、混合排程、庫存管理、資源配置等領域中。實驗目的(1)了解Lingo軟件的安裝、界面、文件類型和常用函數(shù)。(2)能用Lingo軟件與Office文檔交換數(shù)據(jù)。(3)了解LINDO軟件和Lingo軟件的區(qū)別。實驗內容Lingo軟件的安裝Lingo14.0版本的安裝很方便,直接運行Lingo14.exe安裝文件,根據(jù)安裝提示安裝即可。Lingo14.0的測試版最多處理150個約束條件、300個變量、30個整數(shù)變量、30個非線性形式和5個全局變量的規(guī)劃問題。Lingo軟件簡介
軟件界面簡介打開Lingo軟件后,可以看到軟件界面上有標題欄、菜單欄、工具欄和編輯窗口,Lingo軟件界面如圖1-8所示。菜單欄上有“File”、“Edit”、“LINGO”、“Window”和“Help”五個菜單,圖1-9~圖1-14顯示了每個菜單的選項,圖中選項名稱右側是其快捷鍵。工具欄上的每個按鈕與一個選項對應。下面對主要選項的功能進行簡單說明,其余選項的功能與LINDO軟件和一般Windows菜單中的大致相同。圖1-8Lingo軟件界面Lingo軟件簡介
ExportFile:輸出文件(MPS格式和MPI格式)。DatabaseUserInfo:數(shù)據(jù)庫用戶信息。PasteSpecial:特殊粘貼。MatchParenthesis:匹配小括號。PasteFunction:將Lingo的內部函數(shù)粘貼到插入點。InsertNewObject:插入新對象。圖1-9“File”菜單圖1-10“Edit”菜單圖1-14“Help”菜單Lingo軟件簡介
Solve:求解模型。Solution:顯示模型的解。Range:顯示解的靈敏度分析結果。Options:選項,可設置求解模型的一些參數(shù)(見圖1-12)。Generate:模型的一般形式。Picture:模型的矩陣形式。Debug:調試。ModelStatistics:模型統(tǒng)計。Look:查看。CommandWindow:打開命令行窗口,在命令行窗口中可以獲得命令行界面,在“:”提示符后可以輸入Lingo的命令行命令。StatusWindow:打開求解狀態(tài)窗口。圖1-11“LINGO”菜單圖1-13“Window”菜單圖1-12“LingoOptions”對話框Lingo軟件簡介
Lingo軟件的文件類型Lingo軟件的文件類型有模型文件(Lingo格式,后綴為.lg4;文本格式,后綴為.lng)、Lingo數(shù)據(jù)文件(后綴為.ldt)、Lingo命令腳本文件(后綴為.ltf)、Lingo報告文件(后綴為.ltx)和數(shù)學規(guī)劃系統(tǒng)格式的模型文件(后綴為.mps)。Lingo軟件的常用函數(shù)Lingo軟件包含了內置的建模語言和許多常用的數(shù)學函數(shù),可供使用者在編輯程序時調用。函數(shù)名和變量名不區(qū)分大小寫,函數(shù)以“@”開頭,變量名可以超過8個,不能超過32個,須以字母開頭。對變量的取值范圍附加限制,如下所述。@BND(L,X,U):限制L小于等于X小于等于U。@BIN(X):限制X為0或1。@FREE(X):取消對X的符號限制(即可取負數(shù)、0或正數(shù))。@GIN(X):限制X為整數(shù)。Lingo軟件簡介
基本數(shù)學函數(shù)如下所述。@ABS(X):絕對值函數(shù),返回X的絕對值。@EXP(X):指數(shù)函數(shù)(以自然對數(shù)e為底),返回eX的值。@LOG(X):自然對數(shù)函數(shù),返回X的自然對數(shù)值。@POW(X,Y):指數(shù)函數(shù),返回XY的值。@SQR(X):平方函數(shù),返回X2的值。@SQRT(X):平方根函數(shù),返回X的平方根。@FLOOR(X):取整函數(shù),返回X的整數(shù)部分。@COS(X)、@SIN(X)、@TAN(X):三角函數(shù)。@SMAX(X1,X2,…,Xn):返回X1,X2,…,Xn
中的最大值。@SMIN(X1,X2,…,Xn):返回X1,X2,…,Xn
中的最小值。@FILE('file'):從外部文件中輸入數(shù)據(jù),可以放在模型中任何地方,file是文件名,可以采用相對路徑和絕對路徑兩種表示方式。@TEXT('file'):把解輸出至文本文件中,file是文件名,可以采用相對路徑和絕對路徑兩種表示方式。Lingo軟件簡介
邏輯運算符如下所述。#not#:否定該操作數(shù)的邏輯值,是一種一元運算符。#eq#:若兩個運算數(shù)相等,則為true;否則為false。#ne#:若兩個運算符不相等,則為true;否則為false。#gt#:若左邊的運算符嚴格大于右邊的運算符,則為true;否則為false。#ge#:若左邊的運算符大于或等于右邊的運算符,則為true;否則為false。#lt#:若左邊的運算符嚴格小于右邊的運算符,則為true;否則為false。#le#:若左邊的運算符小于或等于右邊的運算符,則為true;否則為false。#and#:僅當兩個參數(shù)都為true時,結果為true;否則為false。#or#:僅當兩個參數(shù)都為false時,結果為false;否則為true。Lingo軟件簡介
Lingo軟件與Excel文件之間的數(shù)據(jù)傳遞:Lingo軟件可通過@OLE函數(shù)實現(xiàn)與Excel文件傳遞數(shù)據(jù),使用@OLE函數(shù)既可以從Excel文件中導入數(shù)據(jù),也能把計算結果寫入Excel文件。從Excel文件中導入數(shù)據(jù)@OLE函數(shù)的使用格式可以分成以下類型。(1)變量名1,變量名2=@OLE('文件名','數(shù)據(jù)塊名稱1','數(shù)據(jù)塊名稱2');:從指定的Excel文件中讀取數(shù)據(jù),文件名可以包括擴展名(.xls),還可以包含完整的路徑目錄名稱,如果沒有指定路徑,則默認路徑是Lingo軟件的當前工作目錄。該文件中定義了兩個數(shù)據(jù)塊,其中的數(shù)據(jù)分別用來對變量1和變量2初始化。(2)變量名1,變量名2=@OLE('文件名','數(shù)據(jù)塊名稱');:@OLE函數(shù)的參數(shù)僅指定一個數(shù)據(jù)塊名稱,該數(shù)據(jù)塊應當包含類型相同的兩列數(shù)據(jù),第1列賦值給變量1,第2列賦值給變量2。(3)變量名1,變量名2=@OLE('文件名');:沒有指定數(shù)據(jù)塊名稱,默認使用Excel文件中與變量名同名的數(shù)據(jù)塊。Lingo軟件簡介
把計算結果寫入Excel文件@OLE函數(shù)把計算結果寫入Excel文件的格式有以下三種。(1)@OLE('文件名','數(shù)據(jù)塊名稱1','數(shù)據(jù)塊名稱2')=變量名1,變量名2;:將兩個變量的內容分別寫入指定文件的兩個預先已經(jīng)定義了名稱的數(shù)據(jù)塊,數(shù)據(jù)塊的大小不應小于變量所包含的數(shù)據(jù)。(2)@OLE('文件名','數(shù)據(jù)塊名稱')=變量名1,變量名2;:兩個變量的數(shù)據(jù)寫入同一個數(shù)據(jù)塊,先寫入變量1,變量2寫入另外1列。(3)@OLE('文件名')=變量名1,變量名2;:不指定數(shù)據(jù)塊的名稱,默認使用Excel文件中與變量名同名的數(shù)據(jù)塊。LINDO軟件和Lingo軟件的區(qū)別(1)在LINDO軟件中編輯窗口輸入模型的目標函數(shù)以“MAX”開頭,在Lingo軟件中則以“MAX=”或“MIN=”開頭。(2)在LINDO軟件中輸入模型的“SUBJIECTTO”或“ST”在Lingo軟件中不用書寫。(3)在LINDO軟件中系數(shù)和變量之間不能含有運算符;而在Lingo軟件中每個系數(shù)和變量之間均增加了運算符“*”,而且不可以省略。(4)在Lingo軟件中每行后面均增加了一個分號“;”(英文狀態(tài)下輸入)。(5)在Lingo軟件中模型以“MODEL:”開始,以“END”結束,對于簡單的模型,這兩個語句都可以省略。WinQSB軟件簡介
WinQSB
軟件是運籌學領域比較受歡迎的工具,里面有大量的模型,運籌學的主干教學內容可以在WinQSB
軟件的計算工具包中找到大部分對應的工具箱。WinQSB
軟件對于非大型的問題一般都能計算,對于較小的問題還能演示中間的計算過程。實驗目的(1)學會WinQSB
軟件的安裝和啟動方法。(2)了解WinQSB
軟件的基本構成、運行界面和基本操作方法,熟練掌握WinQSB
軟件的常用命令和功能。(3)能用WinQSB
軟件與Office文檔交換數(shù)據(jù),了解WinQSB
軟件在Windows環(huán)境下的文件管理操作。實驗內容安裝與啟動WinQSB
軟件的安裝非常容易,運行WinQSB
安裝目錄下的WinQSBSetup.exe文件,根據(jù)提示選擇安裝目錄,輸入相關信息,確認之后,安裝程序就會自動完成全部后續(xù)安裝過程。WinQSB
軟件包大小約為4MB,所以安裝過程很快就可以完成。詳細安裝過程參考以下步驟。WinQSB軟件簡介
首先雙擊WinQSB
安裝目錄下的WinQSBSetup.exe文件,彈出如圖1-15所示的“WinQSBSetup”對話框。在“InstallTo”文本框中輸入WinQSB
軟件的安裝目錄(默認為C:\WinQSB),單擊“Continue”按鈕,彈出如圖1-16所示的“LimitedUseLicenseAgreement”對話框。圖1-15“WinQSBSetup”對話框圖1-16“LimitedUseLicenseAgreement”對話框在對應文本框中輸入用戶信息(用戶名和公司/組織名稱),單擊“Continue”按鈕繼續(xù)安裝,安裝完成后彈出如圖1-17所示的安裝完成提示對話框。單擊“確定”按鈕完成安裝,安裝完畢之后,WinQSB
菜單自動生成在系統(tǒng)程序中。圖1-17安裝完成提示對話框WinQSB軟件簡介
WinQSB
軟件共有19個模塊,分別對應軟件可以求解的運籌學中的19類問題。在軟件安裝完成后,選擇“開始”→“程序”→“WinQSB”菜單命令,我們可以看到WinQSB
軟件中有19個菜單選項,如圖1-18所示。圖1-18WinQSB
軟件中的19個菜單選項WinQSB軟件簡介
每個菜單選項對應運籌學中的一類問題,針對不同的問題,選擇不同的菜單選項,運行相應的程序,然后使用“File”菜單中的“New
Problem”選項來輸入所需數(shù)據(jù)。WinQSB
軟件中各模塊及其功能如表1-2所示。表1-2
WinQSB
軟件中各模塊及其功能此外,在WinQSB
軟件安裝完成后,每一個模塊都提供了一些典型的例題數(shù)據(jù)文件,用戶可以使用“File”菜單中的“Load
Problem”選項打開已有的數(shù)據(jù)文件,了解數(shù)據(jù)的輸入格式、系統(tǒng)能夠求解的問題、結果的輸出格式等內容。表1-2WinQSB軟件中各模塊及其功能WinQSB軟件簡介
工作界面及基本操作WinQSB
軟件工作界面主要有三種窗口:啟動窗口、數(shù)據(jù)輸入窗口、結果輸出窗口?,F(xiàn)以“LinearandIntegerProgramming”窗口為例加以說明。啟動窗口。選擇“開始”→“程序”→“WinQSB”→“LinearandIntegerProgramming”菜單命令,出現(xiàn)如圖1-19所示的“LinearandIntegerProgramming”窗口。標題欄:顯示程序的名稱。菜單欄:共有兩個菜單,即“File”和“Help”。“File”菜單中只有三個選項:“New
Problem”、“Load
Problem”和“Exit”。New
Problem:新建問題。Load
Problem:裝載問題。Exit:退出。Help
菜單為幫助菜單(略)。工具欄:快速執(zhí)行常用的功能項。信息欄:把鼠標移動到工具欄按鈕上時,信息欄會給出相應的說明信息。圖1-19“LinearandIntegerProgramming”窗口WinQSB軟件簡介
數(shù)據(jù)輸入窗口。選擇“File”→“NewProblem”菜單命令(或在工具欄上單擊圖標),出現(xiàn)如圖1-20所示的“LP-ILPProblemSpecification”對話框。需要注意的是,對于不同的模塊,彈出的對話框是不同的,具體可見各章的WinQSB
軟件實驗。單擊“OK”按鈕,進入數(shù)據(jù)輸入窗口,如圖1-21所示。菜單欄共有9個菜單:“File”、“Edit”、“Format”、“SolveandAnalyze”、“Results”(此處為灰色不可用)、“Utilities”、“Window”、“WinQSB”和“Help”。圖1-20“LP-ILPProblemSpecification”對話框圖1-21數(shù)據(jù)輸入窗口WinQSB軟件簡介
數(shù)據(jù)輸入窗口中的“File”
菜單如圖1-22所示。New
Problem:新建問題。Load
Problem:裝載問題。Close
Problem:關閉問題。Save
Problem:保存問題。Save
Problem
As:問題另存為。Print
Problem:打印問題。Print
Font:打印字體設置。PrintSetup:打印設置。Exit:退出。數(shù)據(jù)輸入窗口中的“Edit”菜單如圖1-23所示。Cut:剪切。Copy:復制。Paste:粘貼。Clear:清除。Undo:恢復。需要注意的是,除了包含“Cut”“Copy”等選項的第一部分和含有“Undo”選項的第二部分,其他部分的選項會由于所選程序的不同而不同。具體見后面實驗中各問題的詳細解法。圖1-22數(shù)據(jù)輸入窗口中的“File”菜單圖1-23數(shù)據(jù)輸入窗口中的“Edit”菜單WinQSB軟件簡介
數(shù)據(jù)輸入窗口中的“Format”菜單如圖
1-24
所示。Number:選擇數(shù)字的顯示格式。選擇此選項,彈出如圖
1-25
所示的“Number
Format”對話框。Font:選擇顯示字體(為
Windows
標準的字體對話框)。選擇此選項,彈出如圖
1-26
所示的“字體”對話框。Alignment:電子表格文字的對齊方式。選擇此選項,彈出如圖1-27
所示的“Alignment”對話框。在圖1-27中,左上部分為文字對齊方式(左、右、中)。右上部分為對齊方式的應用范圍(應用于所有列、首行、首列、選定的列)。RowHeight:調節(jié)電子表格行高。ColumnWidth:調節(jié)電子表格列寬。根據(jù)子程序的不同,“Format”菜單中會有不同的選項。具體見后面實驗中各問題的詳細解法。
圖1-24數(shù)據(jù)輸入窗口中的“Format”菜單圖1-25“NumberFormat”對話框圖1-26“字體”對話框圖1-27“Alignment”對話框WinQSB軟件簡介
數(shù)據(jù)輸入窗口中的“SolveandAnalyze”菜單如圖1-28所示。它也會根據(jù)不同的子程序而有不同的選項,主要的選項如下所述。SolvetheProblem:求解問題。SolveandDisplaySteps:求解并顯示過程?!癠tilities”菜單較簡單,主要提供了幾個小工具,有“Calculator”(計算器)、“Clock”(時鐘)和“Graph/Chart”(圖表)等。數(shù)據(jù)輸入窗口中的“Window”菜單如圖1-29所示。此處會顯示已經(jīng)打開的子窗口的名稱,可方便地進行切換。Cascade:層疊。Tile:平鋪。ArrangeIcons:重排圖標。圖1-28數(shù)據(jù)輸入窗口中的“SolveandAnalyze”菜單圖1-29數(shù)據(jù)輸入窗口中的“Window”菜單WinQSB軟件簡介
“WinQSB”菜單提供了19個功能的選項,可在此處方便地打開其他子程序?!癏elp”菜單提供了WinQSB
軟件的幫助。工具欄:快速執(zhí)行常用的功能項。編輯窗口:在此處輸入具體問題的數(shù)據(jù),WinQSB
軟件中主要的數(shù)據(jù)輸入形式是表格。結果輸出窗口:在輸入數(shù)據(jù)之后,選擇“Solve
and
Analyze”→“Solve
the
Problem”菜單命令,問題求解后彈出結果輸出窗口,如圖
1-30所示。圖1-30結果輸出窗口WinQSB軟件簡介
菜單欄有6個菜單:“File”、“Format”、“Results”、“Utilities”、“Window”和“Help”。結果輸出窗口中的“File”菜單如圖1-31所示Print:打印。QuickPrintWindow:快速打印窗口。SaveAs:結果另存為。CopytoClipboard:復制到剪貼板。PrintFont:打印字體設置。PrintSetup:打印設置。Exit:退出?!癛esults”菜單主要是對問題進行各種不同的分析和顯示,根據(jù)不同的子程序會有所不同?!癋ormat”、“Utilities”、“Window”和“Help”菜單的選項同數(shù)據(jù)輸入窗口中對應的菜單。工具欄:快速執(zhí)行常用的功能項。結果顯示窗口:在此顯示問題的求解結果,有表格或圖形的形式。圖1-31結果輸出窗口中的“File”菜單WinQSB軟件簡介
數(shù)據(jù)的錄入與保存(1)數(shù)據(jù)可以采用直接錄入方式,同時也可以從Excel文件或Word文檔中復制數(shù)據(jù)到WinQSB軟件中。首先選中要復制的電子表格中單元格的數(shù)據(jù),選用復制功能,然后在WinQSB
軟件的電子表格編輯狀態(tài)下選中要粘貼的單元格(在WinQSB
軟件中選中的單元格應與在電子表格中選中的單元格行列數(shù)相同,否則只能復制部分數(shù)據(jù)),粘貼即可。(2)把WinQSB
軟件數(shù)據(jù)輸入窗口中的數(shù)據(jù)復制到Office文檔:先清空剪貼板(可用Excel文件或Word文檔中“Edit”菜單中的“剪貼板”選項來清空),然后在WinQSB
軟件的表格中選中要復制的數(shù)據(jù),選擇“Edit”菜單中的“Copy”選項,粘貼到Excel文件或Word文檔中。(3)計算結果的保存,只需要選擇“File”→“SaveAs”菜單命令即可,只是需要注意系統(tǒng)以文本格式(*.txt)保存結果,使用者可以編輯該文本文件。也可以把WinQSB
軟件結果輸出窗口中的數(shù)據(jù)復制到Office文件中進行保存,方法:問題求解后,先清空“剪貼板”,選擇“File”菜單中的“CopytoClipboard”選項,然后粘貼到Excel文件或Word文檔中。MATLAB軟件簡介
MATLAB是矩陣實驗室(MatrixLaboratory)的簡稱,是由美國MathWorks公司研制開發(fā)的一種面向工程和科學計算的軟件,專門以矩陣的形式處理數(shù)據(jù)。MATLAB軟件將高性能的數(shù)值計算、數(shù)據(jù)可視化和程序設計融合在一種簡單易用的交互式工作環(huán)境中,并且提供了大量的內置函數(shù),從而使其廣泛應用于數(shù)學計算和分析、自動控制、系統(tǒng)仿真、數(shù)字信號處理、圖形圖像分析、數(shù)理統(tǒng)計、人工智能、虛擬現(xiàn)實技術、通信工程、金融系統(tǒng)等領域。實驗目的(1)熟悉MATLAB軟件的工作環(huán)境、菜單和選項的功能、基本操作。(2)了解MATLAB軟件的文件類型和MATLAB工具箱。(3)掌握簡單的命令運算和M文件的基本操作。MATLAB軟件簡介
實驗內容MATLAB軟件界面介紹MATLAB軟件的界面主要有菜單欄、工具欄、命令窗口、歷史命令窗口、工作空間窗口和當前目錄窗口等。MATLAB軟件界面如圖1-32所示。命令窗口位于界面的中間,在窗口中顯示命令提示符“>>”,可在“>>”之后輸入命令,按下“Enter”鍵后,MATLAB軟件會立即顯示運行結果并將結果自動賦予變量ans。若要禁止顯示計算的中間結果,則可以通過分號“;”來實現(xiàn)。如果求解較為復雜的問題,可以采用給變量賦值的方法。圖1-32MATLAB軟件界面MATLAB軟件簡介
工作空間是用于儲存運算中的各種變量和結果的內存空間,而工作空間窗口則用于顯示變量的名稱、大小、字節(jié)數(shù)及數(shù)據(jù)類型等,我們可以通過工作空間窗口對變量進行觀察、編輯、保存和刪除等操作。歷史命令窗口用來記錄用戶在命令窗口中執(zhí)行過的命令行,包括已運行過的命令、函數(shù)、表達式、使用時間等信息。在歷史命令窗口中可進行歷史命令的查找、檢查等工作。用鼠標選中歷史命令窗口中的命令行,單擊右鍵彈出操作菜單,我們可以選擇相應選項對這些歷史命令進行復制、執(zhí)行及刪除等操作;雙擊這些命令可使它們再次執(zhí)行。當前目錄窗口用于顯示和設置當前工作目錄,同時顯示當前工作目錄下的文件名、文件類型及目錄的修改時間等信息。用鼠標選中當前目錄窗口中的文件,單擊右鍵可以進行打開、運行、重命名及刪除等操作。設置當前目錄可以在當前目錄窗口上方的輸入欄中直接輸入。菜單欄中有“File”、“Edit”、“Debug”、“Parallel”、“Desktop”、“Window”和“Help”七個菜單,圖1-33~圖1-39顯示了每個菜單的選項,圖中選項名稱右側是其快捷鍵。工具欄上的每個按鈕與一個選項對應。下面對主要選項的功能進行簡單說明,其余選項的功能與一般Windows菜單中的大致相同。MATLAB軟件簡介
CloseCommandWindow:關閉命令窗口。ImportData:工作空間導入數(shù)據(jù)。SetPath:設定路徑。Preferences:設置MATLAB軟件系統(tǒng)的屬性參數(shù)。圖1-33“File”菜單圖1-34“Edit”菜單ClearCommandWindow:清除命令窗口。ClearCommandHistory:清除命令記錄。ClearWorkspase:清除工作空間。MATLAB軟件簡介
OpenFileswhenDebugging:打開文件的調試工具。Step:逐步調試程序。StepIn:進入子程序逐步執(zhí)行調試程序。StepOut:跳出子程序逐步執(zhí)行調試程序。Continue:繼續(xù)執(zhí)行程序到下一個斷點。ClearBreakpointsinAllFiles:清除文件中的所有斷點。StopifErrors/Warnings:程序出現(xiàn)錯誤或警告停止運行。ExitDebugMode:退出調試狀態(tài)。SelectConfiguration:選擇配置。ManageConfigurations:管理配置。圖1-35“Debug”菜單圖1-36“Parallel”菜單MATLAB軟件簡介
DesktopLayout:恢復MATLAB軟件運行環(huán)境的界面為默認狀態(tài)下的界面組合。SaveLayout:保存用戶的窗口顯示模式。CommandWindow:控制命令窗口的顯示。CommandHistory:控制命令歷史窗口的顯示。CurrentFolder:控制當前目錄窗口的顯示。Workspace:控制數(shù)據(jù)編輯窗口的顯示。Help:控制幫助系統(tǒng)的顯示。Profiler:控制M文件分析窗口的顯示。Editor:控制Editor窗口的顯示。Figures:控制Figures窗口的顯示。WebBrowser:控制WebBrowser窗口的顯示。Toolbars:控制工具條的顯示。Titles:控制標題欄的顯示。圖1-37“Desktop”菜單圖1-38“Window”菜單圖1-39“Help”菜單MATLAB軟件簡介
在MATLAB軟件的命令窗口中直接輸入相關的命令行或者語句段,輸入示例如圖1-40所示,這種方法適用于一些簡單問題的求解,當遇到較為復雜的問題時,則需要用到程序編輯與調試的環(huán)境。在MATLAB軟件中可利用M文件編輯器,實現(xiàn)對MATLAB命令行語句段的批處理,或者對M文件進行保存和調用,使得MATLAB軟件的功能得到極大的擴展,適用于較大規(guī)模程序的編制,并以此解決更為復雜的工程問題。M文件編輯器是MATLAB軟件中集成編輯和調試的環(huán)境,用戶可以通過MATLAB軟件中的M文件編輯器編寫用戶的M文件,同時也可以使用編輯器打開和修改M文件、觀察變量值、調試程序等。在MATLAB軟件中選擇“File”→“New→“Function”菜單命令或單擊工具欄上的按鈕,打開M文件編輯窗口,如圖1-41所示。圖1-40輸入示例圖1-41M文件編輯窗口MATLAB軟件簡介
MATLAB軟件的文件類型MATLAB軟件的文件類型有M文件(后綴為.m)、MAT文件(后綴為.mat)、MEX文件(后綴為.mex
或.dll)、FIG圖形文件(后綴為.fig)、P文件(后綴為.p)和Models模型文件(后綴為.mdl)。MAT文件是MATLAB軟件數(shù)據(jù)存儲的標準格式文件。MEX文件是MATLAB軟件編譯處理的二進制文件。P文件是M文件的加密格式文件。MATLAB工具箱工具箱是MATLAB軟件用來解決各個領域特定問題的函數(shù)庫,主要用來擴充MATLAB軟件的數(shù)值計算、符號運算、圖形建模仿真等功能,使其能夠用于多種學科。MATLAB軟件中的工具箱有控制系統(tǒng)工具箱(ControlSystemToolbox)、信號處理工具箱(SignalProcessingToolbox)、財政金融工具箱(FinancialToolbox)和優(yōu)化工具箱(OptimizationToolbox)等二十多種。本書將利用MATLAB軟件的優(yōu)化工具箱求解相關的運籌學問題。第2章線性規(guī)劃實驗2.1基礎知識2.2使用LINDO軟件求解線性規(guī)劃問題2.3使用Lingo軟件求解線性規(guī)劃問題2.4使用WinQSB軟件求解線性規(guī)劃問題2.5使用MATLAB軟件求解線性規(guī)劃問題2.1基礎知識
線性規(guī)劃(LP)是運籌學的一個重要分支。自1947年美國數(shù)學家GeorgeBernardDantzig提出了求解線性規(guī)劃問題的單純形法后,線性規(guī)劃在理論上日益成熟,在實際中的應用也更加廣泛,在工業(yè)、農(nóng)業(yè)、經(jīng)濟管理、軍事和交通運輸?shù)雀鞣矫娑及l(fā)揮了重要作用。線性規(guī)劃問題的數(shù)學模型
在經(jīng)濟和生產(chǎn)活動中,生產(chǎn)者往往要追求收益最大、成本最小等目標。線性規(guī)劃能解決的就是在有限資源的約束條件下,使獲得收益(或支付成本)的線性目標取得最大值(或最小值)的問題,其中收益、成本和約束條件均為變量的線性表達式。
線性規(guī)劃問題的數(shù)學模型包含三個組成要素:
決策變量目標函數(shù)約束條件2.1基礎知識
2.1基礎知識
線性規(guī)劃問題的求解方法圖解法以一個決策變量為橫軸,另一個決策變量為縱軸,畫出平面直角坐標系;在坐標系上畫出每個約束條件對應的直線或區(qū)域;確定可行域;確定線性規(guī)劃問題解的情況。單純形法找出初始基可行解;若初始基可行解不存在,則該線性規(guī)劃問題無最優(yōu)解;否則,進入下一步;若初始基可行解存在,以該初始基可行解作為起點,根據(jù)檢驗數(shù)的最優(yōu)性條件和可行性條件,引入非基變量取代某一基變量,找出使目標函數(shù)值更優(yōu)的基可行解;按照上一步進行迭代,直到對應檢驗數(shù)滿足最優(yōu)性條件,得到問題的最優(yōu)解。特別要注意的是,若在迭代過程中發(fā)現(xiàn)問題的目標函數(shù)值無界,說明該線性規(guī)劃問題存在無界解,應終止迭代。2.1基礎知識
線性規(guī)劃問題的求解方法人工變量法若線性規(guī)劃問題的約束條件是等式,而且系數(shù)矩陣中不包含單位矩陣,則可以采用人工變量法進行求解。大M法若目標函數(shù)為maxz,將人工變量的系數(shù)取為-M(M是充分大的正數(shù));若目標函數(shù)為minz,將人工變量的系數(shù)取為M,然后利用單純形法求解。
兩階段法第一階段:求解一個目標函數(shù)僅含有人工變量的極小化問題。若最優(yōu)值為0,去掉人工變量轉為第二階段;若最優(yōu)值為非0值,則原問題無可行解,停止計算。第二階段:去掉第一階段中的人工變量,將第一階段得到的最優(yōu)解作為初始基可行解,再利用單純形法進行求解。2.2使用LINDO軟件求解線性規(guī)劃問題
利用LINDO軟件求解線性規(guī)劃問題,不需要將問題化成標準型,只需將線性規(guī)劃模型輸入該軟件的編輯窗口即可。LINDO軟件默認變量是非負的,如果變量是有界或無約束的,那么使用FREE語句可以把指定變量的非負約束去掉。
實驗目的熟悉LINDO軟件求解線性規(guī)劃問題的方法步驟,并理解求解結果。
掌握LINDO軟件對線性規(guī)劃問題解的情況的判別。
通過利用LINDO軟件求解線性規(guī)劃問題,進一步理解線性規(guī)劃問題的建模和求解。2.2使用LINDO軟件求解線性規(guī)劃問題
實驗內容例2.1利用LINDO軟件求解下列線性規(guī)劃問題。
2.2使用LINDO軟件求解線性規(guī)劃問題
2.2使用LINDO軟件求解線性規(guī)劃問題
1.模型1求解步驟打開LINDO軟件后,在編輯窗口輸入模型12.2使用LINDO軟件求解線性規(guī)劃問題
單擊窗口“Solve”菜單中的“Solve”選項或單擊工具欄中的
按鈕2.2使用LINDO軟件求解線性規(guī)劃問題
模型1的輸出結果如右圖
2.2使用LINDO軟件求解線性規(guī)劃問題
2.模型2求解步驟打開LINDO軟件后,在編輯窗口輸入模型22.2使用LINDO軟件求解線性規(guī)劃問題
求解模型2,得到模型2的輸出結果如右圖
2.2使用LINDO軟件求解線性規(guī)劃問題
3.模型3求解步驟打開LINDO軟件后,在編輯窗口輸入模型32.2使用LINDO軟件求解線性規(guī)劃問題
單擊窗口“Solve”菜單中的“Solve”選項或單擊工具欄中的
按鈕求解模型3,彈出模型3的錯誤信息對話框,提示無界解。2.2使用LINDO軟件求解線性規(guī)劃問題
單擊對話框中的“OK”按鈕,出現(xiàn)模型3的解狀態(tài)對話框,最優(yōu)解狀態(tài)顯示為無界(“Unbounded”)。該問題有無界解。2.2使用LINDO軟件求解線性規(guī)劃問題
4.模型4求解步驟打開LINDO軟件后,在編輯窗口輸入模型42.2使用LINDO軟件求解線性規(guī)劃問題
單擊窗口“Solve”菜單中的“Solve”選項或單擊工具欄中的
按鈕求解模型4,彈出模型4的錯誤信息對話框,提示無可行解。2.2使用LINDO軟件求解線性規(guī)劃問題
單擊對話框中的“OK”按鈕,出現(xiàn)模型4的解狀態(tài)對話框,最優(yōu)解狀態(tài)顯示為為無可行解(“Infeasible”)。該問題無可行解。2.3使用Lingo軟件求解線性規(guī)劃問題
利用Lingo軟件求解線性規(guī)劃問題,可以避免大量的煩瑣的計算,能夠輕松、有效地獲得規(guī)劃問題的解。Lingo軟件求解線性規(guī)劃問題的過程采用的是單純形法,一般首先尋求一個可行解,在有可行解的情況下再尋求最優(yōu)解。
實驗目的熟悉Lingo軟件求解線性規(guī)劃問題的方法步驟,并理解求解結果。掌握Lingo軟件對線性規(guī)劃問題解的情況的判別。實驗內容例2.2利用Lingo軟件求解例2.1中的線性規(guī)劃問題。
2.3使用Lingo軟件求解線性規(guī)劃問題
2.3使用Lingo軟件求解線性規(guī)劃問題
1.模型1求解步驟打開Lingo軟件后,在編輯窗口輸入模型12.3使用Lingo軟件求解線性規(guī)劃問題
單擊“Lingo”菜單中的“Solve”選項或單擊工具欄中的
按鈕,求解該模型,得到模型1的解狀態(tài)對話框。2.3使用Lingo軟件求解線性規(guī)劃問題
模型1的解報告窗口2.3使用Lingo軟件求解線性規(guī)劃問題
2.模型2求解步驟打開Lingo軟件后,在編輯窗口輸入模型22.3使用Lingo軟件求解線性規(guī)劃問題
求解模型2,得到模型2的解狀態(tài)對話框2.3使用Lingo軟件求解線性規(guī)劃問題
2.3使用Lingo軟件求解線性規(guī)劃問題
3.模型3求解步驟打開Lingo軟件后,在編輯窗口輸入模型32.3使用Lingo軟件求解線性規(guī)劃問題
單擊“Lingo”菜單中的“Solve”選項或單擊工具欄中的
按鈕求解模型3,彈出模型3的錯誤信息對話框,提示無界解。2.3使用Lingo軟件求解線性規(guī)劃問題
單擊對話框中的“OK”按鈕,彈出對話框,警告:模型的當前解可能不是最優(yōu)的或是不可行的。2.3使用Lingo軟件求解線性規(guī)劃問題
該問題有無界解。2.3使用Lingo軟件求解線性規(guī)劃問題
繼續(xù)單擊對話框中的“OK”按鈕,彈出模型3的解狀態(tài)對話框。4.模型4求解步驟打開Lingo軟件后,在編輯窗口輸入模型42.3使用Lingo軟件求解線性規(guī)劃問題
單擊“Lingo”菜單中的“Solve”選項或單擊工具欄中的
按鈕求解模型4,彈出模型4的錯誤信息對話框,提示無可行解。2.3使用Lingo軟件求解線性規(guī)劃問題
單擊對話框中的“OK”按鈕,彈出對話框,警告:模型的當前解可能不是最優(yōu)的或是不可行的。2.3使用Lingo軟件求解線性規(guī)劃問題
該問題無可行解。2.3使用Lingo軟件求解線性規(guī)劃問題
繼續(xù)單擊對話框中的“OK”按鈕,彈出模型4的解狀態(tài)對話框。利用WinQSB軟件求解線性規(guī)劃問題時,需要調用“LinearandIntegerProgramming”模塊,且不需要將模型化為標準型。當決策變量是有界變量或無約束變量時,可以不用轉化,只需要修改系統(tǒng)的變量類型即可。對于不等式約束,可以在輸入數(shù)據(jù)時直接輸入不等式符號。2.4使用WinQSB軟件求解線性規(guī)劃問題
實驗目的熟悉WinQSB軟件求解線性規(guī)劃問題的方法、步驟,并理解求解結果。熟悉WinQSB軟件求解線性規(guī)劃問題的圖解法。了解WinQSB軟件用單純形法和大M法求解線性規(guī)劃問題的過程。
實驗內容例2.3利用WinQSB軟件求解線性規(guī)劃問題。
2.4使用WinQSB軟件求解線性規(guī)劃問題
方法1利用單純形法的求解步驟2.4使用WinQSB軟件求解線性規(guī)劃問題
選擇“開始”
→“程序”→“WinQSB”→“LinearandIntegerProgramming”→“File”→“NewProblem”菜單命令,
生成對話框,輸入模型信息方法1利用單純形法的求解步驟2.4使用WinQSB軟件求解線性規(guī)劃問題
2.在編輯窗口輸入模型方法1利用單純形法的求解步驟2.4使用WinQSB軟件求解線性規(guī)劃問題
方法1利用單純形法的求解步驟2.4使用WinQSB軟件求解線性規(guī)劃問題
選擇“SolveandAnalyze”→“Solveand
Display
Steps”菜單命令,得到初始單純形表方法1利用單純形法的求解步驟2.4使用WinQSB軟件求解線性規(guī)劃問題
再選擇“Simplex
Iteration”→
“NextIteration”菜單命令,得到單純形法的求解步驟2.4使用WinQSB軟件求解線性規(guī)劃問題
1.在編輯窗口輸入模型后,
“SolveandAnalyze”→“GraphicMethod”菜單命令或者單擊工具欄中的按鈕方法2利用圖解法的求解步驟2.4使用WinQSB軟件求解線性規(guī)劃問題
2.在圖解法變量選
擇對話框中選擇橫坐標和縱坐標,單擊“OK”按鈕。方法2利用圖解法的求解步驟2.4使用WinQSB軟件求解線性規(guī)劃問題
方法2利用圖解法的求解步驟
例2.4利用WinQSB軟件求解線性規(guī)劃問題。
2.4使用WinQSB軟件求解線性規(guī)劃問題
2.4使用WinQSB軟件求解線性規(guī)劃問題
選擇“開始”
→“程序”→“WinQSB”→“LinearandIntegerProgramming”→“File”→“NewProblem”菜單命令,
生成對話框,輸入模型信息2.4使用WinQSB軟件求解線性規(guī)劃問題
2.在編輯窗口輸入模型2.4使用WinQSB軟件求解線性規(guī)劃問題
3.選擇“SolveandAnalyze”→“Solveand
Display
Steps”菜單命令,得到初始單純形表,表中C2、C3為人工變量,目標函數(shù)中人工變量的系數(shù)為-M。2.4使用WinQSB軟件求解線性規(guī)劃問題
2.5使用MATLAB軟件求解線性規(guī)劃問題
線性規(guī)劃問題的目標函數(shù)求的是最大值或最小值,約束條件的不等式符號可以是小于等于號也可以是大于等于號。為了利用MATLAB軟件求解線性規(guī)劃問題,將模型轉化成如下形式:
式中,f、x、b、beq、lb、ub為向量;A、Aeq為矩陣。
再調用linprog函數(shù)來求解模型。2.5使用MATLAB軟件求解線性規(guī)劃問題
實驗目的熟悉MATLAB軟件求解線性規(guī)劃模型的基本命令和M文件的編寫。了解MATLAB軟件優(yōu)化工具箱求解線性規(guī)劃問題的方法。
實驗內容例2.5利用MATLAB軟件求解例2.1中的線性規(guī)劃問題1。
方法11.打開MATLAB軟件,單擊“File”選項,選擇“New”→“Function”選項,新建一個M文件。在M文件編輯窗口中輸入如下語句。2.5使用MATLAB軟件求解線性規(guī)劃問題
方法1在MATLAB軟件編輯窗口中輸入該問題數(shù)學模型。2.5使用MATLAB軟件求解線性規(guī)劃問題
方法12.選擇“Debug”→“RunLPexample.m”菜單命令或單擊工具欄中的
圖標,運行模型。2.5使用MATLAB軟件求解線性規(guī)劃問題
方法13.運行結果2.5使用MATLAB軟件求解線性規(guī)劃問題
方法21.打開MATLAB軟件,單擊“Start”選項,選擇“Toolboxes”→“Optimization”,打開優(yōu)化工具箱。2.優(yōu)化工具箱對話框中,在“Solver”下拉列表中選擇“l(fā)inprog-Linearprogramming”,在“Problem”文本框中輸入目標函數(shù)、不等式約束、等式約束及變量上限與下限。2.5使用MATLAB軟件求解線性規(guī)劃問題
方法2
2.5使用MATLAB軟件求解線性規(guī)劃問題
第3章對偶理論與靈敏度分析實驗3.1基礎知識3.2使用LINDO軟件進行靈敏度分析3.3使用Lingo軟件求解對偶問題和進行靈敏度分析3.4使用WinQSB軟件求解對偶問題和進行靈敏度分析3.1基礎知識
每一個線性規(guī)劃問題都存在一個與其匹配的線性規(guī)劃問題,我們稱其中一個問題為原問題,另一個問題為對偶問題。研究原問題與對偶問題內在聯(lián)系的對偶理論,在經(jīng)濟學中有著重要的應用。原問題與對偶問題原問題(對偶問題)對偶問題(原問題)靈敏度分析的類型1)分析約束條件右端項
變化的影響(1)若,則用對偶單純形法繼續(xù)迭代。(2)若,則保持最優(yōu)解不變,因而對偶價格不變。2)目標函數(shù)系數(shù)
變化的影響(1)若,則用單純形法繼續(xù)迭代求最優(yōu)解。(2)若,則保持最優(yōu)解不變。3)增加一個變量
的分析首先計算增加變量的檢驗數(shù),然后計算(1)若,則按單純形法繼續(xù)計算以找出最優(yōu)解。(2)若,則原最優(yōu)解不變,將和直接寫入單純形表。3.2使用LINDO軟件進行靈敏度分析例3.1某工廠計劃生產(chǎn)甲、乙兩種產(chǎn)品,已知生產(chǎn)單位產(chǎn)品所需的設備臺時及原材料A、B的消耗量,如表3-1所示。該工廠每生產(chǎn)一件產(chǎn)品甲可獲得2元利潤,每生產(chǎn)一件產(chǎn)品乙可獲得5元利潤。求該工廠如何安排生產(chǎn)計劃,可使獲得的利潤最多?并進行靈敏度分析。利用LINDO軟件求解的步驟如下所示。(1)打開LINDO軟件,在編輯窗口中輸入模型該問題的數(shù)學模型表示為(2)選擇“Solve”菜單中的“Solve”選項或單擊工具欄中的按鈕,彈出對話框,詢問是否進行靈敏度分析,單擊“是”按鈕,得到模型結果3.3使用Lingo軟件求解對偶問題和進行靈敏度分析例3.2利用Lingo軟件求解線性規(guī)劃問題的對偶問題。利用Lingo軟件求解的步驟如下所示。(1)打開Lingo軟件,在編輯窗口中輸入模型(2)選擇“LINGO”→“Generate”→“Dualmodel”菜單命令,求解對偶問題例3.3利用Lingo軟件求解(1)在Lingo軟件的編輯窗口中輸入模型(2)選擇“LINGO”→“Options”菜單命令,彈出“LingoOptions”對話框,單擊“GeneralSolver”選項卡,在“DualComputations”下拉列表中選擇“Prices&Ranges”選項,單擊“OK”按鈕。(3)選擇“LINGO”→“Solve”菜單命令,求解模型;選擇“LINGO”→“Solution”菜單命令,彈出解報告窗口;選擇“LINGO”→“Range”菜單命令,彈出靈敏度分析報告窗口。3.4使用WinQSB軟件求解對偶問題和進行靈敏度分析WinQSB軟件中的“LinearandIntegerProgramming”模塊,可用來求解對偶問題和進行靈敏度分析。該軟件在求解線性規(guī)劃問題時,可以給出對偶問題,并對價值系數(shù)和資源變量進行靈敏度分析。例3.4利用WinQSB軟件求解利用WinQSB軟件求解的步驟如下所示。(1)選擇“開始”→“程序”→“WinQSB”→“LinearandIntegerProgramming”→“File”→“NewProblem”菜單命令,彈出“LP-ILPProblemSpecification”對話框,輸入模型信息,單擊“OK”按鈕。(2)在WinQSB軟件的編輯窗口中輸入模型(3)選擇“Format”→“SwitchtoDualForm”菜單命令,得到對偶問題的數(shù)學模型(4)選擇“Edit”→“VariableNames”菜單命令,彈出對偶變量名對話框,更改對偶變量名,再單擊“OK”按鈕,得到對偶模型。對偶問題的數(shù)學模型為例3.5某小型豆制品加工廠用大豆生產(chǎn)甲、乙兩種豆制品。一袋大豆在設備A上加工12h,可制成3kg甲產(chǎn)品;或者在設備B上加工8h,可制成4kg乙產(chǎn)品。每千克甲產(chǎn)品獲利24元,每千克乙產(chǎn)品獲利16元。現(xiàn)每天獲得50袋大豆的供應量,每天正式工人總的勞動時間為480h,設備A每天至多能加工100kg甲產(chǎn)品,設備B可以無限地加工乙產(chǎn)品。求該加工廠如何制訂生產(chǎn)計劃,可以使得每天的獲利最大?并進行靈敏度分析。設這個小型加工廠每天使用、袋大豆生產(chǎn)甲、乙兩種產(chǎn)品,則該問題可以建立如下的數(shù)學模型(1)選擇“開始”→“程序”→“WinQSB”→“LinearandIntegerProgramming”→“File”→“NewProblem”菜單命令,彈出“LP-ILPProblemSpecification”對話框(見圖3-15),輸入模型信息,單擊“OK”按鈕。(2)在WinQSB軟件的編輯窗口中輸入模型(3)選擇“SolveandAnalyze”→“SolvetheProblem”菜單命令,得到模型結果第4章整數(shù)規(guī)劃實驗基礎知識
使用Lindo求解整數(shù)規(guī)劃問題使用Lingo求解整數(shù)規(guī)劃問題使用WinQSB軟件求解整數(shù)規(guī)劃問題使用Matlab求解整數(shù)規(guī)劃問題分支定界法1.首先求解整數(shù)規(guī)劃問題的松弛問題的最優(yōu)解,若最優(yōu)解滿足整數(shù)要求,則該解是整數(shù)規(guī)劃問題的最優(yōu)解。否則轉入下一步。2.在松弛問題中分別增加約束條件,分成若干子問題進行分支。取整數(shù)要求的變量
,設
,由此產(chǎn)生約束條件
和
。3.求解各分支的線性規(guī)劃問題。若存在需要繼續(xù)分支的情況轉到第2步;否則停止分支解出滿足整數(shù)要求的解,比較各分支的最優(yōu)值得到滿足目標函數(shù)要求的最優(yōu)解。0-1整數(shù)規(guī)劃問題的數(shù)學模型為:當決策變量的個數(shù)n不是很大的時候,利用窮舉法求解0-1整數(shù)規(guī)劃問題,即對所有變量的0和1的組合,比較目標函數(shù)值,得到最優(yōu)解。4.1基礎知識
整數(shù)規(guī)劃是指決策變量取值限制為整數(shù)值的數(shù)學規(guī)劃問題。整數(shù)規(guī)劃分為三類:所有的決策變量都要求取整數(shù)值,則稱為純整數(shù)規(guī)劃;若部分變量要求取整數(shù)值,則稱為混合整數(shù)規(guī)劃;若變量只要求取0和1,則稱為0-1整數(shù)規(guī)劃。整數(shù)規(guī)劃問題去掉取整約束后得到的線性規(guī)劃問題稱為原整數(shù)規(guī)劃問題的松弛問題。4.2使用Lindo求解整數(shù)規(guī)劃問題
1.實驗目的(1)熟悉一般整數(shù)規(guī)劃問題和0-1整數(shù)規(guī)劃問題的Lindo求解方法。(2)熟悉Lindo軟件的整數(shù)限制命令GIN和0-1限制命令INT。2.實驗內容用Lindo軟件求解整數(shù)規(guī)劃問題。例14.2使用Lindo求解整數(shù)規(guī)劃問題
2.實驗內容用Lindo軟件求解整數(shù)規(guī)劃問題。例2某公司三年內有四個項目可以考慮投資,每個項目的期望收益和每年投資額如表4-1所示。假定每個選定的投資項目要在三年內完成。確定應該投資哪些項目,能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 比粗細課件教學課件
- 2024健身房與會員之間的會員服務合同
- 2024年建筑工人勞務雇傭協(xié)議
- 2024年度藝人非獨家合作合同及演出安排
- 2024年廣告發(fā)布與媒體推廣合同
- 2024年度廢舊物資回收利用合同的履行
- 2024年度技術研發(fā)計算機軟件開發(fā)合同
- 制作高端課件教學課件
- 04年數(shù)據(jù)中心運維服務合同
- 2024年廢棄物處理服務合同(含危險廢物)
- 一年級上冊校本課程教案
- 新能源汽車構造 課件 2-3 拆裝動力電池總成
- 傳承農(nóng)耕文化,深化勞動教育三篇模板05.24
- 消防員職業(yè)調查報告
- ISO14064-1 2018溫室氣體第1部組織層面上溫室氣體排放與清除量化及報告規(guī)范
- 便利店帶煙證轉讓合同范本
- DZ∕T 0227-2010 地質巖心鉆探規(guī)程(正式版)
- 2024年遼寧醫(yī)藥職業(yè)學院單招職業(yè)適應性測試題庫必考題
- 2024中國郵政集團限公司云南省分公司招聘158人公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- SYT 0452-2021 石油天然氣金屬管道焊接工藝評定-PDF解密
- 教育研究方法觀察設計案例
評論
0/150
提交評論