優(yōu)化模型與Lingo軟課件_第1頁
優(yōu)化模型與Lingo軟課件_第2頁
優(yōu)化模型與Lingo軟課件_第3頁
優(yōu)化模型與Lingo軟課件_第4頁
優(yōu)化模型與Lingo軟課件_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、內(nèi)容提要一、優(yōu)化模型簡介一、優(yōu)化模型簡介二、二、LINDO公司的主要軟件產(chǎn)品及功能簡介公司的主要軟件產(chǎn)品及功能簡介三、LINDO軟件的使用四、四、LINGO軟件的使用軟件的使用五、建模與求解實例五、建模與求解實例 (結(jié)合軟件使用結(jié)合軟件使用)一、優(yōu)化模型簡介 許多生產(chǎn)計劃與管理問題都可以歸納為最優(yōu)化許多生產(chǎn)計劃與管理問題都可以歸納為最優(yōu)化問題問題, 最優(yōu)化模型是數(shù)學(xué)建模中應(yīng)用最廣泛的最優(yōu)化模型是數(shù)學(xué)建模中應(yīng)用最廣泛的模型之一,其內(nèi)容包括線性規(guī)劃、整數(shù)線性規(guī)模型之一,其內(nèi)容包括線性規(guī)劃、整數(shù)線性規(guī)劃、非線性規(guī)劃、動態(tài)規(guī)劃、變分法、最優(yōu)控劃、非線性規(guī)劃、動態(tài)規(guī)劃、變分法、最優(yōu)控制等。制等。近幾年來

