LINGO數(shù)學(xué)規(guī)劃模型_第1頁(yè)
LINGO數(shù)學(xué)規(guī)劃模型_第2頁(yè)
LINGO數(shù)學(xué)規(guī)劃模型_第3頁(yè)
LINGO數(shù)學(xué)規(guī)劃模型_第4頁(yè)
LINGO數(shù)學(xué)規(guī)劃模型_第5頁(yè)
已閱讀5頁(yè),還剩149頁(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、數(shù)學(xué)建模競(jìng)賽中的優(yōu)化問(wèn)題數(shù)學(xué)建模競(jìng)賽中的優(yōu)化問(wèn)題 數(shù)學(xué)建模 培訓(xùn)組 2015.4教學(xué)目的讓大家了解數(shù)學(xué)建模中常常遇到的問(wèn)題優(yōu)化問(wèn)題;初步認(rèn)識(shí)數(shù)學(xué)建模需要準(zhǔn)備的算法,軟件。內(nèi)容提要1. 優(yōu)化模型的基本概念2. 優(yōu)化問(wèn)題的建模實(shí)例3. LINGO 軟件簡(jiǎn)介1. 優(yōu)化模型的基本概念 最優(yōu)化是工程技術(shù)、經(jīng)濟(jì)管理、科學(xué)研究、社會(huì)生活中經(jīng)常遇到的問(wèn)題, 如:優(yōu)化模型和算法的重要意義結(jié)構(gòu)設(shè)計(jì)資源分配生產(chǎn)計(jì)劃運(yùn)輸方案解決優(yōu)化問(wèn)題的手段 經(jīng)驗(yàn)積累,主觀判斷 作試驗(yàn),比優(yōu)劣 建立數(shù)學(xué)模型,求解最優(yōu)策略最優(yōu)化: 在一定條件下,尋求使目標(biāo)最大(小)的決策 優(yōu)化問(wèn)題:優(yōu)化問(wèn)題: 與最大、最小、最長(zhǎng)、最短等等有關(guān)的問(wèn)題。

2、 解決最優(yōu)化問(wèn)題的數(shù)學(xué)方法: 運(yùn)籌學(xué)運(yùn)籌學(xué)運(yùn)籌學(xué)主要分支運(yùn)籌學(xué)主要分支:線性規(guī)劃、非線性規(guī)劃、動(dòng)態(tài)規(guī)劃、圖與網(wǎng)絡(luò)分析、存貯論、排隊(duì)倫、對(duì)策論、決策論。線性規(guī)劃線性規(guī)劃 1939年蘇聯(lián)數(shù)學(xué)家康托洛維奇發(fā)表生產(chǎn)組織與計(jì)劃中的數(shù)學(xué)問(wèn)題 1947年美國(guó)數(shù)學(xué)家喬治.丹契克、馮.諾伊曼提出線性規(guī)劃的一般模型及理論優(yōu)化問(wèn)題三要素:決策變量;目標(biāo)函數(shù);約束條件約束條件決策變量?jī)?yōu)化問(wèn)題的一般形式njiDxljxgmixhtsxf,.,1, 0)(,.,1, 0)(. .)(min 無(wú)約束優(yōu)化(沒(méi)有約束)與約束優(yōu)化(有約束) 可行解(只滿足約束)與最優(yōu)解(取到最優(yōu)值)目標(biāo)函數(shù)局部最優(yōu)解與整體最優(yōu)解 局部最優(yōu)解 (

3、Local Optimal Solution, 如 x1 ) 整體最優(yōu)解 (Global Optimal Solution, 如 x2 )x*f(x)x1x2o優(yōu)化模型的簡(jiǎn)單分類(lèi) 線性規(guī)劃(LP) 目標(biāo)和約束均為線性函數(shù) 非線性規(guī)劃(NLP) 目標(biāo)或約束中存在非線性函數(shù) 二次規(guī)劃(QP) 目標(biāo)為二次函數(shù)、約束為線性 整數(shù)規(guī)劃(IP) 決策變量(全部或部分)為整數(shù) 整數(shù)線性規(guī)劃(ILP),整數(shù)非線性規(guī)劃(INLP) 純整數(shù)規(guī)劃(PIP), 混合整數(shù)規(guī)劃(MIP) 一般整數(shù)規(guī)劃,0-1(整數(shù))規(guī)劃njiDxljxgmixhtsxf,.,1, 0)(,.,1, 0)(. .)(min連續(xù)優(yōu)化離散優(yōu)化

4、數(shù)學(xué)規(guī)劃優(yōu)化模型的簡(jiǎn)單分類(lèi)和求解難度優(yōu)化模型的簡(jiǎn)單分類(lèi)和求解難度 優(yōu)化線性規(guī)劃非線性規(guī)劃二次規(guī)劃連續(xù)優(yōu)化整數(shù)規(guī)劃 問(wèn)題求解的難度增加 例例 家具生產(chǎn)的安排家具生產(chǎn)的安排 一家具公司生產(chǎn)桌子和椅子,用于生產(chǎn)的全部勞力共計(jì)450個(gè)工時(shí),共有4立方的木材。 每張桌子要使用15個(gè)工時(shí),0.2立方木材,售價(jià)80元。 每張椅子使用10個(gè)工時(shí),0.05立方木材,售價(jià)45元。問(wèn)為達(dá)到最大的收益,應(yīng)如何安排生產(chǎn)?分析: 1. 求什么? 生產(chǎn)多少桌子? 生產(chǎn)多少椅子? 2. 優(yōu)化什么? 收益最大 3. 限制條件? 原料總量 勞力總數(shù)x1x2Max f=80 x1+45 x20.2 x1 +0.05 x2 415

5、x1 +10 x2 450一般線性規(guī)劃的數(shù)學(xué)模型及解法: min f=cTxs.t. Ax b A1x=b1 LB x UBMatlab求解程序x,f=linprog(c,A,b,A1,b1,LB,UB)一個(gè)簡(jiǎn)單的一個(gè)簡(jiǎn)單的LINGO程序程序例例 直接用直接用LINGO來(lái)解如下二次規(guī)劃問(wèn)題:來(lái)解如下二次規(guī)劃問(wèn)題: 40,322100. .123 . 02779821212122212121為整數(shù)xxxxxxtsxxxxxxMax輸入窗口如下:輸入窗口如下:LINGO簡(jiǎn)介L(zhǎng)INGO是一種專門(mén)用于求解數(shù)學(xué)規(guī)劃問(wèn)題的軟件包。由于LINGO執(zhí)行速度快,易于方便地輸入、求解和分析數(shù)學(xué)規(guī)劃問(wèn)題,因此在教學(xué)

6、、科研和工業(yè)界得到廣泛應(yīng)用。LINGO主要用于求解線性規(guī)劃、非線性規(guī)劃、二次規(guī)劃和整數(shù)規(guī)劃等問(wèn)題,也可以用于求解一些線性和非線性方程組及代數(shù)方程求根等。使用入門(mén)界面使用入門(mén)菜單命令“File”“Edit”:match parenthesis:括號(hào)匹配,選定某括號(hào)的一邊,然后點(diǎn)擊此選項(xiàng),程序會(huì)自動(dòng)尋找與之相匹配的括號(hào),如果未找到,會(huì)有彈窗提示。paste function:用來(lái)進(jìn)行函數(shù)的插入?!發(fā)ingo”:solution:主要是考察結(jié)果,可以指定某一行或者某一個(gè)項(xiàng)目來(lái)考察結(jié)果,有文字形式也有圖表形式。range:主要是用于靈敏度分析,在這里要先更改默認(rèn)設(shè)置,將price改為price and

7、 range,然后才能運(yùn)行range。generate:可以產(chǎn)生相對(duì)應(yīng)的程序。debug:用于調(diào)試程序,只能在程序出錯(cuò)時(shí)才能用。示例:model:sets: number/1.6/:x;endsetsdata: x = 5 1 3 4 6 10;enddata end程序結(jié)構(gòu)集LINGO的程序一般是一“MODEL:”開(kāi)頭,以“end”結(jié)束,內(nèi)容包括四部分:集部分,數(shù)據(jù)部分,初始部分,目標(biāo)函數(shù)、約束函數(shù)部分。集部分集部分是LINGO模型的一個(gè)可選部分。在LINGO模型中使用集之前,必須在集部分事先定義。集部分以關(guān)鍵字“sets:”開(kāi)始,以“endsets”結(jié)束。一個(gè)模型可以沒(méi)有集部分,或有一個(gè)簡(jiǎn)

8、單的集部分,或有多個(gè)集部分。一個(gè)集部分可以放置于模型的任何地方,但是一個(gè)集及其屬性在模型約束中被引用之前必須被定義。 程序結(jié)構(gòu)原始集集包括原始集和派生集兩集包括原始集和派生集兩種。種。定義原始集定義原始集為了定義一個(gè)原始集,必須詳細(xì)聲明:集的名字可選,集的成員可選,集成員的屬性定義一個(gè)原始集,用下面的語(yǔ)法:setname/member_list/:attribute_list;注意:用“ ”表示該部分內(nèi)容可選。示例1:model:sets:students/John,Linda,Tom/:age,gender;endsetsEnd示例2:Model:Sets:Month/Jan.Dec/:te

9、mperature;Endsetsend程序結(jié)構(gòu)原始集集成員列表的羅列可以有顯式羅列和隱式羅列兩種,顯示羅列如上頁(yè)所示,即將集成員全部羅列出來(lái)。隱式羅列不必羅列出每個(gè)集成員??刹捎萌缦抡Z(yǔ)法:setname/member1.memberN/: attribute_list;這里的member1是集的第一個(gè)成員名,memberN是集的最末一個(gè)成員名。LINGO將自動(dòng)產(chǎn)生中間的所有成員名。LINGO也接受一些特定的首成員名和末成員名,用于創(chuàng)建一些特殊的集。列表如下:隱式成員列表格式示例所產(chǎn)生集成員隱式成員列表格式示例所產(chǎn)生的集成員1.n1.51,2,3,4,5StringM.stringNCard2

10、.Card10Card2,Card3,Card4Card10DayM.DayNMon.FriMon,Tue,Wen,Thu,FriMonthM.MonthNOct.JanOct,Nov,Dec,JanMonthYearM.MonthYearNOct2001.Jan2002Oct2001,Nov2001,Dec2001,Jan2002 程序結(jié)構(gòu)原始集也可以將集成員在數(shù)據(jù)部分定義。示例:!集部分;sets: students:sex,age;endsets!數(shù)據(jù)部分;data: students,sex,age= John 1 16 Jill 0 14 Rose 0 17 Mike 1 13;En

11、ddata注意:開(kāi)頭用感嘆號(hào)(!),末尾用分號(hào)(;)表示注釋,可跨多行。請(qǐng)注意:數(shù)據(jù)部分的數(shù)據(jù)之間可以用空格隔開(kāi),也可以用逗號(hào)隔開(kāi)。程序默認(rèn)的數(shù)據(jù)是從索引1開(kāi)始分配,即將“students,sex,age”的第一個(gè)數(shù)據(jù)分配完了之后再分配其第二個(gè)數(shù)據(jù)。再如下例:model:sets:students/John,Linda,Tom/:age,gender;EndsetsData:Age,gender=10,1,11,0,12,1;enddataEnd運(yùn)行之后便可看出數(shù)據(jù)分配的結(jié)果。程序結(jié)構(gòu)派生集定義派生集定義派生集為了定義一個(gè)派生集,必須詳細(xì)聲明:集的名字父集父集的名字可選,集成員可選,集成員的屬

12、性可用下面的語(yǔ)法定義一個(gè)派生集:setname(parent_set_list)/member_list/:attribute_list;setname是集的名字。parent_set_list是已定義的集的列表,多個(gè)時(shí)必須用逗號(hào)隔開(kāi)。如果沒(méi)有指定成員列表,那么LINGO會(huì)自動(dòng)創(chuàng)建父集成員的所有組合作為派生集的成員。派生集的父集既可以是原始集,也可以是其它的派生集。示例:model:sets:students/John,Linda,Tom/:age,gender;friends/Harry,Green/;Links(students,friends):relationship;EndsetsD

13、ata:Relationship=8,4,9,6,6,8;enddataEnd程序結(jié)構(gòu)派生集稀疏集可以用顯式表示也可以用成員資格過(guò)濾器表示。顯式表示可如下示例:Links(students,friends)/John,Harry,Linda,Green/:relationship;(1)成員資格過(guò)濾器表示可如下示例:Links(students,friends)|&1 #eq# 1 #and# &2 #eq# 2:relationship;(2)分別插入程序中,并修改數(shù)據(jù),可得到如下結(jié)果:(1)RELATIONSHIP( JOHN, HARRY) 8.000000 RELATIONSHIP(

14、LINDA, GREEN) 6.000000(2)RELATIONSHIP( JOHN, GREEN) 8.000000程序結(jié)構(gòu)數(shù)據(jù)數(shù)據(jù)部分以關(guān)鍵字“data:”開(kāi)始,以關(guān)鍵字“enddata”結(jié)束。在這里,可以指定集成員、集的屬性。其語(yǔ)法如下:object_list = value_list;對(duì)象列對(duì)象列(object_list)包含要指定值的屬性名、要設(shè)置集成員的集名,用逗號(hào)或空格隔開(kāi)。一個(gè)對(duì)象列中至多有一個(gè)集名,一個(gè)對(duì)象列中至多有一個(gè)集名,而屬性名可以有任意多。而屬性名可以有任意多。如果對(duì)象列中有多個(gè)屬性名,那么它們的類(lèi)型必須一致。如果對(duì)象列中有一個(gè)集名,那么對(duì)象列中所有的屬性的類(lèi)型就是

