數(shù)學(xué)建模中l(wèi)ingo的使用_第1頁
數(shù)學(xué)建模中l(wèi)ingo的使用_第2頁
數(shù)學(xué)建模中l(wèi)ingo的使用_第3頁
數(shù)學(xué)建模中l(wèi)ingo的使用_第4頁
數(shù)學(xué)建模中l(wèi)ingo的使用_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)學(xué)規(guī)劃與lingo軟件

第1頁數(shù)學(xué)規(guī)劃

表示式:x~決議變量f(x)~目標(biāo)函數(shù)gi(x)0~約束條件決議變量個數(shù)n和約束條件個數(shù)m較大數(shù)學(xué)規(guī)劃線性規(guī)劃非線性規(guī)劃第2頁一個簡單例子(感受lingo):第3頁怎么求解呢?方法一:作圖;方法二:單純形法;方法三:lingo軟件;其它方法:matlab軟件等等;第4頁Lingo程序代碼:max=7*x1+5*x2;3*x1+2*x2<=95;4*x1+6*x2<=201;7*x2<=210;第5頁Lingo求解結(jié)果:Globaloptimalsolutionfound.Objectivevalue:229.1000

Infeasibilities:0.000000Totalsolveriterations:2VariableValueReducedCostX116.800000.000000X222.300000.000000RowSlackorSurplusDualPrice1229.10001.00000020.0000002.0030.0000000.1000000453.900000.000000第6頁Matlab程序代碼:f=[-7;-5];A=[32;46;07];b=[90;200;210];lb=zeros(2,1);[x,fval,exitflag,output,lambda]=linprog(f,A,b,[],[],lb)第7頁附加整數(shù)約束(怎么處理呢?)第8頁Lingo程序代碼:max=7*x1+5*x2;3*x1+2*x2<=95;4*x1+6*x2<=201;7*x2<=210;@gin(x1);@gin(x2);第9頁例1加工奶制品生產(chǎn)計劃1桶牛奶3千克A1

12小時8小時4千克A2

或贏利24元/千克贏利16元/千克50桶牛奶時間480小時至多加工100千克A1

制訂生產(chǎn)計劃,使天天贏利最大35元可買到1桶牛奶,買嗎?若買,天天最多買多少?可聘用暫時工人,付出工資最多是每小時幾元?A1贏利增加到30元/千克,應(yīng)否改變生產(chǎn)計劃?天天:第10頁1桶牛奶3千克A1

12小時8小時4千克A2

或贏利24元/千克贏利16元/千克x1桶牛奶生產(chǎn)A1

x2桶牛奶生產(chǎn)A2

贏利24×3x1

贏利16×4x2

原料供給

勞動時間

加工能力

決議變量

目標(biāo)函數(shù)

天天贏利約束條件非負(fù)約束

線性規(guī)劃模型(LP)時間480小時至多加工100千克A1

50桶牛奶天天第11頁模型求解

圖解法

x1x20ABCDl1l2l3l4l5約束條件目標(biāo)函數(shù)

Z=0Z=2400Z=3360z=c(常數(shù))~等值線c在B(20,30)點得到最優(yōu)解目標(biāo)函數(shù)和約束條件是線性函數(shù)可行域為直線段圍成凸多邊形目標(biāo)函數(shù)等值線為直線最優(yōu)解一定在凸多邊形某個頂點取得。第12頁模型求解

軟件實現(xiàn)

LINDG11.0max=72*x1+64*x2;x1+x2<=50;12*x1+8*x2<=480;3*x1<=100;

OBJECTIVEFUNCTIONVALUE

1)3360.000

VARIABLEVALUEREDUCEDCOST

X120.0000000.000000

X230.0000000.000000ROWSLACKORSURPLUSDUALPRICES2)0.00000048.0000003)0.0000002.0000004)40.0000000.000000NO.ITERATIONS=2DORANGE(SENSITIVITY)ANALYSIS?No20桶牛奶生產(chǎn)A1,30桶生產(chǎn)A2,利潤3360元。第13頁結(jié)果解釋

OBJECTIVEFUNCTIONVALUE1)3360.000VARIABLEVALUEREDUCEDCOSTX120.0000000.000000X230.0000000.000000

ROW

SLACKORSURPLUSDUALPRICES

2)0.00000048.000000

3)0.0000002.0000004)40.0000000.000000NO.ITERATIONS=2原料無剩下時間無剩下加工能力剩下40三種資源“資源”剩下為零約束為緊約束(有效約束)max=72*x1+64*x2;x1+x2<=50;12*x1+8*x2<=480;3*x1<=100;第14頁結(jié)果解釋