2、的全國大學(xué)生數(shù)學(xué)建模競賽中,近幾年來的全國大學(xué)生數(shù)學(xué)建模競賽中,幾乎每次都有一道題要用到此方法。幾乎每次都有一道題要用到此方法。優(yōu)化(數(shù)學(xué)規(guī)劃)模型的一般形式優(yōu)化(數(shù)學(xué)規(guī)劃)模型的一般形式:mixgtsxxxxfzMaxMiniTn, 2 , 1, 0)(. .),(),()(1或x決策變量決策變量f(x)目標(biāo)函數(shù)目標(biāo)函數(shù)gi(x) 0約束條件約束條件分類:分類:線性規(guī)劃線性規(guī)劃(LP)二次規(guī)劃二次規(guī)劃(QP)非線性規(guī)劃非線性規(guī)劃(NLP)純整數(shù)規(guī)劃純整數(shù)規(guī)劃(PIP)混合整數(shù)規(guī)劃混合整數(shù)規(guī)劃(MIP)整數(shù)規(guī)劃整數(shù)規(guī)劃(IP)0-1整數(shù)規(guī)劃整數(shù)規(guī)劃一般整數(shù)規(guī)劃一般整數(shù)規(guī)劃連續(xù)規(guī)劃連續(xù)規(guī)劃 建立

3、優(yōu)化模型的關(guān)鍵步驟建立優(yōu)化模型的關(guān)鍵步驟: 1. 確定決策變量; 2. 確定決策的目標(biāo),將目標(biāo)函數(shù)用決策變量表示出來; 3. 確定約束條件,將約束條件用包含決策變量的等式或不等式表示出來。建模時需要注意的幾個基本問題建模時需要注意的幾個基本問題 1. 盡量使用實數(shù)優(yōu)化,減少整數(shù)約束和整數(shù)盡量使用實數(shù)優(yōu)化,減少整數(shù)約束和整數(shù)變量變量 2. 盡量使用光滑優(yōu)化,減少非光滑約束的個盡量使用光滑優(yōu)化,減少非光滑約束的個數(shù)數(shù) 如:盡量少使用絕對值、符號函數(shù)、多個變量如:盡量少使用絕對值、符號函數(shù)、多個變量求最大求最大/最小值、四舍五入、取整函數(shù)等最小值、四舍五入、取整函數(shù)等 3. 盡量使用線性模型,減少非

4、線性約束和非盡量使用線性模型,減少非線性約束和非線性變量的個數(shù)(如線性變量的個數(shù)(如x/y 5 改為改為x5y) 4. 合理設(shè)定變量上下界,盡可能給出變量初合理設(shè)定變量上下界,盡可能給出變量初始值始值 5. 模型中使用的參數(shù)數(shù)量級要適當(dāng)模型中使用的參數(shù)數(shù)量級要適當(dāng) (如小于如小于103) 模型的求解:模型的求解: 我們遇到的實際問題一般規(guī)模都較大,即使建立了模型,找到了解的方法,對于龐大的計算量也是望而卻步?!肮び破涫拢叵壤淦鳌?,手中有一個方便的求解最優(yōu)化問題的工具就顯得很重要。LINGO 系列優(yōu)化軟件包就給我們提供了理想的選擇。二、二、LINDO LINDO 公司軟件產(chǎn)品公司軟件產(chǎn)品簡

5、要介紹簡要介紹 LINGOLINGO系列軟件是專門用於求解數(shù)學(xué)規(guī)劃問題的套系列軟件是專門用於求解數(shù)學(xué)規(guī)劃問題的套裝軟體。由於執(zhí)行速度很快、易於方便輸入、求裝軟體。由於執(zhí)行速度很快、易於方便輸入、求解和分析數(shù)學(xué)規(guī)劃問題解和分析數(shù)學(xué)規(guī)劃問題, , 因此在數(shù)學(xué)、科研和工因此在數(shù)學(xué)、科研和工業(yè)界得到廣泛應(yīng)用。業(yè)界得到廣泛應(yīng)用。 美國芝加哥美國芝加哥(Chicago)大學(xué)的大學(xué)的Linus Schrage教教授于授于1980年前后開發(fā)年前后開發(fā), 后來成立后來成立 LINDO系系統(tǒng)公司(統(tǒng)公司(LINDO Systems Inc.),), 網(wǎng)址:網(wǎng)址:http:/ LINDO: Linear INter

6、active and Discrete Optimizer (V6.1) LINGO: Linear INteractive General Optimizer (V8.0) LINDO API: LINDO Application Programming Interface (V2.0) Whats Best!: (SpreadSheet e.g. EXCEL) (V7.0) LINGO 軟件包有多種版本,但其軟件內(nèi)核和使用方法類似。教學(xué)版和發(fā)行版的主要區(qū)別在于對優(yōu)化問題的規(guī)模(變量和約束的個數(shù))有不同的限制。詳細(xì)情況可上網(wǎng)訪問LINGO 軟件網(wǎng)站:.LINDO和LINGO軟件能求解的優(yōu)化模

7、型 LINGO LINDO優(yōu)化模型優(yōu)化模型線性規(guī)劃線性規(guī)劃(LP)非線性規(guī)劃非線性規(guī)劃(NLP)二次規(guī)劃二次規(guī)劃(QP)連續(xù)優(yōu)化連續(xù)優(yōu)化整數(shù)規(guī)劃整數(shù)規(guī)劃(IP) LINGOLINGO主要用於解線性規(guī)劃、非線性規(guī)劃、二主要用於解線性規(guī)劃、非線性規(guī)劃、二次規(guī)劃和整數(shù)規(guī)劃等題。也可以用於一些非線次規(guī)劃和整數(shù)規(guī)劃等題。也可以用於一些非線性和線性方程組的求解以及代數(shù)方程求根等。性和線性方程組的求解以及代數(shù)方程求根等。LINGOLINGO中包含了一種建模語言和許多常用的數(shù)中包含了一種建模語言和許多常用的數(shù)學(xué)函數(shù),可供使用者建立規(guī)劃問題使用。學(xué)函數(shù),可供使用者建立規(guī)劃問題使用。需要掌握的幾個重要方面需要掌握

8、的幾個重要方面 1、LINDO: 正確閱讀求解報告(尤其要掌握敏感性分析)正確閱讀求解報告(尤其要掌握敏感性分析) 2、LINGO: 掌握集合掌握集合(SETS)的應(yīng)用;的應(yīng)用;正確閱讀求解報告;正確閱讀求解報告;正確理解求解狀態(tài)窗口;正確理解求解狀態(tài)窗口; 學(xué)會設(shè)置基本的求解選項學(xué)會設(shè)置基本的求解選項(OPTIONS) ; 掌握與外部文件的基本接口方法掌握與外部文件的基本接口方法三、LINDO軟件的使用 LINDO (Linear INteractive and Discrete Optimizer),可以用來求解線性規(guī)劃(LP)、整數(shù)規(guī)劃(IP)和二次規(guī)劃(QP)問題。3.1 兩個簡單的例

9、子:兩個簡單的例子: 例1 求解如下的LP問題: Max z=2x+3y s.t. 4x+3y10 3x+5y12 x,y0 用用 Lindo來描述來描述:MAX 2x+3y ST 2) 4x+3y=10 3) 3x+5y=12END例2 奶制品的生產(chǎn)計劃奶制品的生產(chǎn)計劃1桶牛奶 3公斤A1 12小時 8小時 4公斤A2 或獲利24元/公斤 獲利16元/公斤 50桶牛奶桶牛奶 時間時間480小時小時 至多加工至多加工100公斤公斤A1 制訂生產(chǎn)計劃,使每天獲利最大制訂生產(chǎn)計劃,使每天獲利最大 35元可買到元可買到1桶牛奶,買嗎?若買,每天最多買多少桶牛奶,買嗎?若買,每天最多買多少? 可聘用臨