15、這個(gè)集。數(shù)值列數(shù)值列(value_list)包含要分配給對(duì)象列中的對(duì)象的值,用逗號(hào)或空格隔開(kāi)。注意屬性值的個(gè)數(shù)必須等于集成員的個(gè)數(shù)??聪旅娴睦?。示例:示例:sets: set1/A,B,C/: X,Y;endsetsdata: X=1,2,3; Y=4,5,6;Enddata數(shù)據(jù)部分也可以如此表示,其數(shù)據(jù)部分也可以如此表示,其本質(zhì)是一樣的:本質(zhì)是一樣的:data: X,Y=1 4 2 5 3 6;enddata程序結(jié)構(gòu)數(shù)據(jù)Data部分也可以用來(lái)定義標(biāo)量變量,如下所示:data: interest_rate = .085;enddata也可以同時(shí)指定多個(gè)參數(shù)。data: interest_ra

16、te,inflation_rate = .085 .03;enddata 在某些情況,對(duì)于模型中的某些數(shù)據(jù)并不是定值。譬如模型中有一個(gè)通貨膨脹率的參數(shù),我們想在2%至6%范圍內(nèi),對(duì)不同的值求解模型,來(lái)觀察模型的結(jié)果對(duì)通貨膨脹的依賴有多么敏感。我們把這種情況稱為實(shí)時(shí)數(shù)據(jù)處理實(shí)時(shí)數(shù)據(jù)處理(what if analysis)。LINGO有一個(gè)特征可方便地做到這件事:在本該放數(shù)的地方輸入一個(gè)問(wèn)號(hào)(?)。如下所示:data: interest_rate,inflation_rate = .085 ?;enddata每一次求解模型時(shí),LINGO都會(huì)提示為參數(shù)inflation_rate輸入一個(gè)值。在WIN