OBJECTIVEFUNCTIONVALUE1)3360.000VARIABLEVALUEREDUCEDCOSTX120.0000000.000000X230.0000000.000000ROWSLACKORSURPLUSDUALPRICES

2)0.00000048.000000

3)0.0000002.000000

4)40.0000000.000000NO.ITERATIONS=2最優(yōu)解下“資源”增加1單位時“效益”增量原料增加1單位,利潤增加48時間增加1單位,利潤增加2加工能力增加不影響利潤影子價格35元可買到1桶牛奶,要買嗎?35<48,應(yīng)該買!聘用暫時工人付出工資最多每小時幾元?2元!第15頁RANGESINWHICHTHEBASISISUNCHANGED:

OBJCOEFFICIENTRANGES

VARIABLECURRENTALLOWABLEALLOWABLECOEFINCREASEDECREASE

X172.00000024.0000008.000000X264.0000008.00000016.000000RIGHTHANDSIDERANGESROWCURRENTALLOWABLEALLOWABLERHSINCREASEDECREASE250.00000010.0000006.6666673480.00000053.33333280.0000004100.000000INFINITY40.000000最優(yōu)解不變時目標(biāo)函數(shù)系數(shù)允許改變范圍DORANGE(SENSITIVITY)ANALYSIS?

Yesx1系數(shù)范圍(64,96)

x2系數(shù)范圍(48,72)

A1贏利增加到30元/千克,應(yīng)否改變生產(chǎn)計劃x1系數(shù)由243=72增加為303=90,在允許范圍內(nèi)不變!(約束條件不變)第16頁RANGESINWHICHTHEBASISISUNCHANGED:OBJCOEFFICIENTRANGESVARIABLECURRENTALLOWABLEALLOWABLECOEFINCREASEDECREASEX172.00000024.0000008.000000X264.0000008.00000016.000000

RIGHTHANDSIDERANGESROWCURRENTALLOWABLEALLOWABLERHSINCREASEDECREASE250.00000010.0000006.6666673480.00000053.33333280.0000004100.000000INFINITY40.000000影子價格有意義時約束右端允許改變范圍原料最多增加10時間最多增加5335元可買到1桶牛奶,天天最多買多少?最多買10桶!(目標(biāo)函數(shù)不變)結(jié)果解釋第17頁例2:復(fù)雜一點例子:假設(shè)某企業(yè)有6個貨棧向8個銷售商供給小裝飾品,每一個貨棧供給量都是有限,每一個銷售商需求量必須得到滿足。該企業(yè)要決定怎樣調(diào)運貨棧裝飾品滿足銷售商以使總運輸成本最少。第18頁數(shù)據(jù):貨棧:123456可供量:605551434152銷售商12345678需求量3537223241324338運輸成本:

12345678162674259249538582352197433

476739271

523957265655228143;第19頁模型第20頁利用lingo編程求解?:在lingo中怎么輸入?!假如按初等輸入方法,怎么樣?煩?。。。。。。。。。?!有必要引進(jìn)新方法:Lingo特點:集語言!第21頁在lingo中引進(jìn)集概念及定義主要目標(biāo)是為了實現(xiàn)程序循環(huán)功效。

集:由一些對象組成全體。

集組員屬性:集組員可能有一個或多個與之相關(guān)聯(lián)特征,我們把這些特征稱為屬性。比如雇員集中每位雇員能夠有一個薪水屬性,也能夠有一個生日屬性等等。Lingo中集第22頁Lingo中集定義語法:setname/member_list/:attribute_list;

說明:setname為集名稱;

/member_list/為組員列表;

attribute_list為屬性列表。Lingo中集第23頁集定義例子:sets:students/JohnJill,RoseMike/:sex,age;endsets

注意:集部分以關(guān)鍵字“sets:”開始,以“endsets”結(jié)束。一個集及其屬性在模型約束中被引用之前必須定義了它們。Lingo中集第24頁把上面代碼在lingo中運行,可得到下面結(jié)果:

VariableValueSEX(JOHN)1.234568SEX(JILL)1.234568SEX(ROSE)1.234568SEX(MIKE)1.234568AGE(JOHN)1.234568AGE(JILL)1.234568AGE(ROSE)1.234568AGE(MIKE)1.234568第25頁sets:w/1..6/:capacity;endsets

也定義了一個集。注意該集合組員列表時所使用方法。Lingo中集第26頁把上面代碼在lingo中運行,可得到下面結(jié)果:

VariableValueCAPACITY(1)1.234568CAPACITY(2)1.234568CAPACITY(3)1.234568CAPACITY(4)1.234568CAPACITY(5)1.234568CAPACITY(6)1.234568第27頁派生集(高維數(shù)組)定義方法:setname(parent_set_list)/member_list/:attribute_list;

比如:sets:product/AB/;machine/MN/;week/1..2/;allowed(product,machine,week):x;endsets

Lingo中集第28頁把上面代碼在lingo中運行,可得到下面結(jié)果:

VariableValueX(A,M,1)1.234568X(A,M,2)1.234568X(A,N,1)1.234568X(A,N,2)1.234568X(B,M,1)1.234568X(B,M,2)1.234568X(B,N,1)1.234568X(B,N,2)1.234568第29頁集合中對象每一個屬性都是一個變量,lingo程序運行完成后全部變量都會有一個值,變量取值確實定有兩種方法:第一,對變量進(jìn)行賦值(數(shù)據(jù)部分就是處理這個問題)。第二,沒有賦值變量,就是決議變量。數(shù)據(jù)部分第30頁數(shù)據(jù)部分以關(guān)鍵字“data:”開始,以關(guān)鍵字“enddata”結(jié)束。在這里,能夠指定集組員、集屬性。其語法以下:

object_list=value_list;

數(shù)據(jù)部分定義方法第31頁sets:set1/A,B,C/:X,Y;endsetsdata:X=1,2,3;Y=4,5,6;enddata

第32頁也能夠?qū)懗上旅嫘问剑簊ets:set1/A,B,C/:X,Y;endsetsdata:X,Y=142536;enddata

注意:LINGO在為對象指定值時,首先在n個對象第1個索引處依次分配數(shù)值列中前n個對象,然后在n個對象第2個索引處依次分配數(shù)值列中緊接著n個對象,……,以這類推。第33頁把上面代碼在lingo中運行,可得到下面結(jié)果:

VariableValueX(A)1.000000X(B)2.000000X(C)3.000000Y(A)4.000000Y(B)5.000000Y(C)6.000000第34頁在初始部分中,能夠輸入初始申明(initializationstatement),和數(shù)據(jù)部分中數(shù)據(jù)申明相同。對實際問題建模時,初始部分并不起到描述模型作用,在初始部分輸入值僅被LINGO求解器看成初始點來用,而且僅僅對非線性模型有用。和數(shù)據(jù)部分指定變量值不一樣,LINGO求解器能夠自由改變初始部分初始化變量值。初始部分第35頁初始部分定義方法:一個初始部分以“init:”開始,以“endinit”結(jié)束。初始部分初始申明規(guī)則和數(shù)據(jù)部分?jǐn)?shù)據(jù)申明規(guī)則相同。比如(在lingo中全部變量是不分大小寫):init:X,Y=2,0.1;endinitmax=x+y;Y=@log(X);X^2+Y^2<=1;第36頁函數(shù):函數(shù)運算前必須加@號@abs(x)@sin(x)@cos(x)@tan(x)@exp(x)絕對值正弦余弦正切e為底指數(shù)@log(x)@sign(x)@smax@smin@floop(x)e為底對數(shù)符號函數(shù)最大數(shù)最小數(shù)取整循環(huán):@FOR(集名[(循環(huán)字母)[|循環(huán)條件]]:表示式列表)最大:@MAX(集名[(循環(huán)字母)[|循環(huán)條件]]:表示式)最?。篅MIN(集名[(循環(huán)字母)[|循環(huán)條件]]:表示式)取和:@SUM(集名[(循環(huán)字母)[|循環(huán)條件]]:表示式)第37頁運輸問題lingo程序sets:w/1..6/:capacity;v/1..8/:demand;links(w,v):c,x;endsetsdata:capacity=605551434152;demand=3537223241324338;c=626742594953858252197433767392712395726555228143;enddatamin=@sum(links(i,j):c(i,j)*x(i,j));@for(w(i):@sum(v(j):x(i,j))<=capacity(i));@for(v(j):@sum(w(i):x(i,j))=demand(j));第38頁Matlab求解此線性規(guī)劃(代碼):f=[6;2;6;7;4;2;5;9;4;9;5;3;8;5;8;2;5;2;1;9;7;4;3;3;...7;6;7;3;9;2;7;1;2;3;9;5;7;2;6;5;5;5;2;2;8;1;4;3];A=[1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

溫馨提示

  • 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

提交評論