10、時工人,付出的工資最多是每小時幾元可聘用臨時工人,付出的工資最多是每小時幾元? A1的獲利增加到的獲利增加到 30元元/公斤,應(yīng)否改變生產(chǎn)計劃?公斤,應(yīng)否改變生產(chǎn)計劃? 每天:每天:1桶牛奶 3公斤A1 12小時 8小時 4公斤A2 或獲利24元/公斤 獲利16元/公斤 x1桶牛奶生產(chǎn)桶牛奶生產(chǎn)A1 x2桶牛奶生產(chǎn)桶牛奶生產(chǎn)A2 獲利獲利 243x1 獲利獲利 164 x2 原料供應(yīng)原料供應(yīng) 5021 xx勞動時間勞動時間 48081221 xx加工能力加工能力 10031x決策變量決策變量 目標(biāo)函數(shù)目標(biāo)函數(shù) 216472xxzMax每天獲利每天獲利約束條件約束條件非負(fù)約束非負(fù)約束 0,21x

11、x線性線性規(guī)劃規(guī)劃模型模型(LP)時間時間480小時小時 至多加工至多加工100公斤公斤A1 50桶牛奶桶牛奶 每天每天模型求解模型求解 Max 72x1+64x2s.t.x1+x25012x1+8x24803x1100end OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4

12、) 40.000000 0.000000 NO. ITERATIONS= 2DO RANGE (SENSITIVITY) ANALYSIS? No20桶牛奶生產(chǎn)桶牛奶生產(chǎn)A1, 30桶生產(chǎn)桶生產(chǎn)A2,利潤,利潤3360元。元。 模型求解模型求解 reduced cost值表值表示當(dāng)該非基變量示當(dāng)該非基變量增加一個單位時增加一個單位時(其他非基變量(其他非基變量保持不變)目標(biāo)保持不變)目標(biāo)函數(shù)減少的量函數(shù)減少的量(對對max型問題型問題) OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0

13、.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000 NO. ITERATIONS= 2也可理解為:也可理解為:為了使該非基變?yōu)榱耸乖摲腔兞孔兂苫兞浚孔兂苫兞?,目?biāo)函數(shù)中對應(yīng)目標(biāo)函數(shù)中對應(yīng)系數(shù)應(yīng)增加的量系數(shù)應(yīng)增加的量 OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000

14、 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000原料無剩余原料無剩余時間無剩余時間無剩余加工能力剩余加工能力剩余40Max 72x1+64x2stx1+x25012x1+8x24803x1100end三三種種資資源源“資源資源” 剩余為零的約束為緊約束(有效約束)剩余為零的約束為緊約束(有效約束) 結(jié)果解釋結(jié)果解釋 OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE

15、 VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000結(jié)果解釋結(jié)果解釋 最優(yōu)解下最優(yōu)解下“資源資源”增增加加1單位時單位時“效益效益”的的增量增量 原料增原料增1單位單位, 利潤增利潤增48 時間加時間加1單位單位, 利潤增利潤增2 能力增減不影響利潤能力增減不影響利潤影子價格影子價格 35元可買到元可買到1桶牛奶,要買嗎?桶牛奶