17、DOWS操作系統(tǒng)下,將會(huì)接收到一個(gè)類(lèi)似右上角所示的對(duì)話框:直接輸入一個(gè)值再點(diǎn)擊OK按鈕,LINGO就會(huì)把輸入的值指定給inflation_rate,然后繼續(xù)求解模型。程序結(jié)構(gòu)數(shù)據(jù)指定屬性為一個(gè)值指定屬性為一個(gè)值可以在數(shù)據(jù)聲明的右邊輸入一個(gè)值來(lái)把所有的成員的該屬性指定為一個(gè)值??聪旅娴睦印?shù)據(jù)部分的未知數(shù)值數(shù)據(jù)部分的未知數(shù)值有時(shí)只想為一個(gè)集的部分成員的某個(gè)屬性指定值,而讓其余成員的該屬性保持未知,以便讓LINGO去求出它們的最優(yōu)值。在數(shù)據(jù)聲明中輸入兩個(gè)相連的逗號(hào)表示該位置對(duì)應(yīng)的集成員的屬性值未知。兩個(gè)逗號(hào)間可以有空格。屬性capacity的第2個(gè)和第3個(gè)值分別為34和20,其余的未知。 示例示

18、例1:sets: days /MO,TU,WE,TH,FR,SA,SU/:needs,cost;endsetsdata: needs cost = 20 100;Enddata示例示例2:sets: years/1.5/: capacity;endsetsdata: capacity = ,34,20,;Enddata屬性capacity的第2個(gè)和第3個(gè)值分別為34和20,其余的未知。程序結(jié)構(gòu)初始部分初始部分是LINGO提供的另一個(gè)可選部分。在初始部分中,可以輸入初始聲明初始聲明(initialization statement),和數(shù)據(jù)部分中的數(shù)據(jù)聲明相同。對(duì)實(shí)際問(wèn)題的建模時(shí),初始部分并不起

19、到描述模型的作用,在初始部分輸入的值僅被LINGO求解器當(dāng)作初始點(diǎn)來(lái)用,并且僅僅對(duì)非線性模型有用。僅僅對(duì)非線性模型有用。和數(shù)據(jù)部分指定變量的值不同,LINGO求解器可以自由改變初始部分初始化的變量的值。一個(gè)初始部分以“init:”開(kāi)始,以“endinit”結(jié)束。初始部分的初始聲明規(guī)則和數(shù)據(jù)部分的數(shù)據(jù)聲明規(guī)則相同。也就是說(shuō),我們可以在聲明的左邊同時(shí)初始化多個(gè)集屬性,可以把集屬性初始化為一個(gè)值,可以用問(wèn)號(hào)實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)處理,還可以用逗號(hào)指定未知數(shù)值。示例:示例:init: X, Y = 0, .001;endinit Y=log(X); X+Y=1;注意:好的初始點(diǎn)會(huì)減少模型的求解時(shí)間。如左例中,若

20、將x的初始值改為0.9,則可以明顯減少迭代次數(shù)。程序結(jié)構(gòu)基本運(yùn)算符一、基本運(yùn)算符一、基本運(yùn)算符1、算術(shù)運(yùn)算符算術(shù)運(yùn)算符是針對(duì)數(shù)值進(jìn)行操作的。LINGO提供了5種二元運(yùn)算符:乘方乘除加減LINGO唯一的一元算術(shù)運(yùn)算符是取反函數(shù)“”。這些運(yùn)算符的優(yōu)先級(jí)由高到底為:高(取反) 低運(yùn)算符的運(yùn)算次序?yàn)閺淖蟮接野磧?yōu)先級(jí)高低來(lái)執(zhí)行。運(yùn)算的次序可以用圓括號(hào)“()”來(lái)改變。程序結(jié)構(gòu)邏輯運(yùn)算符2、邏輯運(yùn)算符在LINGO中,邏輯運(yùn)算符主要用于集循環(huán)函數(shù)的條件表達(dá)式中,來(lái)控制在函數(shù)中哪些集成員被包含,哪些被排斥。在創(chuàng)建稀疏集時(shí)用在成員資格過(guò)濾器中。LINGO具有種邏輯運(yùn)算符:#not# 否定該操作數(shù)的邏輯值,not是

21、一個(gè)一元運(yùn)算符#eq#若兩個(gè)運(yùn)算數(shù)相等,則為true;否則為flase#ne# 若兩個(gè)運(yùn)算符不相等,則為true;否則為flase#gt# 若左邊的運(yùn)算符嚴(yán)格大于右邊的運(yùn)算符,則為true;否則為flase#ge# 若左邊的運(yùn)算符大于或等于右邊的運(yùn)算符,則為true;否則為flase#lt# 若左邊的運(yùn)算符嚴(yán)格小于右邊的運(yùn)算符,則為true;否則為flase#le# 若左邊的運(yùn)算符小于或等于右邊的運(yùn)算符,則為true;否則為flase#and# 僅當(dāng)兩個(gè)參數(shù)都為true時(shí),結(jié)果為true;否則為flase#or# 僅當(dāng)兩個(gè)參數(shù)都為false時(shí),結(jié)果為false;否則為true這些運(yùn)算符的優(yōu)先級(jí)

