應(yīng)用LINGO、MATLAB軟件求解線性規(guī)劃.ppt_第1頁(yè)
應(yīng)用LINGO、MATLAB軟件求解線性規(guī)劃.ppt_第2頁(yè)
應(yīng)用LINGO、MATLAB軟件求解線性規(guī)劃.ppt_第3頁(yè)
應(yīng)用LINGO、MATLAB軟件求解線性規(guī)劃.ppt_第4頁(yè)
應(yīng)用LINGO、MATLAB軟件求解線性規(guī)劃.ppt_第5頁(yè)
已閱讀5頁(yè),還剩32頁(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.5 應(yīng)用LINGO、MATLAB軟件求解線性規(guī)劃,1.5.1 應(yīng)用LINGO軟件求解線性規(guī)劃,一、LINGO使用簡(jiǎn)介 LINGO軟件是美國(guó)的LINDO系統(tǒng)公司(Lindo System Inc)開(kāi)發(fā)的一套用于求解最優(yōu)化問(wèn)題的軟件包。LINGO除了能用于求解線性規(guī)劃和二次規(guī)劃外,還可以用于非線性規(guī)劃求解以及一些線性和非線性方程(組)的求解等。LINGO軟件的最大特色在于它允許優(yōu)化模型中的決策變量為整數(shù),而且執(zhí)行速度快。LINGO內(nèi)置了一種建立最優(yōu)化模型的語(yǔ)言,可以簡(jiǎn)便地表達(dá)大規(guī)模問(wèn)題,利用LINGO高效的求解器可快速求解并分析結(jié)果,這里簡(jiǎn)單介紹LINGO的使用方法。 LINGO可以求解線性規(guī)劃、二次規(guī)劃、非線性規(guī)劃、整數(shù)規(guī)劃、圖論及網(wǎng)絡(luò)優(yōu)化和排隊(duì)論模型中的最優(yōu)化問(wèn)題等。,一個(gè)LINGO程序一般會(huì)包含集合段、數(shù)據(jù)輸入段、優(yōu)化目標(biāo)和約束段、初始段和數(shù)據(jù)預(yù)處理段等部分,每一部分有其獨(dú)特的作用和語(yǔ)法規(guī)則,讀者可以通過(guò)查閱相關(guān)的參考書(shū)或者LINGO的HELP文件詳細(xì)了解,這里就不展開(kāi)介紹了。,LINGO的主要功能特色為:既能求解線性規(guī)劃問(wèn)題,也有較強(qiáng)的求解非線性規(guī)劃問(wèn)題的能力;輸入模型簡(jiǎn)練直觀;運(yùn)算速度快、計(jì)算能力強(qiáng);內(nèi)置建模語(yǔ)言,提供幾十個(gè)內(nèi)部函數(shù),從而能以較少語(yǔ)句,較直觀的方式描述大規(guī)模的優(yōu)化模型;將集合的概念引入編程語(yǔ)言,很容易將實(shí)際問(wèn)題轉(zhuǎn)換為L(zhǎng)INGO模型;并且能方便地與Excel、數(shù)據(jù)庫(kù)等其他軟件交換數(shù)據(jù)。,LINGO的語(yǔ)法規(guī)定: (1)求目標(biāo)函數(shù)的最大值或最小值分別用MAX=或MIN=來(lái)表示; (2)每個(gè)語(yǔ)句必須以分號(hào)“;”結(jié)束,每行可以有許多語(yǔ)句,語(yǔ)句可以跨行; (3)變量名稱必須以字母(AZ)開(kāi)頭,由字母、數(shù)字(09)和下劃線所組成,長(zhǎng)度不超過(guò)32個(gè)字符,不區(qū)分大小寫(xiě); (4)可以給語(yǔ)句加上標(biāo)號(hào),例如OBJMAX=200*X1+300*X2; (5)以驚嘆號(hào)“!”開(kāi)頭,以分號(hào)“;”結(jié)束的語(yǔ)句是注釋語(yǔ)句; (6)如果對(duì)變量的取值范圍沒(méi)有作特殊說(shuō)明,則默認(rèn)所有決策變量都非負(fù); (7)LINGO模型以語(yǔ)句“MODEL:”開(kāi)頭,以“END”結(jié)束,對(duì)于比較簡(jiǎn)單的模型,這兩個(gè)語(yǔ)句可以省略。,在LINGO的MODEL窗口內(nèi)輸入如下模型: model: max=2*x1+3*x2; x1+2*x2=8; 4*x1=16; 4*x2=12; End,例1.5.1 用LINGO求解例1.1.2。 解 例1.1.2建立的線性規(guī)劃數(shù)學(xué)模型為(1.1.4),選菜單Lingo|Solve(或按Ctrl+S),或用鼠標(biāo)點(diǎn)擊“求解”按紐,如果模型有語(yǔ)法錯(cuò)誤,則彈出一個(gè)標(biāo)題為“LINGO Error Message”(錯(cuò)誤信息)的窗口,指出在哪一行有怎樣的錯(cuò)誤,每一種錯(cuò)誤都有一個(gè)編號(hào)(具體含義可查閱相關(guān)文獻(xiàn)或LINGO的Help)。改正錯(cuò)誤以后再求解,如果語(yǔ)法通過(guò), LINGO用內(nèi)部所帶的求解程序求出模型的解, 然后彈出一個(gè)標(biāo)題為“LINGO Solver Status”(求解狀態(tài))的窗口, 其內(nèi)容為變量個(gè)數(shù)、約束條件個(gè)數(shù)、優(yōu)化狀態(tài)、耗費(fèi)內(nèi)存、所花時(shí)間等信息, 點(diǎn)擊Close關(guān)閉窗口, 屏幕上出現(xiàn)標(biāo)題為“Solution Report”(解的報(bào)告)的信息窗口, 顯示優(yōu)化計(jì)算(線性規(guī)劃中換基迭代)的步數(shù)、優(yōu)化后的目標(biāo)函數(shù)值、列出各變量的計(jì)算結(jié)果。本例的具體內(nèi)容如下:,Global optimal solution found at iteration: 5 Objective value: 14.00000 Variable Value Reduced Cost X1 4.000000 0.000000 X2 2.000000 0.000000 Row Slack or Surplus Dual Price 1 14.00000 1.000000 2 0.000000 1.500000 3 0.000000 0.1250000 4 4.000000 0.000000,該報(bào)告說(shuō)明:運(yùn)行5步找到全局最優(yōu)解,目標(biāo)函數(shù)值為14,變量值分別為 。“Reduced Cost”的含義是需縮減成本系數(shù)或需增加利潤(rùn)系數(shù)(最優(yōu)解中取值非零的決策變量的Reduced Cost值等于零)。“Row”是輸入模型中的行號(hào),目標(biāo)函數(shù)是第一行;“Slack or Surplus”的意思是松弛或剩余,即約束條件左邊與右邊的差值,對(duì)于“ ”的不等式,右邊減左邊的差值為Slack(松弛),對(duì)于“ ”的不等式,左邊減的右邊差值為Surplus(剩余),當(dāng)約束條件兩邊相等時(shí),松弛或剩余的值等于零?!癉ual Price”的意思是對(duì)偶價(jià)格(或稱為影子價(jià)格,意義見(jiàn)2.5),上述報(bào)告中Row2的松弛值為0,表明生產(chǎn)甲產(chǎn)品4單位、乙產(chǎn)品2單位,所需設(shè)備8臺(tái)時(shí)已經(jīng)飽和,對(duì)偶價(jià)格1.5的含義是:如果設(shè)備增加1臺(tái)時(shí),能使目標(biāo)函數(shù)值增加1.5。報(bào)告中Row4的松弛值為4,表明生產(chǎn)甲產(chǎn)品4單位、乙產(chǎn)品2單位,所需原材料乙8公斤還剩余4公斤,因此增加原材料乙不會(huì)使目標(biāo)函數(shù)值增加,所以對(duì)偶價(jià)格為0。,在LINGO的MODEL窗口內(nèi)輸入如下模型: Min=0.2*x1+0.7*x2+0.4*x3+0.3*x4+0.5*x5; 0.3*x1+2*x2+x3+0.6*x4+1.8*x560; 0.1*x1+0.05*x2+0.02*x3+0.2*x4+0.05*x53; 0.05*x1+0.1*x2+0.02*x3+0.2*x4+0.08*x58; X1+x2+x3+x4+x552;,例1.5.2 用LINGO求解例1.1.3食譜問(wèn)題。 解 例1.1.3食譜問(wèn)題的數(shù)學(xué)模型為(1.1.6),求解輸出結(jié)果如下: Global optimal solution found at iteration: 4 Objective value: 22.40000 Variable Value Reduced Cost X1 0.000000 0.7000000 X2 12.00000 0.000000 X3 0.000000 0.6166667 X4 30.00000 0.000000 X5 10.00000 0.000000 Row Slack or Surplus Dual Price 1 22.40000 -1.000000 2 0.000000 -0.5833333 3 4.100000 0.000000 4 0.000000 -4.166667 5 0.000000 0.8833333,因此,每周每個(gè)動(dòng)物的配料為飼料A2、A4、A5分別為12、30和10,合計(jì)為52,可使得飼養(yǎng)成本達(dá)到最小,最小成本為22.4元;不選用飼料和的原因是因?yàn)檫@兩種飼料的價(jià)格太高了,沒(méi)有競(jìng)爭(zhēng)力?!癛educed Cost”分別等于0.7和0.617,說(shuō)明當(dāng)這兩種飼料的價(jià)格分別降低0.7元和0.62元以上時(shí),不僅選用這兩種飼料而且使得飼養(yǎng)成本降低。從“Slack or Surplus”可以看出,蛋白質(zhì)和維生素剛達(dá)到最低標(biāo)準(zhǔn),礦物質(zhì)超過(guò)最低標(biāo)準(zhǔn)4.1;從“Dual Price”可以得到降低標(biāo)準(zhǔn)蛋白質(zhì)1單位可使飼養(yǎng)成本降低0.583元,降低標(biāo)準(zhǔn)維生素1單位可使飼養(yǎng)成本降低4.167元,但降低礦物質(zhì)的標(biāo)準(zhǔn)不會(huì)降低飼養(yǎng)成本,如果動(dòng)物的進(jìn)食量減少,就必須選取精一些的飼料但要增加成本,大約進(jìn)食量降低1可使得飼養(yǎng)成本增加0.88元。,(1.5.1),1.5.2 應(yīng)用MATLAB求解線性規(guī)劃,MATLAB(MATrix LABoratory)的基本含義是矩陣實(shí)驗(yàn)室,它是由美國(guó)MathWorks公司研制開(kāi)發(fā)的一套高性能的集數(shù)值計(jì)算、信息處理、圖形顯示等于一體的可視化數(shù)學(xué)工具軟件。它是建立在向量、數(shù)組和矩陣基礎(chǔ)之上的,除了基本的數(shù)值計(jì)算、數(shù)據(jù)處理、圖形顯示等功能之外,還包含功能強(qiáng)大的多個(gè)“工具箱”,如優(yōu)化工具箱(optimization toolbox)、統(tǒng)計(jì)工具箱、樣條函數(shù)工具箱和數(shù)據(jù)擬合工具箱等都是優(yōu)化計(jì)算的有力工具。在這里僅介紹用MATLAB6.5優(yōu)化工具箱求解線性規(guī)劃問(wèn)題。 一般線性規(guī)劃問(wèn)題的數(shù)學(xué)模型為,其中C是目標(biāo)函數(shù)的系數(shù)行向量(常數(shù)), X 是n維列向量(決策變量),A, A1是常數(shù)矩陣,b,b1是常數(shù)向量,lb,ub是n維列向量分別表示決策變量X的下界與上界。 在Matlab優(yōu)化工具箱(Optimization Toolbox)中,求解(1.5.1)的程序如下:x,fval,exitflag,output,lambda = linprog (c,A,b,Aeq,beq,lb,ub,x0,options) 說(shuō)明:(1)A是不等式約束的系數(shù)矩陣,b是相應(yīng)的常數(shù)列向量,若沒(méi)有不等式約束,則均用 代替; (2) Aeq是等式約束的系數(shù)矩陣,beq是相應(yīng)的常數(shù)列向量,若沒(méi)有等式約束,則均用代替; (3)如果某個(gè)變量無(wú)下界,則用-inf表示;如果某個(gè)變量無(wú)上界,則用inf表示,若決策變量 無(wú)下界,則lb用代替;若決策變量 無(wú)上界,則ub用代替; (4) x0是線性規(guī)劃的初始解,這種設(shè)計(jì)僅對(duì)中規(guī)模算法有效,通常可以缺省。,(5) 輸出 是最優(yōu)解,fval是最優(yōu)值。 (6) 輸出exitflag描述了程序的運(yùn)行情況,若其值大于零,表示程序收斂到最優(yōu)解 ;若其值等于零,表示計(jì)算達(dá)到了最大次數(shù);若其值小于零,表示問(wèn)題無(wú)可行解,或程序運(yùn)行失敗。 (7)輸出output表示程序運(yùn)行的某些信息,如迭代次數(shù)(iterations)、所用算法(algorithm)、共軛梯度(cgiterations)等。 (8)lambda表示解處的拉格朗日乘子,其中l(wèi)ower,upper,ineqlin,eqlin分別對(duì)應(yīng)于下界、上界、不等式約束與等式約束。,解 Matlab程序如下: c=-2,-1,1; A=1,4,-1;2,-2,1; b=4;12; Aeq=1,1,2; beq=6; lb=0,0,-inf; ub=inf,inf,5; x,z=linprog(c,A,b,Aeq,beq,lb,ub) 運(yùn)行后得到輸出 Optimization terminated successfully. x= 4.6667 0.0000 0.6667 z= -8.6667,例1.5.4 用MATLAB求解線性規(guī)劃問(wèn)題,(1.5.3),解 首先轉(zhuǎn)化為求最小值問(wèn)題,Matlab程序如下 c=-2,-3,5; A=-2,5,-1; b=-10; Aeq=1,1,1; beq=7; lb=0,0,0; x,z=linprog(c,A,b,Aeq,beq,lb),運(yùn)行后得到輸出 x = 6.4286 0.5714 0.0000 z = -14.5714 鍵入 s=-z 運(yùn)行后得到原問(wèn)題的目標(biāo)函數(shù)最大值 s=14.5714,用MATLAB求解例1.5.2的程序與輸出結(jié)果為: c=0.2,0.7,0.4,0.3,0.5; A=-0.3,-2,-1,-0.6,-1.8;-0.1,-0.05,-0.02,-0.2,-0.05;-0.05,-0.1,-0.02,-0.2,-0.08;1,1,1,1,1; b=-60;-3;-8;52; lb=0,0,0,0,0; x,z=linprog(c,A,b,lb),Optimization terminated successfully. x = 0.0000 12.0000 0.0000 30.0000 10.0000 z = 22.4000,習(xí)題1 1.建立下列線性規(guī)劃問(wèn)題的數(shù)學(xué)模型 (1)某工廠生產(chǎn)A、B、C三種產(chǎn)品,三種產(chǎn)品對(duì)于材料費(fèi)用、勞動(dòng)力和電力的單位消耗系數(shù),資源限量和單位產(chǎn)品價(jià)格如表1.1所示。問(wèn)應(yīng)如何確定生產(chǎn)計(jì)劃可使得總產(chǎn)值達(dá)到最大?建立線性規(guī)劃問(wèn)題的數(shù)學(xué)模型。,表1.1 生產(chǎn)計(jì)劃問(wèn)題的數(shù)據(jù),(2)某療養(yǎng)院營(yíng)養(yǎng)師要為某類病人擬訂一周的菜單??晒┻x擇的蔬菜及其費(fèi)用和所含營(yíng)養(yǎng)成分的數(shù)量以及這類病人每周所需各種營(yíng)養(yǎng)成分的最低數(shù)量如表1.2所示。另外,為了口味的需要,規(guī)定一周內(nèi)所用卷心菜不多于2份,其他蔬菜不多于4份。若病人每周需要14份蔬菜,問(wèn)選用每種蔬菜各多少份,可使生活費(fèi)用最小。建立線性規(guī)劃問(wèn)題的數(shù)學(xué)模型。,表1.2 食譜問(wèn)題的數(shù)據(jù),(4)某糖果廠用原料A、B、C加工成三種不同牌號(hào)的糖果甲、乙、丙,已知各種牌號(hào)的糖果中A、B、C的含量,原料成本,各種原料的每月限制用量,三種牌號(hào)糖果的單位加工費(fèi)及售價(jià)如表1.4所示,問(wèn)該廠每月應(yīng)生產(chǎn)這三種牌號(hào)的糖果各多少千克,使該廠獲利最大?試建立這個(gè)問(wèn)題的線性規(guī)劃數(shù)學(xué)模型。,表1.4 糖果廠生產(chǎn)計(jì)劃數(shù)據(jù)表,表1.5 隨 變化的數(shù)據(jù)表,求擬合以上數(shù)據(jù)的直線 ,目標(biāo)為使y的各個(gè)觀察值同按直線關(guān)系所預(yù)期的值的絕對(duì)偏差總和為最小(即:誤差絕對(duì)值之和最?。=⒕€性規(guī)劃問(wèn)題的數(shù)學(xué)模型。 (提示:對(duì)任意的 ,令: 那么, ),2.將下列線性規(guī)劃問(wèn)題化成標(biāo)準(zhǔn)形,(1),(2),3.用圖解法求解下列線性規(guī)劃問(wèn)題,(1),(2),(3),(4),(5),4.試將下述問(wèn)題改寫(xiě)成線性規(guī)劃問(wèn)題,8.用單純形方法求解下列線性規(guī)劃問(wèn)題,(1),(2),(3),(4),9某工廠在計(jì)劃期內(nèi)要安排甲、乙兩種產(chǎn)品的生產(chǎn),已知生產(chǎn)單位產(chǎn)品所需的設(shè)備臺(tái)時(shí)及A、B兩種原材料的消耗、資源的限制和每單位產(chǎn)品的獲利如表1.6。問(wèn)工廠應(yīng)分別生產(chǎn)甲、乙產(chǎn)品多少單位才能使

溫馨提示

  • 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)論