16、,要買嗎? 35 ”(或(或“=”(或(或“=”)功能相同)功能相同變量與系數(shù)間可有空格變量與系數(shù)間可有空格(甚至回車甚至回車), 但無運(yùn)算符但無運(yùn)算符變量名以字母開頭,不能超過變量名以字母開頭,不能超過8個字符個字符變量名不區(qū)分大小寫(包括變量名不區(qū)分大小寫(包括LINDO中的關(guān)鍵字)中的關(guān)鍵字)目標(biāo)函數(shù)所在行是第一行,第二行起為約束條件目標(biāo)函數(shù)所在行是第一行,第二行起為約束條件行號行號(行名行名)自動產(chǎn)生或人為定義。行名以自動產(chǎn)生或人為定義。行名以“)”結(jié)束結(jié)束行中注有行中注有“!”符號的后面部分為注釋。如符號的后面部分為注釋。如: ! Its Comment.在模型的任何地方都可以用在模

17、型的任何地方都可以用“TITLE” 對模型命對模型命名(最多名(最多72個字符),如:個字符),如: TITLE This Model is only an Example變量不能出現(xiàn)在一個約束條件的右端變量不能出現(xiàn)在一個約束條件的右端表達(dá)式中不接受括號表達(dá)式中不接受括號“( )”和逗號和逗號“,”等任何符號等任何符號, 例例: 400(X1+X2)需寫為需寫為400X1+400X2表達(dá)式應(yīng)化簡,如表達(dá)式應(yīng)化簡,如2X1+3X2- 4X1應(yīng)寫成應(yīng)寫成 -2X1+3X2缺省假定所有變量非負(fù);可在模型的缺省假定所有變量非負(fù);可在模型的“END”語句后語句后用用“FREE name”將變量將變量na

18、me的非負(fù)假定取消的非負(fù)假定取消可在可在 “END”后用后用“SUB” 或或“SLB” 設(shè)定變量上下設(shè)定變量上下界界 例如:例如: “sub x1 10”的作用等價于的作用等價于“x1=10” 但用但用“SUB”和和“SLB”表示的上下界約束不計入表示的上下界約束不計入模型的約束,也不能給出其松緊判斷和敏感性分析。模型的約束,也不能給出其松緊判斷和敏感性分析。14. “END”后對后對0-1變量說明:變量說明:INT n 或或 INT name15. “END”后對整數(shù)變量說明:后對整數(shù)變量說明:GIN n 或或 GIN name四、LINGO軟件的使用LINGO 是用來求解線性和非線性優(yōu)化問

19、題的簡易工具。LINGO 內(nèi)置了一種建立最優(yōu)化模型的語言,可以簡便地表達(dá)大規(guī)模問題,利用LINGO 高效的求解器可快速求解并分析結(jié)果。包含了包含了LINDO的全部功能的全部功能提供了靈活的編程語言(矩陣生成器)提供了靈活的編程語言(矩陣生成器)ia1 . 2 58 . 7 50 . 55 . 7 537 . 2 5b1 . 2 50 . 7 54 . 7 556 . 57 . 7 5d354761 14.1 幾個簡單的例子 例1 用用Lingo求解線性規(guī)劃求解線性規(guī)劃(奶制品的生產(chǎn)計奶制品的生產(chǎn)計劃)劃)Lindo 模型:模型:Max 72x1+64x2s.t.x1+x25012x1+8x24

20、803x1100end對應(yīng)的對應(yīng)的Lingo 模型:模型:Model:Max=72*x1+64*x2;x1+x250;12*x1+8*x2480;3*x10; Y0; END例3 用Lingo非線性規(guī)劃Model :min=200*D1*X1+150*D2*X2+200*D3+300*D4;D1=(X-5)2+(Y-10)2).5;D2=(X-10)2+(Y-5)2).5;D3=(X2+(Y-12)2).5;D4=(X-12)2+Y2).5;gin(X); ! gin(X) 表示X為整數(shù) ;gin(Y); ! gin(Y) 表示X為整數(shù) ;bin(X1) ! bin(X1)表示X1為0-1變量

21、;bin(X2) ! bin(X2)表示X2為0-1變量;end問題問題1. 如何下料最節(jié)省如何下料最節(jié)省 ? 例例4 4 鋼管下料問題鋼管下料問題 問題問題2. 客戶增加需求:客戶增加需求:原料鋼管原料鋼管: :每根每根19米米 4米米50根根 6米米20根根 8米米15根根 客戶需求客戶需求節(jié)省的標(biāo)準(zhǔn)是什么?節(jié)省的標(biāo)準(zhǔn)是什么?由于采用不同切割模式太多,會增加生產(chǎn)和管理成本,由于采用不同切割模式太多,會增加生產(chǎn)和管理成本,規(guī)定切割模式不能超過規(guī)定切割模式不能超過3種。問如何下料最節(jié)???種。問如何下料最節(jié)???5米米10根根 按照客戶需要在一根原料鋼管上安排切割的一種組合。按照客戶需要在一根原料

22、鋼管上安排切割的一種組合。 切割模切割模式式余料余料1 1米米 4米米1根根 6米米1根根 8米米1根根 余料余料3米米 4米米1根根 6米米1根根 6米米1根根 合理切割模式合理切割模式的余料應(yīng)小于客戶需要鋼管的最小尺寸的余料應(yīng)小于客戶需要鋼管的最小尺寸余料余料3米米 8米米1根根 8米米1根根 鋼管下料鋼管下料 為滿足客戶需要,按照哪些種合理模式,每種模式為滿足客戶需要,按照哪些種合理模式,每種模式切割多少根原料鋼管,最為節(jié)省?切割多少根原料鋼管,最為節(jié)省?合理切割模合理切割模式式2. 所用原料鋼管總根數(shù)最少所用原料鋼管總根數(shù)最少 模式模式 4米鋼管根數(shù)米鋼管根數(shù)6米鋼管根數(shù)米鋼管根數(shù)8米