22、由高到低為:高 #not# #eq# #ne# #gt# #ge# #lt# #le#低 #and# #or#程序結(jié)構(gòu)數(shù)學(xué)算符二、數(shù)學(xué)函數(shù)二、數(shù)學(xué)函數(shù)LINGO提供了大量的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù):abs(x) 返回x的絕對(duì)值sin(x) 返回x的正弦值,x采用弧度制cos(x) 返回x的余弦值tan(x) 返回x的正切值exp(x) 返回常數(shù)e的x次方log(x) 返回x的自然對(duì)數(shù)lgm(x) 返回x的gamma函數(shù)的自然對(duì)數(shù)sign(x) 如果x=0時(shí),返回不超過(guò)x的最大整數(shù);當(dāng)x0。(3)若將程序修改為:max=x1+x2;x1-x2=2;x1+2*x2=3;則結(jié)果顯示為x1=2.333333,x2

23、=0.333333,為全局最優(yōu)解。(4)若將添加gin函數(shù):gin(x1);gin(x2);則結(jié)果顯示為:x1=1,x2=1,即為整數(shù)最優(yōu)解。程序結(jié)構(gòu)集操作函數(shù)五、集操作函數(shù)五、集操作函數(shù)LINGO提供了幾個(gè)函數(shù)幫助處理集。1in(set_name,primitive_index_1 ,primitive_index_2,)如果元素在指定集中,返回1;否則返回0。示例:示例: 全集為I,B是I的一個(gè)子集,C是B的補(bǔ)集。sets: I/x1.x4/; B(I)/x2/; C(I)|#not#in(B,&1);endsets此例C(I)中的元素為x1,x3,x4。另見(jiàn)此例:model:sets:

24、series/x1.x5/;endsetsy=in(series,8);End返回的結(jié)果為y=0,說(shuō)明集series中不包括第8個(gè)元素;若程序?yàn)椋簃odel:sets: series/x1.x5/; series1/z1.z4/; links(series,series1);endsetsy=in(links,1,4);End返回的結(jié)果為y=1,說(shuō)明在集links中存在第一行第四列的元素。程序結(jié)構(gòu)集操作函數(shù)2index(set_name, primitive_set_element)該函數(shù)返回在集set_name中原始集成員primitive_set_element的索引。如果set_name