23、鋼管根數(shù)米鋼管根數(shù)余料余料(米米)14003231013201341203511116030170023鋼管下料問題鋼管下料問題1 1 兩種兩種標(biāo)準(zhǔn)標(biāo)準(zhǔn)1. 原料鋼管剩余總余量最小原料鋼管剩余總余量最小xi 按第按第i 種模式切割的原料鋼管根數(shù)種模式切割的原料鋼管根數(shù)( (i= =1,2,7) ) 約束約束滿足需求滿足需求 決策變量決策變量 目標(biāo)目標(biāo)1(總余量)(總余量)765432113333xxxxxxxZMin5023454321xxxxx20326542xxxx152753xxx按模式按模式2切割切割12根根, ,按模式按模式5切割切割15根,余料根,余料27米米 模模式式4米米根數(shù)根

24、數(shù)6米米根數(shù)根數(shù)8米米根數(shù)根數(shù)余余料料14003231013201341203511116030170023需需求求502015最優(yōu)解:最優(yōu)解:x2=12, x5=15, 其余為其余為0;最優(yōu)值:最優(yōu)值:27整數(shù)約束:整數(shù)約束: xi 為整數(shù)為整數(shù)當(dāng)余料沒有用處時,當(dāng)余料沒有用處時,通常以總根數(shù)最少為目標(biāo)通常以總根數(shù)最少為目標(biāo) 76543212xxxxxxxZMin目標(biāo)目標(biāo)2(總根數(shù))(總根數(shù))鋼管下料問題鋼管下料問題1 1 約束條約束條件不變件不變 最優(yōu)解:最優(yōu)解:x2=15, x5=5, x7=5, 其余為其余為0;最優(yōu)值:最優(yōu)值:25。5023454321xxxxx20326542xxx

25、x152753xxxxi 為整數(shù)按模式按模式2切割切割15根,根,按模式按模式5切割切割5根,根,按模式按模式7切割切割5根,根,共共25根,余料根,余料35米米 雖余料增加雖余料增加8米,但減少了米,但減少了2根根 與與目標(biāo)目標(biāo)1的結(jié)果的結(jié)果“共切割共切割27根,余料根,余料27米米” 相比相比 鋼管下料問題鋼管下料問題2 2對大規(guī)模問題,用模型的約束條件界定合理模式對大規(guī)模問題,用模型的約束條件界定合理模式增加一種需求:增加一種需求:5米米10根;切割根;切割模式不超過模式不超過3種。種?,F(xiàn)有現(xiàn)有4種種需求:需求:4米米50根,根,5米米10根,根,6米米20根,根,8米米15根,用枚舉法

26、確定合理切割模式,過于復(fù)雜。根,用枚舉法確定合理切割模式,過于復(fù)雜。決策變量決策變量 xi 按第按第i 種模式切割的原料鋼管根數(shù)種模式切割的原料鋼管根數(shù)( (i= =1,2,3) ) r1i, r2i, r3i, r4i 第第i 種切割模式下,每根原料鋼管種切割模式下,每根原料鋼管生產(chǎn)生產(chǎn)4米、米、5米、米、6米和米和8米長的鋼管的數(shù)量米長的鋼管的數(shù)量滿足需求滿足需求50313212111xrxrxr10323222121xrxrxr20333232131xrxrxrxrxr模式合理:每根模式合理:每根余料不超過余料不超過3米米1986541641312111rrrr

27、1986541642322212rrrr1986541643332313rrrr整數(shù)非線性規(guī)劃模型整數(shù)非線性規(guī)劃模型鋼管下料問題鋼管下料問題2 2目標(biāo)函數(shù)(目標(biāo)函數(shù)(總根數(shù))總根數(shù))321xxxMin約束約束條件條件整數(shù)約束:整數(shù)約束: xi ,r1i, r2i, r3i, r4i ( (i= =1,2,3) )為整數(shù)為整數(shù)增加約束,縮小可行域,便于求解增加約束,縮小可行域,便于求解321xxx原料鋼管總根數(shù)下界:原料鋼管總根數(shù)下界: 2619158206105504特殊生產(chǎn)計劃:對每根原料鋼管特殊生產(chǎn)計劃:對每根原料鋼管模式模式1:切割成:切割成4根根4米鋼管,需米鋼管,需13根;根;模式模

28、式2:切割成:切割成1根根5米和米和2根根6米鋼管,需米鋼管,需10根;根;模式模式3:切割成:切割成2根根8米鋼管,需米鋼管,需8根。根。原料鋼管總根數(shù)上界:原料鋼管總根數(shù)上界:31 3126321xxx模式排列順序可任定模式排列順序可任定 鋼管下料問題鋼管下料問題2 2需求:需求:4米米50根,根,5米米10根,根,6米米20根,根,8米米15根根每根原料鋼管長每根原料鋼管長19米米LINGOLINGO求解整數(shù)非線性規(guī)劃模型求解整數(shù)非線性規(guī)劃模型Local optimal solution found at iteration: 12211 Objective value: 28.0000

29、0Variable Value Reduced CostX1 10.00000 0.000000X2 10.00000 2.000000X3 8.000000 1.000000R11 3.000000 0.000000R12 2.000000 0.000000R13 0.000000 0.000000R21 0.000000 0.000000R22 1.000000 0.000000 R23 0.000000 0.000000 R31 1.000000 0.000000 R32 1.000000 0.000000 R33 0.000000 0.000000 R41 0.000000 0.000

30、000 R42 0.000000 0.000000 R43 2.000000 0.000000 模式模式1:每根原料鋼管切割成:每根原料鋼管切割成3根根4米和米和1根根6米鋼管,共米鋼管,共10根;根;模式模式2:每根原料鋼管切割成:每根原料鋼管切割成2根根4米、米、1根根5米和米和1根根6米鋼管,米鋼管,共共10根;根;模式模式3:每根原料鋼管切割成:每根原料鋼管切割成2根根8米鋼管,共米鋼管,共8根。根。原料鋼管總根數(shù)為原料鋼管總根數(shù)為28根。根。演示演示cut02a.lg4; cut02b.lg4例例5:SAILCO 公司需要決定下四個季度的帆船生產(chǎn)量。公司需要決定下四個季度的帆船生產(chǎn)量

31、。下四個季度的帆船需求量分別是下四個季度的帆船需求量分別是40 條,條,60 條,條,75 條,條,25 條。每個季度正常的生產(chǎn)能力是條。每個季度正常的生產(chǎn)能力是40 條帆船,每條條帆船,每條船的生產(chǎn)費用為船的生產(chǎn)費用為400 美元。如果加班生產(chǎn),每條船的美元。如果加班生產(chǎn),每條船的生產(chǎn)費用為生產(chǎn)費用為450 美元。每個季度末,每條船的庫存費美元。每個季度末,每條船的庫存費用為用為20 美元。假定生產(chǎn)提前期為美元。假定生產(chǎn)提前期為0,初始庫存為,初始庫存為10 條條船。如何安排生產(chǎn)可使總費用最???船。如何安排生產(chǎn)可使總費用最???用用DEM,RP,OP,INV 分別表示需求、正常生產(chǎn)的產(chǎn)量、分別

32、表示需求、正常生產(chǎn)的產(chǎn)量、加班生產(chǎn)的產(chǎn)量、庫存量,則加班生產(chǎn)的產(chǎn)量、庫存量,則DEM,RP,OP,INVDEM,RP,OP,INV 對每個季對每個季度都應(yīng)該有一個對應(yīng)的值,也就說他們都應(yīng)該是一個由度都應(yīng)該有一個對應(yīng)的值,也就說他們都應(yīng)該是一個由4 個元素組成的數(shù)組,其中個元素組成的數(shù)組,其中DEM 是已知的,而是已知的,而RP,OP,INV 是未知數(shù)。是未知數(shù)。用Lingo求解模型: MODEL: SETS: QUARTERS/1.4/: Demand, RP, OP, Inv; ENDSETS DATA: Demand=40,60,75,25; ENDDATA!目標(biāo):總費用最小; MIN=S

33、UM(QUARTERS(I): 400*RP(I)+450*OP(I)+20*Inv(I);!正常生產(chǎn)能力的限制; FOR( QUARTERS(I): RP(I)=40 )!產(chǎn)品數(shù)量的平衡關(guān)系; FOR(QUARTERS(I) | I#GT#1 : Inv(I)=Inv(I-1)+RP(I)+OP(I)-Demand(I); Inv(1)=10+RP(1)+OP(1)-Demand(1); END計算結(jié)果:4.2 模型的組成:Model: 集合段(集合段(SETS: 定義集合;定義集合;ENDSETS) 數(shù)據(jù)段(數(shù)據(jù)段(DATA: 給已知的數(shù)據(jù)賦值;給已知的數(shù)據(jù)賦值; ENDDATA) 初始段

34、(初始段(INIT:給變量賦初值;給變量賦初值;ENDINIT) 目標(biāo)與約束段目標(biāo)與約束段end1 集合段(Sets Section)SETS: 集合1的定義; 集合2的定義; 集合n的定義; ENDSETS集合的類型集合的類型 集合集合 派生集合派生集合 基本集合基本集合 稀疏集合稀疏集合 稠密集合稠密集合 元素列表法元素列表法 元素過濾法元素過濾法 直接列舉法直接列舉法 隱式列舉法隱式列舉法setname /member_list/ : attribute_list;setname(parent_set_list) /member_list/ : attribute_list;SETS:

35、CITIES /A1,A2,A3,B1,B2/; ROADS(CITIES, CITIES)/ A1,B1 A1,B2 A2,B1 A3,B2/:D; ENDSETSSETS: STUDENTS /S1.S8/; PAIRS( STUDENTS, STUDENTS) | &2 #GT# &1: BENEFIT, MATCH;ENDSETS基本集合的定義格式:setname /member_list/ : attribute_list;Setname 是你選擇的來標(biāo)記集的名字,最好具有較強(qiáng)的可讀性。集名字必須嚴(yán)格符合標(biāo)準(zhǔn)命名規(guī)則:以英文字母或下劃線(_)為首字符,其后由英文字母(

36、AZ)、下劃線、阿拉伯?dāng)?shù)字(0,1,9)組成的總長度不超過32 個字符的字符串,且不區(qū)分大小寫。Member_list 是集成員列表。如果集成員放在集定義中,那么對它們可采取顯式羅列和隱式羅列兩種方式。如果集成員不放在集定義中,那么可以在隨后的數(shù)據(jù)部分定義它們。 當(dāng)顯式羅列成員時,必須為每個成員輸入當(dāng)顯式羅列成員時,必須為每個成員輸入一個不同的名字,中間用空格或逗號擱開一個不同的名字,中間用空格或逗號擱開(允許混合使用)。 例2.1 可以定義一個名為students 的原始集,它具有成員John、Jill、Rose 和Mike,屬性有sex 和age: sets: students/John