25、被忽略,那么LINGO將返回與primitive_set_element匹配的第一個(gè)原始集成員的索引。如果找不到,則產(chǎn)生一個(gè)錯(cuò)誤。示例1: 如何確定集成員(B,Y)屬于派生集S3。sets: S1/A B C/; S2/X Y Z/; S3(S1,S2)/A X, A Z, B Y, C X/;endsetsX=in(S3,index(S1,B),index(S2,Y);看下面的例子,表明有時(shí)為index指定集是必要的。示例2:sets: girls/debble,sue,alice/; boys/bob,joe,sue,fred/;endsetsI1=index(sue);I2=index(

26、boys,sue);I1的值是2,I2的值是3-=。我們建議在使用index函數(shù)時(shí)最好指定集。程序結(jié)構(gòu)集操作函數(shù)3wrap(index,limit)該函數(shù)返回j=index-k*limit,其中k是一個(gè)整數(shù),取適當(dāng)值保證j落在區(qū)間1,limit內(nèi)。該函數(shù)相當(dāng)于index模limit再加1。該函數(shù)在循環(huán)、多階段計(jì)劃編制中特別有用。4size(set_name)該函數(shù)返回集set_name的成員個(gè)數(shù)。在模型中明確給出集大小時(shí)最好使用該函數(shù)。它的使用使模型更加數(shù)據(jù)中立,集大小改變時(shí)也更易維護(hù)。程序結(jié)構(gòu)集循環(huán)函數(shù)六、集循環(huán)函數(shù)六、集循環(huán)函數(shù)集循環(huán)函數(shù)遍歷整個(gè)集進(jìn)行操作。其語(yǔ)法為function(set

27、name(set_index_list)|conditional_qualifier:expression_list);function相應(yīng)于下面羅列的四個(gè)集循環(huán)函數(shù)之一;setname是要遍歷的集;set_ index_list是集索引列表;conditional_qualifier是用來(lái)限制集循環(huán)函數(shù)的范圍,當(dāng)集循環(huán)函數(shù)遍歷集的每個(gè)成員時(shí),LINGO都要對(duì)conditional_qualifier進(jìn)行評(píng)價(jià),若結(jié)果為真,則對(duì)該成員執(zhí)行function操作,否則跳過(guò),繼續(xù)執(zhí)行下一次循環(huán)。expression_list是被應(yīng)用到每個(gè)集成員的表達(dá)式列表,當(dāng)用的是for函數(shù)時(shí),expression_

28、list可以包含多個(gè)表達(dá)式,其間用分號(hào)隔開(kāi)。這些表達(dá)式將被作為約束加到模型中。當(dāng)使用其余的三個(gè)集循環(huán)函數(shù)時(shí),expression_list只能有一個(gè)表達(dá)式。如果省略set_index_list,那么在expression_list中引用的所有屬性的類(lèi)型都是setname集。1 1forfor該函數(shù)用來(lái)產(chǎn)生對(duì)集成員的約束?;诮UZ(yǔ)言的標(biāo)量需要顯式輸入每個(gè)約束,不過(guò)for函數(shù)允許只輸入一個(gè)約束,然后LINGO自動(dòng)產(chǎn)生每個(gè)集成員的約束。示例:示例: 產(chǎn)生序列1,4,9,16,25sets: number/1.5/:x; for(number(I): x(I)=I2);endsets程序結(jié)構(gòu)集循環(huán)函

29、數(shù)2 2sumsum該函數(shù)返回遍歷指定的集成員的一個(gè)表達(dá)式的和。示例示例1 1: 求向量5,1,3,4,6,10前5個(gè)數(shù)的和。model:data: N=6;enddatasets: number/1.N/:x;endsetsdata: x = 5 1 3 4 6 10;enddata s=sum(number(I) | I #le# 5: x);End注意:此時(shí)如果將集部分和第一個(gè)數(shù)據(jù)部分調(diào)換的話,程序無(wú)法運(yùn)行,因?yàn)榇藭r(shí)N尚未被定義。3min和max返回指定的集成員的一個(gè)表達(dá)式的最小值或最大值。示例示例2: 求向量5,1,3,4,6,10前5個(gè)數(shù)的最小值,后3個(gè)數(shù)的最大值。model:dat

30、a: N=6;enddatasets: number/1.N/:x;endsetsdata: x = 5 1 3 4 6 10;enddata minv=min(number(I) | I #le# 5: x); maxv=max(number(I) | I #ge# N-2: x);endLINGO實(shí)戰(zhàn)file函數(shù)1 1filefile函數(shù)函數(shù) 該函數(shù)用從外部文件中輸入數(shù)據(jù),可以放在模型中任何地方。該函數(shù)的語(yǔ)法格式為file(filename)。這里filename是文件名,可以采用相對(duì)路徑和絕對(duì)路徑兩種表示方式。file函數(shù)對(duì)同一文件的兩種表示方式的處理和對(duì)兩個(gè)不同的文件處理是一樣的,這一

31、點(diǎn)必須注意。示例:以上例來(lái)講解file函數(shù)的用法。注意到在上例編碼中有兩處涉及到數(shù)據(jù)。第一個(gè)地方是集部分的6個(gè)warehouses集成員和8個(gè)vendors集成員;第二個(gè)地方是數(shù)據(jù)部分的capacity,demand和cost數(shù)據(jù)。為了使數(shù)據(jù)和我們的模型完全分開(kāi),我們把它們移到外部的文本文件中。修改模型代碼以便于用file函數(shù)把數(shù)據(jù)從文本文件中拖到模型中來(lái)。LINGO實(shí)戰(zhàn)file函數(shù)修改后(修改處代碼黑體加粗)的模型代碼如下:model:sets: warehouses/ file(1_2.txt)file(1_2.txt) /: capacity; vendors/ file(1_2.txt

32、)file(1_2.txt) /: demand; links(warehouses,vendors): cost, volume;Endsets min=sum(links: cost*volume);for(vendors(J): sum(warehouses(I): volume(I,J)=demand(J);for(warehouses(I): sum(vendors(J): volume(I,J)= required(J);end程序結(jié)構(gòu)應(yīng)用實(shí)例計(jì)算的部分結(jié)果為Global optimal solution found at iteration: 0 Objective value:

33、 22.00000 Variable Value Reduced Cost REQUIRED( MON) 20.00000 0.000000 REQUIRED( TUE) 16.00000 0.000000 REQUIRED( WED) 13.00000 0.000000 REQUIRED( THU) 16.00000 0.000000 REQUIRED( FRI) 19.00000 0.000000 REQUIRED( SAT) 14.00000 0.000000 REQUIRED( SUN) 12.00000 0.000000 START( MON) 8.000000 0.000000 S

34、TART( TUE) 2.000000 0.000000 START( WED) 0.000000 0.3333333 START( THU) 6.000000 0.000000 START( FRI) 3.000000 0.000000 START( SAT) 3.000000 0.000000 START( SUN) 0.000000 0.000000從而解決方案是:每周最少需要22個(gè)職員,周一安排8人,周二安排2人,周三無(wú)需安排人,周四安排6人,周五和周六都安排3人,周日無(wú)需安排人。程序結(jié)構(gòu)輔助函數(shù)七、輔助函數(shù)七、輔助函數(shù)1 1if(logical_condition,true_resu

35、lt,false_result)if(logical_condition,true_result,false_result)if函數(shù)將評(píng)價(jià)一個(gè)邏輯表達(dá)式logical_condition,如果為真,返回true_ result,否則返回false_result。示例1:求解最優(yōu)化問(wèn)題其LINGO代碼如下:model: min=fx+fy; fx=if(x #gt# 0, 100,0)+2*x; fy=if(y #gt# 0,60,0)+3*y; x+y=30;end 2 2warn(text,logical_condition)warn(text,logical_condition)如果邏輯條

36、件logical_condition為真,則產(chǎn)生一個(gè)內(nèi)容為text的信息框。示例2:model: x=1; warn(x是正數(shù),x #gt# 0); endLINGO的語(yǔ)法規(guī)定:的語(yǔ)法規(guī)定:(1) 求目標(biāo)函數(shù)的最大值和最小值分別用MAX= 或MIN= 來(lái)表示;(2) 每個(gè)語(yǔ)句必須以分號(hào)“;”結(jié)束,每行可以有多個(gè)語(yǔ)句,語(yǔ)句可以跨行;(3) 變量名稱必須以字母(A-Z)開(kāi)頭,由字母、數(shù)字(0-9)和下劃線“_”組成,長(zhǎng)度不超過(guò)32個(gè)字符,不區(qū)分大小寫(xiě);(4) 可以給語(yǔ)句加上標(biāo)號(hào),例如OBJ MAX= ;(5) 以“!”開(kāi)頭,以“;”結(jié)束的語(yǔ)句是注釋語(yǔ)句;(6) 如果對(duì)變量的取值范圍沒(méi)有作特殊說(shuō)明,

37、則默認(rèn)所有決策變量都非負(fù);(7) LINGO模型以語(yǔ)句“MODEL:”開(kāi)頭,以“END”結(jié)束,對(duì)于比較簡(jiǎn)單的模型,這兩句可以省略;LINGO的基本用法的幾點(diǎn)注意事項(xiàng)的基本用法的幾點(diǎn)注意事項(xiàng) LINGO中不區(qū)分大小寫(xiě)字母;中不區(qū)分大小寫(xiě)字母; 8個(gè)字符個(gè)字符變量和行名變量和行名 32個(gè)字符個(gè)字符,且必須以字母開(kāi)頭。且必須以字母開(kāi)頭。LINGO中假定所有變量非負(fù)中假定所有變量非負(fù)(除非用限定變量取值范圍的函數(shù)除非用限定變量取值范圍的函數(shù)free或或sub或或slb另行說(shuō)明另行說(shuō)明)。變量可以放在約束條件的右端變量可以放在約束條件的右端(同時(shí)數(shù)字也可放在約束條件的左同時(shí)數(shù)字也可放在約束條件的左端端)

38、。但為了提高。但為了提高LINGO求解時(shí)的效率,應(yīng)盡可能采用線性表達(dá)求解時(shí)的效率,應(yīng)盡可能采用線性表達(dá)式定義目標(biāo)和約束式定義目標(biāo)和約束(如果可能的話如果可能的話)。語(yǔ)句是語(yǔ)句是LINGO的基本單位的基本單位,每個(gè)語(yǔ)句都以分號(hào)結(jié)尾,編寫(xiě)程序時(shí)每個(gè)語(yǔ)句都以分號(hào)結(jié)尾,編寫(xiě)程序時(shí)應(yīng)注意模型的可讀性。例如:一行只寫(xiě)一個(gè)語(yǔ)句,按照語(yǔ)句之間應(yīng)注意模型的可讀性。例如:一行只寫(xiě)一個(gè)語(yǔ)句,按照語(yǔ)句之間的嵌套關(guān)系對(duì)語(yǔ)句安排適當(dāng)?shù)目s進(jìn),增強(qiáng)層次感。的嵌套關(guān)系對(duì)語(yǔ)句安排適當(dāng)?shù)目s進(jìn),增強(qiáng)層次感。以感嘆號(hào)開(kāi)始的是說(shuō)明語(yǔ)句以感嘆號(hào)開(kāi)始的是說(shuō)明語(yǔ)句(說(shuō)明語(yǔ)句也需要以分號(hào)結(jié)束說(shuō)明語(yǔ)句也需要以分號(hào)結(jié)束))。)。LINGO總是根據(jù)總

39、是根據(jù)“MAX=”或或“MIN=”尋找目標(biāo)函數(shù),尋找目標(biāo)函數(shù),而除注釋語(yǔ)句和而除注釋語(yǔ)句和TITLE語(yǔ)句外的其他語(yǔ)句都是約束條語(yǔ)句外的其他語(yǔ)句都是約束條件,因此語(yǔ)句的順序并不重要件,因此語(yǔ)句的順序并不重要 。限定變量取整數(shù)值的語(yǔ)句為限定變量取整數(shù)值的語(yǔ)句為“GIN(X1)”和和“GIN(X2)”,不可以寫(xiě)成,不可以寫(xiě)成“GIN(2)”,否則,否則LINGO將把這個(gè)模型看成沒(méi)有整數(shù)變量。將把這個(gè)模型看成沒(méi)有整數(shù)變量。LINGO中函數(shù)一律需要以中函數(shù)一律需要以“”開(kāi)頭,其中整型變量開(kāi)頭,其中整型變量函數(shù)(函數(shù)(BIN、GIN)和上下界限定函數(shù)()和上下界限定函數(shù)(FREE、SUB、SLB)與)與L

40、INDO中的命令類(lèi)似。而且中的命令類(lèi)似。而且0-1變變量函數(shù)是量函數(shù)是BIN函數(shù)。函數(shù)。LINGO的基本用法的幾點(diǎn)注意事項(xiàng)的基本用法的幾點(diǎn)注意事項(xiàng) 工具欄工具欄File|Open(F3)打開(kāi)文件File|Print(F7)打印文件Edit|Copy(Ctrl+C)復(fù)制Edit|Undo(Ctrl+Z)取消操作Edit|Find (Ctrl+F)查找LINGO|Solution(Alt+O)顯示解答Edit|Match Parenthesis(Ctrl+P)匹配括號(hào)LINGO|Options(Ctrl+I)選項(xiàng)設(shè)置Window|Close All (Alt+X)關(guān)閉所有窗口Help|Conten

41、ts(F1)在線幫助File|New(F2)新建文件File|Save(F4)保存文件Edit|Cut(Ctrl+X)剪切Edit|Paste(Ctrl+V)粘貼Edit|Redo(Ctrl+Y)恢復(fù)操作Edit | Go To Line(Ctrl+T)定位某行LINGO|Solve (Ctrl+S)求解模型LINGO|Picture(Ctrl+K)模型圖示W(wǎng)indow|Send to Back (Ctrl+B)窗口后置Window|Tile(Alt+T) 平鋪窗口上下文相關(guān)的幫助輸出特殊格式文件MPS格式文件MPI格式文件IBM開(kāi)發(fā)的數(shù)學(xué)規(guī)劃文件標(biāo)準(zhǔn)格式LINDO公司制定的數(shù)學(xué)規(guī)劃文件格式用

42、戶基本信息該命令彈出一個(gè)對(duì)話框,要求輸入用戶名和密碼(這些信息在用ODBC函數(shù)訪問(wèn)數(shù)據(jù)庫(kù)要用到)選擇性粘貼該命令把Window剪貼板中的內(nèi)容插入到光標(biāo)所在位置.插入新對(duì)象鏈接修改模型內(nèi)插入對(duì)象的鏈接性質(zhì).對(duì)象的性質(zhì)在模型中選擇一個(gè)鏈接或嵌入對(duì)象,用本命令可以查看和修改這個(gè)對(duì)象的屬性.靈敏度分析該命令產(chǎn)生當(dāng)前模型的靈敏度分析報(bào)告:(1)最優(yōu)解保持不變的情況下,目標(biāo) 函數(shù)的系數(shù)變化范圍;(2)在影子價(jià)格和縮減成本系數(shù)都 不變的前提下,約束條件右邊的 常數(shù)變化范圍;例. 做下列模型的靈敏度分析MAX=200*X1+300*X2;X1=100;X2=120;X1+2*X2=160;(不限)注: 靈敏性

43、分析耗費(fèi)相當(dāng)多的求解時(shí)間,因此當(dāng)速度很關(guān)鍵時(shí),就沒(méi)有必要激活它【目標(biāo)函數(shù)系數(shù)變化范圍】【約束條件右邊常數(shù)的變化范圍】生成模型的展開(kāi)形式為當(dāng)前模型生成一個(gè)用代數(shù)表達(dá)式表示的完整形式,即LINGO將所有基于集合的表達(dá)式(目標(biāo)函數(shù)和約束條件)擴(kuò)展成為等價(jià)的完全展開(kāi)的普通數(shù)學(xué)表達(dá)式模型.生成圖形由模型生成圖形,以矩陣形式顯示模型的系數(shù).調(diào)試模型統(tǒng)計(jì)資料調(diào)試結(jié)果,找到充分行(Sufficient Rows)和必要行(Necessary Rows).查看(以為本方式顯示模型內(nèi)容)命令行窗口主要是為用戶交互地測(cè)試命令腳本而設(shè)計(jì).(通常不用)狀態(tài)窗口變量約束非零系數(shù)內(nèi)存使用量已運(yùn)行時(shí)間求解器狀態(tài)擴(kuò)展求解器狀態(tài)

44、LINGO 軟件主要具有兩大優(yōu)點(diǎn)軟件主要具有兩大優(yōu)點(diǎn)內(nèi)置建模語(yǔ)言,允許以簡(jiǎn)練、直觀的方式描述較內(nèi)置建模語(yǔ)言,允許以簡(jiǎn)練、直觀的方式描述較大規(guī)模的優(yōu)化問(wèn)題,所需的數(shù)據(jù)可以以一定格式大規(guī)模的優(yōu)化問(wèn)題,所需的數(shù)據(jù)可以以一定格式保存在獨(dú)立的文件中。保存在獨(dú)立的文件中??捎糜谇蠼夥蔷€性規(guī)劃問(wèn)題,包括非線性整數(shù)規(guī)可用于求解非線性規(guī)劃問(wèn)題,包括非線性整數(shù)規(guī)劃問(wèn)題劃問(wèn)題;“LG4”表示LINGO 格式的模型文件,是一種特殊的二進(jìn)制格式文件,保存了我們?cè)谀P痛翱谥兴軌蚩吹降乃形谋竞推渌麑?duì)象及其格式信息,只有LINGO 能讀出它,用其他系統(tǒng)打開(kāi)這種文件時(shí)會(huì)出現(xiàn)亂碼 “LNG”表示LINGO文本文件,以這個(gè)格式

45、保存模型時(shí)系統(tǒng) 將給出警告,因?yàn)槟P椭械母袷叫畔ⅲㄈ缱煮w、顏色等)將會(huì)丟失 “LDT”表示數(shù)據(jù)文件“LTF”表示 命令腳本文件 “LGR”表示 報(bào)告文件 除“LG4”文件外,這里的另外幾種格式的文件其實(shí)都是普通的文本文件,可以用任何文本編輯器打開(kāi)和編輯 LINGO的文件類(lèi)型的文件類(lèi)型2. 優(yōu)化問(wèn)題的建模實(shí)例 企業(yè)生產(chǎn)計(jì)劃企業(yè)生產(chǎn)計(jì)劃1 1 奶制品的生產(chǎn)與銷(xiāo)售奶制品的生產(chǎn)與銷(xiāo)售 空間層次空間層次工廠級(jí):根據(jù)外部需求和內(nèi)部設(shè)備、人力、原料等工廠級(jí):根據(jù)外部需求和內(nèi)部設(shè)備、人力、原料等條件,以最大利潤(rùn)為目標(biāo)制訂產(chǎn)品生產(chǎn)計(jì)劃;條件,以最大利潤(rùn)為目標(biāo)制訂產(chǎn)品生產(chǎn)計(jì)劃;車(chē)間級(jí):根據(jù)生產(chǎn)計(jì)劃、工藝流程、資源

46、約束及費(fèi)車(chē)間級(jí):根據(jù)生產(chǎn)計(jì)劃、工藝流程、資源約束及費(fèi)用參數(shù)等,以最小成本為目標(biāo)制訂生產(chǎn)批量計(jì)劃。用參數(shù)等,以最小成本為目標(biāo)制訂生產(chǎn)批量計(jì)劃。時(shí)間層次時(shí)間層次若短時(shí)間內(nèi)外部需求和內(nèi)部資源等不隨時(shí)間變化,可若短時(shí)間內(nèi)外部需求和內(nèi)部資源等不隨時(shí)間變化,可制訂制訂單階段生產(chǎn)計(jì)劃單階段生產(chǎn)計(jì)劃,否則應(yīng)制訂多階段生產(chǎn)計(jì)劃。,否則應(yīng)制訂多階段生產(chǎn)計(jì)劃。本節(jié)課題本節(jié)課題例例1 加工奶制品的生產(chǎn)計(jì)劃加工奶制品的生產(chǎn)計(jì)劃1桶牛奶 3公斤A1 12小時(shí) 8小時(shí) 4公斤A2 或獲利24元/公斤 獲利16元/公斤 50桶牛奶桶牛奶 時(shí)間時(shí)間480小時(shí)小時(shí) 至多加工至多加工100公斤公斤A1 制訂生產(chǎn)計(jì)劃,使每天獲利最大

47、制訂生產(chǎn)計(jì)劃,使每天獲利最大 35元可買(mǎi)到元可買(mǎi)到1桶牛奶,買(mǎi)嗎?若買(mǎi),每天最多買(mǎi)多少桶牛奶,買(mǎi)嗎?若買(mǎi),每天最多買(mǎi)多少? 可聘用臨時(shí)工人,付出的工資最多是每小時(shí)幾元可聘用臨時(shí)工人,付出的工資最多是每小時(shí)幾元? A1的獲利增加到的獲利增加到 30元元/公斤,應(yīng)否改變生產(chǎn)計(jì)劃?公斤,應(yīng)否改變生產(chǎn)計(jì)劃? 每天:每天:1桶牛奶 3公斤A1 12小時(shí) 8小時(shí) 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勞動(dòng)時(shí)間勞動(dòng)時(shí)間 48081221 xx加工能力加工能力

48、10031x決策變量決策變量 目標(biāo)函數(shù)目標(biāo)函數(shù) 216472xxzMax每天獲利每天獲利約束條件約束條件非負(fù)約束非負(fù)約束 0,21xx線性線性規(guī)劃規(guī)劃模型模型(LP)時(shí)間時(shí)間480小時(shí)小時(shí) 至多加工至多加工100公斤公斤A1 50桶牛奶桶牛奶 每天每天模型分析與假設(shè)模型分析與假設(shè) 比比例例性性 可可加加性性 連續(xù)性連續(xù)性 xi對(duì)目標(biāo)函數(shù)的對(duì)目標(biāo)函數(shù)的“貢貢獻(xiàn)獻(xiàn)”與與xi取值成正比取值成正比 xi對(duì)約束條件的對(duì)約束條件的“貢貢獻(xiàn)獻(xiàn)”與與xi取值成正比取值成正比 xi對(duì)目標(biāo)函數(shù)的對(duì)目標(biāo)函數(shù)的“貢貢獻(xiàn)獻(xiàn)”與與xj取值無(wú)關(guān)取值無(wú)關(guān) xi對(duì)約束條件的對(duì)約束條件的“貢貢獻(xiàn)獻(xiàn)”與與xj取值無(wú)關(guān)取值無(wú)關(guān) xi

49、取值連續(xù)取值連續(xù) A1,A2每公斤的獲利是與各每公斤的獲利是與各自產(chǎn)量無(wú)關(guān)的常數(shù)自產(chǎn)量無(wú)關(guān)的常數(shù)每桶牛奶加工出每桶牛奶加工出A1,A2的數(shù)量和的數(shù)量和時(shí)間是與各自產(chǎn)量無(wú)關(guān)的常數(shù)時(shí)間是與各自產(chǎn)量無(wú)關(guān)的常數(shù)A1,A2每公斤的獲利是與相每公斤的獲利是與相互產(chǎn)量無(wú)關(guān)的常數(shù)互產(chǎn)量無(wú)關(guān)的常數(shù)每桶牛奶加工出每桶牛奶加工出A1,A2的數(shù)量和的數(shù)量和時(shí)間是與相互產(chǎn)量無(wú)關(guān)的常數(shù)時(shí)間是與相互產(chǎn)量無(wú)關(guān)的常數(shù)加工加工A1,A2的牛奶桶數(shù)是實(shí)數(shù)的牛奶桶數(shù)是實(shí)數(shù) 線性規(guī)劃模型線性規(guī)劃模型模型求解模型求解 圖解法圖解法 x1x20ABCDl1l2l3l4l55021 xx48081221 xx10031x0,21xx約約束束

50、條條件件50:211 xxl480812:212 xxl1003:13xl0:, 0:2514xlxl216472xxzMax目標(biāo)目標(biāo)函數(shù)函數(shù) Z=0Z=2400Z=3600z=c (常數(shù)常數(shù)) 等值線等值線c在在B(20,30)點(diǎn)得到最優(yōu)解點(diǎn)得到最優(yōu)解目標(biāo)函數(shù)和約束條件是線性函數(shù)目標(biāo)函數(shù)和約束條件是線性函數(shù) 可行域?yàn)橹本€段圍成的凸多邊形可行域?yàn)橹本€段圍成的凸多邊形 目標(biāo)函數(shù)的等值線為直線目標(biāo)函數(shù)的等值線為直線 最優(yōu)解一定在凸多邊最優(yōu)解一定在凸多邊形的某個(gè)頂點(diǎn)取得。形的某個(gè)頂點(diǎn)取得。 單純形法單純形法單純形法單純形法運(yùn)行狀態(tài)窗口運(yùn)行狀態(tài)窗口Variables(變量數(shù)量):(變量數(shù)量): 變量總