37、Jill, Rose Mike/: sex, age; endsets 當(dāng)隱式羅列成員時,不必羅列出每個集成當(dāng)隱式羅列成員時,不必羅列出每個集成員??刹捎萌缦抡Z法:員??刹捎萌缦抡Z法: setname/member1.memberN/: attribute_list; 這里的member1 是集的第一個成員名,memberN 是集的最末一個成員名。LINGO 將自動產(chǎn)生 中間的所有成員名。LINGO 也接受一些特定的首成員名和末成員名,用于創(chuàng)建一些特殊的集。集合元素的集合元素的隱式列舉隱式列舉類型類型隱式列舉格式隱式列舉格式示例示例示例集合的元素示例集合的元素數(shù)字型數(shù)字型 1.n1.51, 2

38、, 3, 4, 5字符字符-數(shù)字型數(shù)字型stringM.stringNr208Car101, car102, , car208星期型星期型 dayM.dayNMON.FRIMON, TUE, WED, THU, FRI月份型月份型 monthM.monthNOCT.JANOCT, NOV, DEC, JAN年份年份-月份型月份型monthYearM.monthYearNOCT2001.JAN2002OCT2001, NOV2001, DEC2001, JAN2002 集成員不放在集定義中,而在隨后的數(shù)據(jù)部分來定義。 例2.2 !集部分; sets: students:sex,age; ends

39、ets !數(shù)據(jù)部分; data: students,sex,age= John 1 16 Jill 0 14 Rose 0 17 Mike 1 13; enddata注意:開頭用感嘆號(!),末尾用分號(;)表示注釋,可跨多行。在集部分只定義了一個集students,并未指定成員。在數(shù)據(jù)部分羅列了集成員John、Jill、Rose 和Mike,并對屬性sex 和age 分別給出了值。集成員無論用何種字符標(biāo)記,它的索引都是從1 開始連續(xù)計數(shù)。在attribute_ list 可以指定一個或多個集成員的屬性,屬性之間必須用逗號隔開。派生集合的定義 為了定義一個派生集,必須詳細(xì)聲明: 集的名字集的名

40、字 父集的名字父集的名字 集成員(可選)集成員(可選) 集成員的屬性(可選)集成員的屬性(可選) 可用下面的語法定義一個派生集: setname(parent_set_list)/member_list/:attribute_list; setname 是集的名字。parent_set_list 是已定義的集的列表,多個時必須用逗號隔開。 如果沒有指定成員列表,那么如果沒有指定成員列表,那么LINGO 會自動創(chuàng)建父集會自動創(chuàng)建父集成員的所有組合作為派生集的成員。成員的所有組合作為派生集的成員。 例2.3sets:product/A B/;machine/M N/;week/1.2/;allow

41、ed(product,machine,week):x;endsets LINGO 生成了三個父集的所有組合共八組作為allowed 集的成員。列表如下: 編號 成員1 (A,M,1)2 (A,M,2)3 (A,N,1)4 (A,N,2)5 (B,M,1)6 (B,M,2)7 (B,N,1)8 (B,N,2) 成員列表被忽略時,派生集成員由父集成員所有的組合構(gòu)成,這樣的派生集成為稠密集稠密集。 如果限制派生集的成員,使它成為父集成員所有組合構(gòu)成的集合的一個子集,這樣的派生集成為稀疏集稀疏集。 一個派生集的成員列表有兩種方式生成: 顯式羅列;設(shè)置成員資格過濾器。 當(dāng)采用方式時,必須顯式羅列出所有要