51、數(shù)(變量總數(shù)(Total)、)、 非線性變量數(shù)(非線性變量數(shù)(Nonlinear)、)、 整數(shù)變量數(shù)(整數(shù)變量數(shù)(Integer)。)。Constraints(約束數(shù)量):(約束數(shù)量): 約束總數(shù)(約束總數(shù)(Total)、)、 非線性約束個(gè)數(shù)非線性約束個(gè)數(shù)(Nonlinear)。Nonzeros(非零系數(shù)數(shù)量):(非零系數(shù)數(shù)量): 總數(shù)(總數(shù)(Total)、)、 非線性項(xiàng)系數(shù)個(gè)數(shù)非線性項(xiàng)系數(shù)個(gè)數(shù)(Nonlinear)。Generator Memory Used (K) (內(nèi)存使用量?jī)?nèi)存使用量)Elapsed Runtime (hh:mm:ss)(求解花費(fèi)的時(shí)間)(求解花費(fèi)的時(shí)間) 求解求解器器

52、(求求解程解程序序)狀狀態(tài)框態(tài)框當(dāng)前模型的類(lèi)型當(dāng)前模型的類(lèi)型 :LP,QP,ILP,IQP,PILP, PIQP,NLP,INLP,PINLP (以(以I開(kāi)頭表示開(kāi)頭表示IP,以,以PI開(kāi)頭表示開(kāi)頭表示PIP) 當(dāng)前解的狀態(tài)當(dāng)前解的狀態(tài) : Global Optimum, Local Optimum, Feasible, Infeasible“(不可行不可行), Unbounded“(無(wú)界無(wú)界), Interrupted“(中斷中斷), Undetermined“(未確定未確定) 解的目標(biāo)函數(shù)值解的目標(biāo)函數(shù)值 當(dāng)前約束不滿足的總量當(dāng)前約束不滿足的總量(不是不不是不滿足的約束的個(gè)數(shù)滿足的約束的個(gè)

53、數(shù)):實(shí)數(shù)(即使實(shí)數(shù)(即使該值該值=0,當(dāng)前解也可能不可行,當(dāng)前解也可能不可行,因?yàn)檫@個(gè)量中沒(méi)有考慮用上下界因?yàn)檫@個(gè)量中沒(méi)有考慮用上下界命令形式給出的約束)命令形式給出的約束) 目前為止的目前為止的迭代次數(shù)迭代次數(shù) 模型求解模型求解 軟件實(shí)現(xiàn)軟件實(shí)現(xiàn) LINGO 9.0 Model:max=72*x1+64*x2;x1+x250;12*x1+8*x2480;3*x1100;end OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000

54、 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000 NO. ITERATIONS= 220桶牛奶生產(chǎn)桶牛奶生產(chǎn)A1, 30桶生產(chǎn)桶生產(chǎn)A2,利潤(rùn),利潤(rùn)3360元。元。 結(jié)果解釋結(jié)果解釋 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

55、 PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000 NO. ITERATIONS= 2原料無(wú)剩余原料無(wú)剩余時(shí)間無(wú)剩余時(shí)間無(wú)剩余加工能力剩余加工能力剩余40三三種種資資源源“資源資源” 剩余為零的約束為緊約束(有效約束)剩余為零的約束為緊約束(有效約束) Model:max=72*x1+64*x2;x1+x250;12*x1+8*x2480;3*x1100;end結(jié)果解釋結(jié)果解釋 OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED CO

56、ST 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 NO. ITERATIONS= 2最優(yōu)解下最優(yōu)解下“資源資源”增加增加1單位時(shí)單位時(shí)“效益效益”的增的增量量 原料增加原料增加1單位單位, 利潤(rùn)增長(zhǎng)利潤(rùn)增長(zhǎng)48 時(shí)間增加時(shí)間增加1單位單位, 利潤(rùn)增長(zhǎng)利潤(rùn)增長(zhǎng)2 加工能力增長(zhǎng)不影響利潤(rùn)加工能力增長(zhǎng)不影響利潤(rùn)影子價(jià)格影子價(jià)格 35元可買(mǎi)到元可買(mǎi)到1桶牛奶,要買(mǎi)嗎