42、包含在派生集中的成員,并且羅列的每個成員必須屬于稠密集。 例: allowed(product,machine,week)/A M 1,A N 2,B N 1/;如果需要生成一個大的、稀疏的集,那么顯式羅列就很討厭。幸運(yùn)地是許多稀疏集的成員都滿足一些條件以和非成員相區(qū)分。我們可以把這些邏輯條件看作過濾器,在LINGO 生成派生集的成員時把使邏輯條件為假的成員從稠密集中過濾掉。例2.4 sets:!學(xué)生集:性別屬性sex,1 表示男性,0 表示女性; students/John,Jill,Rose,Mike/:sex,age;!男學(xué)生和女學(xué)生的聯(lián)系集:友好程度屬性friend,0,1之間;lin

43、kmf(students,students)|sex(&1) #eq# 1 #and# sex(&2) #eq# 0: friend;!男學(xué)生和女學(xué)生的友好程度大于0.5 的集;linkmf2(linkmf) | friend(&1,&2) #ge# 0.5 : x;endsetsdata:sex,age = 1 160 140 170 13;friend = 0.3 0.5 0.6;enddata 用豎線(|)來標(biāo)記一個成員資格過濾器的開始。#eq#是邏輯運(yùn)算符,用來判斷是否“相等”. &1 可看作派生集的第1 個原始父集的索引,它取遍該原始父集的所有

44、成員;&2 可看作派生集的第2 個原始父集的索引,它取遍該原始父集的所有成員;&3,&4,以此類推。注意如果派生集B 的父集是另外的派生集A,那么上面所說的原始父集是集A 向 前回溯到最終的原始集,其順序保持不變,并且派生集A 的過濾器對派生集B 仍然有效。因此,派生集的索引個數(shù)是最終原始父集的個數(shù),索引的取值是從原始父集到當(dāng)前派生集所作限制的總和。1)現(xiàn) 有2料 場 , 位 于A (5, 1), B (2, 7),記 (xj,yj),j=1,2, 日 儲 量ej各 有20噸 。2數(shù)據(jù)段數(shù)據(jù)段(data section )The data section allows

45、you to isolate data from the rest of your model. The data section begins with the keyword DATA: (including the colon) and ends with the keyword ENDDATA 格式:DATA: object_list = value_list;ENDDATA 對象列(object_list)包含要指定值的屬性名、要設(shè)置集成員的集名,用逗號或空格隔開。一個對象列中至多有一個集名,而屬性名可以有任意多。如果對象列中有多個屬性名,那么它們的類型必須一致。如果對象列中有一個集

46、名,那么對象列中所有的屬性的類型就是這個集。 數(shù)值列(value_list)包含要分配給對象列中的對象的值,用逗號或空格隔開。注意屬性值的個數(shù)必須等于集成員的個數(shù)。 例3.1 sets: set1/A,B,C/: X,Y; endsets data: X=1,2,3; Y=4,5,6; enddata例3.2sets:set1/A,B,C/: X,Y;endsetsdata:X,Y=1 42 53 6;enddata參數(shù)參數(shù)在數(shù)據(jù)部分也可以指定一些標(biāo)量變量(scalar variables)。當(dāng)一個標(biāo)量變量在數(shù)據(jù)部分確定時,稱之為參數(shù)。例如,假設(shè)模型中用利率8.5%作為一個參數(shù),就可以象下面一

47、樣輸入一個利率作為參數(shù)。 例3.3 data: interest_rate = .085; enddata 也可以同時指定多個參數(shù)。 例3.4 data: interest_rate,inflation_rate = .085 .03; enddata參數(shù)也可以在求解時交互輸入: 例3.5 data: interest_rate,inflation_rate = .085 ?; enddata指定屬性為一個值指定屬性為一個值 可以在數(shù)據(jù)聲明的右邊輸入一個值來把所有的成員的該屬性指定為一個值。 例3.6 sets: days /MO,TU,WE,TH,FR,SA,SU/:needs; endse

48、ts data: needs = 20; enddata LINGO 將用20 指定days 集的所有成員的needs 屬性。 對于多個屬性的情形對于多個屬性的情形,見下例。 例3.7 sets: days /MO,TU,WE,TH,FR,SA,SU/:needs,cost; endsets data: needs cost = 20 100; enddata數(shù)據(jù)部分的未知數(shù)值數(shù)據(jù)部分的未知數(shù)值有時只想為一個集的部分成員的某個屬性指定值,而讓其余成員的該屬性保持未知,以便讓LINGO 去求出它們的最優(yōu)值。 例3.8 sets: years/1.5/: capacity; endsets data: capacity = ,34,20,; enddata 屬性capacity 的第2 個和

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論