57、?桶牛奶,要買(mǎi)嗎?35 48, 應(yīng)該買(mǎi)!應(yīng)該買(mǎi)! 聘用臨時(shí)工人付出的工資最多每小時(shí)幾元?聘用臨時(shí)工人付出的工資最多每小時(shí)幾元? 2元!元!RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 72.000000 24.000000 8.000000 X2 64.000000 8.000000 16.000000 RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE

58、ALLOWABLE RHS INCREASE DECREASE 2 50.000000 10.000000 6.666667 3 480.000000 53.333332 80.000000 4 100.000000 INFINITY 40.000000最優(yōu)解不變時(shí)目標(biāo)函最優(yōu)解不變時(shí)目標(biāo)函數(shù)系數(shù)允許變化范圍數(shù)系數(shù)允許變化范圍 敏感性分析敏感性分析 RANGE(SENSITIVITY) ANALYSIS window|command window輸入:輸入:set dualco 2 x1系數(shù)范圍系數(shù)范圍(64,96) x2系數(shù)范圍系數(shù)范圍(48,72) A1獲利增加到獲利增加到 30元元/千克,

59、應(yīng)否改變生產(chǎn)計(jì)劃千克,應(yīng)否改變生產(chǎn)計(jì)劃 x1系數(shù)由系數(shù)由24 3=72增加增加為為30 3=90,在在允許范圍內(nèi)允許范圍內(nèi) 不變!不變!(約束條件不變約束條件不變)結(jié)果解釋結(jié)果解釋 RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 72.000000 24.000000 8.000000 X2 64.000000 8.000000 16.000000 RIGHTHAND SIDE RANGES

60、ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 50.000000 10.000000 6.666667 3 480.000000 53.333332 80.000000 4 100.000000 INFINITY 40.000000影子價(jià)格有意義時(shí)約束右端的允許變化范圍影子價(jià)格有意義時(shí)約束右端的允許變化范圍 原料最多增加原料最多增加10 時(shí)間最多增加時(shí)間最多增加53 35元可買(mǎi)到元可買(mǎi)到1桶牛奶,每天最多買(mǎi)多少?桶牛奶,每天最多買(mǎi)多少?最多買(mǎi)最多買(mǎi)10桶桶!(目標(biāo)函數(shù)不變目標(biāo)函數(shù)不變)為了選修課程門(mén)數(shù)最少,應(yīng)學(xué)習(xí)哪些課程為了選修

溫馨提示

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