




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Lingo優(yōu)化軟件入門(商用版)舒興明一、Lindo/Lingo軟件簡介1、美國芝加哥大學(xué)的Linus Schrage教授于1980年前后開發(fā)的專門用于求解最優(yōu)化問題的軟件包,后經(jīng)多年完善與擴充,并成立了LINDO系統(tǒng)公司進行商業(yè)運作取得巨大成功。根據(jù) LINGO公司主頁(http:/)提供的信息,位列財富雜志500強的企業(yè)中,有一半以上使用Lingo優(yōu)化軟件,前25強有23企業(yè)使用Lingo優(yōu)化軟件。用戶可以在 主頁自由下載各類子包的演示版和應(yīng)用 例子。演示版和正式版功能類似,只是求解問題規(guī)模受到限制。各類版本的限制如下表版本類型總變量數(shù)整數(shù)變量數(shù)非線性變量數(shù)約束數(shù)演示版3003030150
2、求解包5005050250高級版20002002001000超級版80008008004000工業(yè)版320003200320016000擴展版無限無限無限無限 LINGO是英文Linear Interactive and General Optimizer首寫字母的縮寫,即“交互式線性和通用化求解器”。2、Lindo/Lingo軟件內(nèi)部有以下4個求解程序用于求解不同類型的優(yōu)化模型(1)直接求解器(Direct Solver);(2)線性優(yōu)化求解程序(Linear Solver);(3)非線性優(yōu)化求解程序(Nonlinear Solver);(4)分支定界管理程序(Branch and Boun
3、d Manager)。 對于已經(jīng)輸入的一個優(yōu)化模型,一旦發(fā)出求解指令,第一步是對等式約束的直接處理,例如,如果約束中有三個等式約束Xyz=30,X+y=8,Y=5則Lingo軟件能直接確定y=5,x=3,z=2,這三個變量就變成常數(shù)了。這樣就盡量減少模型的規(guī)模(變量數(shù)和約束數(shù)),從而使得求解更加有效快捷。第二步就是識別模型的類型,根據(jù)類型調(diào)用不同的處理器來求解。 而處理器識別模型會在計算界面給出說明:LP:線性規(guī)劃模型QP:二次規(guī)劃模型NLP:非線性規(guī)劃ILP:整數(shù)線性規(guī)劃INLP:整數(shù)非線性規(guī)劃IQP:整數(shù)二次規(guī)劃二、建立優(yōu)化模型應(yīng)注意的幾個問題1、盡量使用實數(shù)優(yōu)化模型,盡量減少整數(shù)約束和整
4、數(shù)變量的個數(shù);2、盡量使用光滑優(yōu)化模型,盡量避免使用非光滑函數(shù); 盡量少用絕對值函數(shù)(|x|)、符號函數(shù)(當x0時,函數(shù)為1)、多個變量求最大(或最?。?、四舍五入函數(shù)、取整函數(shù)等。3、盡量使用線性優(yōu)化模型,盡量減少非線性約束和非線性變量(非線性約束中的變量)的個數(shù);4、合理設(shè)定變量的上下界,避免計算陷入“大海撈針”。5、模型中使用的單位的數(shù)量級要適當 Lingo計算時,最大數(shù)盡量不要超過最小數(shù)的1000倍,如果出現(xiàn)100000000與0.1的計算,誤差很大!小數(shù)湮沒于大數(shù)!例1例1 化下列非線性規(guī)劃化為線性規(guī)劃0 x, 0 x, 0 x, 0 x,10 x2x, 5xxx4x4. t . s;
5、x5x4xxmin(1)432143432221432221解222211xy,xy令,代入原規(guī)劃模型,得0 x, 0 x, 0y, 0y,10 x2x, 5xxy4y4. t . s;x5x4yymin43214343214321.12x2x3x,10 xxx. t . s|x|x|2|x|min (2)321321321解設(shè)2x|x|y,2x|x|y111111,由此解得111111yyx, yy|x|同理,有.yyx, yy|x|;yyx, yy|x|333333222222代入模型,注意增加約束0y,y, y,y, y,y332211.12x2x3x,10 xxx. t . s);x,
6、x,max(xmin(3)321321321解令)x,x,max(xy321,則此約束的充分條件是.xy,xy,xy321所以,原模型等價于.xy,xy,xy,12x2x3x,10 xxx. t . s; ymin321321321最高分越低越好!. 2x3x,10 xx. t . s)4x, 5min(xmax(4)212121解 設(shè))4x, 5min(xy21,此約束等價于, 4xy, 5xy21所以原模型等價于. 2x3x,10 xx, 4xy, 5xy. t . symax212121最低分越高越好!三、編寫一個簡單的lingo程序1、安裝lingo優(yōu)化軟件 根據(jù)一般的程序安裝方法,運
7、行setup.exe文件,只要按照提示步驟,就可以順利安裝完畢。在第一次運行l(wèi)ingo(這里以lingo8.0為例)需要你輸入密碼(安裝序列號),如果沒有,就只有使用演示版(試用版),假設(shè)你購買的是正版,把復(fù)制好地秘密粘貼到此窗口即可。2、編寫一個簡單的LINGO程序例2 在lingo的編輯窗口輸入如下規(guī)劃(二次規(guī)劃)2212112212121212max 98x277xx0.3x x2x ;xx100,x2x ,s.t.x ,x0,x ,xZ.x1+x2100;x1=0時,不必在輸入計算機中,相反,如果有變量x可以取負數(shù),則應(yīng)規(guī)范free(x);(4)Lingo中的=,替換,即不區(qū)分大于等于
8、和大于,小于等于和小于;例如:y=sinx-1,數(shù)學(xué)上y取值于【-2,0】,如果是寫在lingo程序中,就導(dǎo)致y=0!,(必須加上free(y)),為什么?(5)輸入的多余的空格和回車都會被忽略,一個約束可以分兩行或者多行書寫;(6)Lingo模型是由一系列語句構(gòu)成,即語句是組成Lingo模型的基本單位,每個語句都是以分號“;”結(jié)尾,但盡量一個語句用一行來書寫;(7) 以感嘆號“!”開始的語句是說明語句(注釋語句,以便讀者更好理解程序),但計算機在讀取模型時,會忽略這樣的語句。(8)在Lingo中,以“”開頭的都是調(diào)用函數(shù),這在后面專門敘述。3、計算摁這個按鈕就可以開始計算,如果有錯誤,根據(jù)提
9、示逐步修改。最終得到一個計算狀態(tài)文檔(如下所示)Lingo程序常見錯誤:乘號“*”漏掉;分號“;”漏掉;變量名沒有定義;函數(shù)標示“”漏掉;括號不配對;sets,endsets,data,enddata(不是enddate!)后加分號。同時也得到一個求解結(jié)果的窗口 Global optimal solution found at iteration: 364 Objective value: 11077.50 Variable Value Reduced Cost X1 35.00000 -1.999947 X2 65.00000 0.000000 Row Slack or Surplus Du
10、al Price 1 0.000000 6.500069 2 95.00000 0.000000 3 11077.50 1.000000得到最優(yōu)解迭代次數(shù)為364次,目標值為11077.5,其中x1=35,x2=65,其余的解讀后面再給出。例3 ;x6x115x8x9x3x10 x2x11x4x12x4xcmin34333231242322211413121131i41jijij4,3,2, 1j;3,2, 1i ,0 x.14xxx,12xxx,14xxx,8xxx,22xxxx,10 xxxx,16xxxxs.t.ij342414332313322212312111343332312423
11、222114131211例3min=4*x11+12*x12+4*x13+11*x14 +2*x21+10*x22+3*x23+9*x24 +8*x31+5*x32+11*x33+6*x34;x11+x12+x13+x14=16;x21+x22+x23+x24=10;x31+x32+x33+x34=22;x11+x21+x31=8;x12+x22+x32=14;x13+x23+x33=12;x14+x24+x34=14;Global optimal solution found at iteration: 6 Objective value: 244.0000 Variable Value R
12、educed Cost X11 4.000000 0.000000 X12 0.000000 2.000000 X13 12.00000 0.000000 X14 0.000000 0.000000 X21 4.000000 0.000000 X22 0.000000 2.000000 X23 0.000000 1.000000 X24 6.000000 0.000000 X31 0.000000 9.000000 X32 14.00000 0.000000 X33 0.000000 12.00000 X34 8.000000 0.000000四、Lingo運算符1、算術(shù)運算符+ - * /
13、加 減 乘 除 冪2、邏輯運算符2.1 邏輯值之間的運算符#AND# #OR# #NOT# 與 或 非算術(shù)運算符是數(shù)與數(shù)之間的運算,結(jié)果也是數(shù)。 參與運算的是邏輯值,結(jié)果也是邏輯值,邏輯值只有“真”(True=1)和“假”(False=0)兩個值。2.2 邏輯表達式的比較符#EQ# #NE# #GT# #GE# #LT# #LE# 等于 不等于 大于 大于等于 小于 小于等于 這6個操作符實際還是“數(shù)與數(shù)之間的”比較,而邏輯表達式計算的結(jié)果是邏輯值。3、關(guān)系運算符 (=) =小于(小于等于) 大于(大于等于) 等于這三個符號表示數(shù)與數(shù)之間的大小關(guān)系4、運算符的優(yōu)先級別 優(yōu)先級 運算符最高最低#
14、not# -(負號)* /+ -(減法)#eq# #ne# #gt# #ge# #lt# #le#and# #or# 括號“()”優(yōu)先,同行從左往右計算順序。五、函數(shù)abs(x): 絕對值函數(shù),返回x的絕對值;cos(x):x的余弦值,x是弧度值;sin(x):x的正弦值,x是弧度值;tan(x):x的正切值,x是弧度值;exp(x):ex;log(x):ln(x);lgm(x):返回x的伽瑪函數(shù)的自然對數(shù),當x為整數(shù)時,lgm(x)=ln(x-1)!,如果x不是整數(shù)采用線性插值的結(jié)果;例如:lgm(2.3)0.7lgm(2)+0.3lgm(3)。1、基本函數(shù)mod(x,y):模函數(shù),即x除以
15、y的余數(shù),x,y是整數(shù);pow(x,y):xy;sign(x):返回x的符號值,x0,sign(x)=1,x0,sign(x)=-1,x=0,sign(x)=0;smax(list):返回數(shù)列l(wèi)ist的最大值;smin(list):返回數(shù)列l(wèi)ist的最小值;sqr(x):x*x;sqrt(x):x的平方根;floor(x):取整(返回x的整數(shù)部分);prod(list):返回連乘的積;2、變量定界函數(shù)bnd(L,X,U):限制LxU;bin(X):限制x為0或1;gin(x):限制X只能取整數(shù);FREE(X):取消對x的符號限制,可以取負數(shù),0,正數(shù).六、在lingo中使用集合模型(例4)例4
16、 某部門有三個生產(chǎn)同一產(chǎn)品的工廠(產(chǎn)地),生產(chǎn)的產(chǎn)品運往四個銷售點(銷地)出售,各個工廠的生產(chǎn)量、各銷地的銷量(單位:噸)、從各個工廠到各個銷售點的單位運價(元/噸)如下表,研究如何調(diào)運才能使得總運費最小。產(chǎn)地銷地1 2 3 4 產(chǎn)量123銷 量 4 12 4 11 162 10 3 9 108 5 11 6 228 14 12 14 48分析 一個完整的調(diào)運方案,要明確地給出從每個產(chǎn)地運往各個銷地的具體運輸量(當然是總運輸費用越小,方案越好)。符號設(shè)置Xij:表示從第i產(chǎn)地調(diào)運到第j銷地的運輸量; i=1,2,3;j=1,2,3,4Cij:表示從第i產(chǎn)地運往第j銷地的單位運價;Ai:表示第i
17、產(chǎn)地的產(chǎn)量;i=1,2,3Bj:表示第j銷地的銷售量;j=1,2,3,4調(diào)運量表格運價表格總的調(diào)運費用為31i41jijijxc(每條道路運費之和)對每個產(chǎn)地來說,調(diào)運量總和不超過該產(chǎn)地的產(chǎn)量3 , 2 , 1i ,axi41jij對每個銷售地來說,調(diào)運量總和必須滿足銷售需求4 , 3 , 2 , 1j ,bxj31iij各種調(diào)運量非負4 , 3 , 2 , 1j ; 3 , 2 , 1i , 0 xij數(shù)學(xué)模型31i41jijijxcmin4 , 3 , 2 , 1j ; 3 , 2 , 1i , 0 x4 , 3 , 2 , 1j ,bx3 , 2 , 1i ,axs.t.ijj31iij
18、i41jij 如果此模型擴展到有50個產(chǎn)地和100個銷售地的規(guī)模,從理解問題的角度看,就是讓i=1,2,50;j=1,2,100就行了,但是為了讓計算機處理,還是按照前面的一行一個語句逐字逐句地輸入,工作量就太大了。Lingo就有節(jié)約時間的輸入方式,且計算機也能理解,那就是集合式輸入法。1、集合(下標)部分這一部分定義集合以及屬性(這里以例4為例敘述)規(guī)范格式sets:chandi/1,2,3/:a;endsets 這樣就定義了集合chandi=1,2,3,對應(yīng)的屬性(與這個下標有關(guān)的量)a,于是上述語句就定有了a(1),a(2),a(3)這三個變量名(可能是決策變量,也可能是已知量),表示是
19、三個產(chǎn)地的產(chǎn)量。 在計算過程中,只要出現(xiàn)chandi,就表示按順序取值于1,2,3。 上面的集合定義,如果集合元素比較多,則采用下面的定義方式sets:chandi/1.3/:a;endsets如果是sets:chandi/1.50/:a;endsets那就定義了50個變量名a(1),a(2),a(50)。 而例4中,有三個產(chǎn)地(及其產(chǎn)量),四個銷售地(相應(yīng)的產(chǎn)量),則可以如下定義 這樣就定義了chandi這個集合,與這個集合有關(guān)的屬性a,xiaodi這個集合,與這個集合有關(guān)的屬性b,直接定義了a(1),a(2),a(3),b(1),b(2),b(3),b(4),這樣直接定義的集合稱為基本集合
20、。 例4中,還有形如x12,c12這樣的變量名如何定義呢?這樣的變量既與產(chǎn)地有關(guān),又與銷地有關(guān),于是就由chandi這個集合與xiaodi這個集合聯(lián)合生成一個笛卡爾集,稱為派生集合(關(guān)聯(lián)變量的下標范圍):sets:chandi/1.3/:a;xiaodi/1.4/:b;link(chandi,xiaodi):x,c;endsets 這樣就增加了一個新的集合link,它由chandi和xiaodi兩個集合生成,從數(shù)學(xué)看xiaodijchandi,i |j)(i,link與之有關(guān)的屬性為x,c,就定義了如下變量名X(1,1),x(1,2),x(1,3),x(1,4),x(2,1),x(2,2),x
21、(2,3),x(2,4),x(3,1),x(3,2),x(3,3),x(3,4)c(1,1),c(1,2),c(1,3),c(1,4),c(2,1),c(,2,2),c(2,3),c(2,4),c(3,1),c(3,2),c(3,3),c(3,4)2、數(shù)據(jù)部分這部分格式:data:a=16,10,22;b=8,14,12,14;c=4 12 4 11 2 10 3 9 8 5 11 6;enddata 以”data:”開始,以“enddata”結(jié)束。不管變量是行還是列,都采用行寫,行元素見可以逗號“,”隔開,也可以空格隔開。而矩陣輸入時,先行后列,每行輸入完畢,就回車(enter),再輸入一行
22、,直到輸入完畢,再分號“;”每個變量的數(shù)據(jù)輸入完畢,都用分號“;”結(jié)束。3、模型部分 這樣部分要把模型的約束和目標函數(shù)全部反應(yīng)出來(仍然以例4為例書寫),如下約束3 , 2 , 1i ,axi41jij即對每個產(chǎn)地i(i=1,2,3)來說,從這里運往各個銷地(j=1,j=2,j=3,j=4)的運輸量之和:不超過產(chǎn)地i 的產(chǎn)量a(i),即X(i,1)+x(i,2)+x(i,3)+x(i,4)x(i,1)+x(i,2)+x(i,3)+x(i,4)= a(i),i=1,2,3對每個i:for(chandi(i):)對所有銷地j求和sum(xiaodi(j):x(i,j)X(i,1)+x(i,2)+x
23、(i,3)+x(i,4)= a(i),i=1,2,3對每個i:for(chandi(i): )對所有銷地j求和sum(xiaodi(j):x(i,j)按照這個邏輯,合并為:for(chandi(i): sum(xiaodi(j): x(i,j) = b(j) );目標是將所有線路的運費求和,并使之最小化,即31i41jijijxcminmin= sum( link(i,j): c(i,j)*x(i,j);求和對象求和范圍求和函數(shù)目標標識注意:以上寫法中,注意括號匹配,分號結(jié)束。注意:以上寫法中,注意括號匹配,分號結(jié)束。4、初始值部分 在針對線性規(guī)劃時,這個部分不需要。但是針對非線性規(guī)劃,這個部
24、分就有必要了,給出決策值的迭代始點,更容易找到局部最優(yōu)解,同時,給出不同的初始值,可以嘗試尋找不同的局部最優(yōu)解,然后加以比較,找到較好的局部最優(yōu)解,作為全局最優(yōu)解使用。例5);x3x2(emin2221xx21min=exp(-x1-x2)*(2*x12+3*x22);init:x1=2;x2=2;endinit例6 將數(shù)學(xué)模型翻譯成lingo模型.0 x,x,x,2xxx3x2,14x2xxx,2xx2xx4. t . s;x5x2x43x-min 3214321432143214321sets:bianliang/1.4/:x,c;fangcheng/1.3/:b;link(fangche
25、ng,bianliang):a;endsetsdata:c=-3 4 -2 5;b=-2 14 -2;a=4 -1 2 -1 1 1 -1 2 2 -3 -1 1;enddatamin=sum(bianliang(j):c(j)*x(j);for(fangcheng(i)|i#eq#1:sum(link(i,j):a(i,j)*x(j)=b(i);for(fangcheng(i)|i#gt#1:sum(link(i,j):a(i,j)*x(j)b(i);free(x(4);生成模型,以檢查對錯!生成結(jié)果: MIN - 3 X( 1) + 4 X( 2) - 2 X( 3) + 5 X( 4)
26、SUBJECT TO 2 4 X( 1) - X( 2) + 2 X( 3) - X( 4) = - 2 3 X( 1) + X( 2) - X( 3) + 2 X( 4) = 14 4 2 X( 1) - 3 X( 2) - X( 3) + X( 4) = - 2 END FREE X( 4)和前面的模型一樣! MIN - 3 X( 1) + 4 X( 2) - 2 X( 3) + 5 X( 4) SUBJECT TO 2 4 X( 1) - X( 2) + 2 X( 3) = - 2 3- X( 1) + X( 2) + X( 3) = 14 4- X( 1) + 2 X( 2) + 2
27、X( 3) need(i);ordered(i)need(i);ordered(i)need(i);ordered(i)supply(i);data:cost=file(d:shuju11.ldt);need=file(d:shuju11.ldt);supply=file(d:shuju11.ldt);enddata1122334455模型的集合和數(shù)據(jù)段共5次使用file函數(shù),分別調(diào)用shuju11.ldt中的5個段落的數(shù)據(jù)。2、通過電子表格傳遞數(shù)據(jù) 當所給的參數(shù)的數(shù)據(jù)龐大,再一個個錄入lingo編輯窗口的數(shù)據(jù)段,顯得麻煩,就直接在lingo模型的數(shù)據(jù)段,用命令調(diào)入電子表格的數(shù)據(jù)名稱和相關(guān)數(shù)據(jù)
28、就可以了。在前面的例4中,假設(shè)數(shù)據(jù)錄入在電子表格中:上面的數(shù)據(jù)存放在d:shuju22.xls再分別插入名稱,操作如下:插入名稱定義 也就是在文件shuju22.xls中,把三個數(shù)據(jù)塊分別給定名稱:運費數(shù)據(jù)cc,產(chǎn)量數(shù)據(jù)aa,銷量數(shù)據(jù)bb。 然后在lingo模型的數(shù)據(jù)段加以調(diào)用就可,調(diào)用格式:ole(spreadsheet_file,range_name_list其中,spreadsheet_file是電子表格的名稱,應(yīng)當包括擴展名.xls,還包括完整的路徑名,只要不超過64字符數(shù)就可。Range_name_list是指文件中包括數(shù)據(jù)單元范圍。以上面的例子來說明:sets:chandi/1.3
29、/:a;xiaodi/1.4/:b;yunfei(chandi,xiaodi):c,x;endsetsmin=sum(yunfei(i,j):c(i,j)*x(i,j);for(chandi(i):sum(xiaodi(j):x(i,j)=b(j);data:a=ole(d:shuju22.xls,aa);b=ole(d:shuju22.xls,bb);c=ole(d:shuju22.xls,cc);enddata運行結(jié)果如下: Global optimal solution found at iteration: 8 Objective value: 244.0000 Variable Va
30、lue Reduced Cost A( 1) 16.00000 0.000000 A( 2) 10.00000 0.000000 A( 3) 22.00000 0.000000 B( 1) 8.000000 0.000000 B( 2) 14.00000 0.000000 B( 3) 12.00000 0.000000 B( 4) 14.00000 0.000000 C( 1, 1) 4.000000 0.000000 C( 1, 2) 12.00000 0.000000 C( 1, 3) 4.000000 0.000000 C( 1, 4) 11.00000 0.000000 C( 2, 1
31、) 2.000000 0.000000 C( 2, 2) 10.00000 0.000000 C( 2, 3) 3.000000 0.000000 在上面的計算例子中,也可以應(yīng)用ole函數(shù),將lingo計算的結(jié)果返回到shuju22.xls中的某個名稱(這個名稱必須先在shuju22.xls中先命名,格式如下sets:chandi/1.3/:a;xiaodi/1.4/:b;yunfei(chandi,xiaodi):c,x;endsetsmin=sum(yunfei(i,j):c(i,j)*x(i,j);for(chandi(i):sum(xiaodi(j):x(i,j)=b(j);data:
32、a=ole(d:shuju22.xls,aa);b=ole(d:shuju22.xls,bb);c=ole(d:shuju22.xls,cc);ole(d:shuju22.xls,xx)=x;!將計算結(jié)果返回數(shù)據(jù)文件中;enddata在shuju22.xls相應(yīng)模塊就添加了計算結(jié)果3、將lingo模型嵌入、鏈接到電子表格文件中 將剛才的shuju22.xls文件打開,另存為shuju23.xls,在此文件執(zhí)行”插入|對象”,出現(xiàn)如下對話框:在對話框中選擇“l(fā)ingo document”,然后再“確定”這時在shuju23.xls中出現(xiàn)一個lingo文本框,雙擊這個文本框,就會發(fā)現(xiàn)電子表格的菜單
33、工具欄變成了lingo 有關(guān)的應(yīng)用菜單工具欄。如果你想運行l(wèi)ingo程序,就直接執(zhí)行”lingo|solver”命令就可以了(注意,要將lingo模型中=ole調(diào)用文件改為shuju23.xls,就會發(fā)現(xiàn)剛才的xx模塊的數(shù)據(jù)自動修改了。十一、解的讀取1、對偶問題例7 產(chǎn)品加工問題的逆問題(對偶問題)例8 在例1中,如果有另一家工廠,想把這家工廠的三種資源收買過來,它至少應(yīng)付出多大代價,才能使這家工廠放棄生產(chǎn)活動,出讓自己的資源。(拓展思考:如果你擁有資源,你會有哪些選擇?(1)自己組織生產(chǎn)賺取利潤;(2)把資源出租,收取適當租金。 試想一下:如果你長期在(1)和(2)中作決策,那么會發(fā)現(xiàn)哪一個
34、方案能賺取更多利潤。 首先可以肯定,這家工廠肯定不會把設(shè)備和原材料按照進貨原價轉(zhuǎn)讓給另一家工廠(否則,還不如自己組織生產(chǎn),獲取利潤27500元。也就是說,兩家工廠彼此都了解這些生產(chǎn)資料的成本,兩家工廠最終達成協(xié)議,在成本價的基礎(chǔ)上,每種生產(chǎn)資料增加租金(轉(zhuǎn)讓代價)為y1,y2,y3。及工廠把設(shè)備每小時再增加y1元,原料A再增加y2元/kg,原料B再增加y3元/小時。那么y1,y2,y3滿足什么條件,工廠才愿意出讓資料呢?再來看看表格: 工廠本身可以用1小時設(shè)備,2kg原料A,0kg原料B可以生產(chǎn)獲利50元,則這些量的資料組合出租,獲取的利潤也不應(yīng)低于50元。即y1,y2,y3應(yīng)該滿足不等式,5
35、0y2y21同樣的道理,1小時設(shè)備,1kg原料A,1kg原料B組合出租,獲取租金不應(yīng)低于100元,即,100yyy321并且,y1,y2,y3為追加的租金,應(yīng)該y1,y2,y3=0。綜上所述,出租資料的一方的出租條件為,50y2y21,100yyy3210y,y,y321而另外一方,承租方總是不愿意多出錢租金,即321y250y400300ymin 雙方的意見綜合為如下數(shù)學(xué)模型,50y2y21,100yyy3210y,y,y321321y250y400300ymin 可以想象,如果這個問題沒有最優(yōu)解,即不存在買賣雙方滿意的解,則雙方的生產(chǎn)資料的轉(zhuǎn)讓就不可能實現(xiàn)。當上述模型有最有解時,不妨設(shè)為y
36、1*,y2*,y3*,則雙方就會在此價格基礎(chǔ)上達成轉(zhuǎn)讓協(xié)議。 稱這個模型為資源轉(zhuǎn)讓模型,那么與原來的生產(chǎn)計劃模型都是描述相同資源的處理,它們的系數(shù)和解之間的關(guān)系如下s.t.生產(chǎn)模型I.0 x,x,250 xx0,400 xx2,300 xx. t . sx10050 xmax 2121212121轉(zhuǎn)讓模型II,50y0y2y321,100yyy3210y,y,y321321y250y400300ymin 對比可以發(fā)現(xiàn),模型I的價值系數(shù)為模型II的資源系數(shù);模型I的資源系數(shù)為模型II的價值系數(shù);模型I的系數(shù)矩陣與模型II的系數(shù)矩陣互為轉(zhuǎn)置;模型I目標最大化,約束=;且兩個模型的決策變量都非負。經(jīng)
37、濟學(xué)上稱模型I與模型II互為對偶問題(I為原問題時,II就是I的對偶問題;II為原問題時,I就是II的對偶問題)。它們反應(yīng)的在擁有生產(chǎn)技術(shù)情況下,對同一批資源的不同處理,它們的解之間應(yīng)該有聯(lián)系。s.t. Global optimal solution found at iteration: 6 Objective value: 27500.00 Variable Value Reduced Cost Y( 1) 50.00000 0.000000 Y( 2) 0.000000 50.00000 Y( 3) 50.00000 0.000000 Row Slack or Surplus Dual
38、Price 1 27500.00 -1.000000 2 0.000000 -50.00000 3 0.000000 -250.0000 Global optimal solution found at iteration: 3 Objective value: 27500.00 Variable Value Reduced Cost X( 1) 50.00000 0.000000 X( 2) 250.0000 0.000000 Row Slack or Surplus Dual Price 1 27500.00 1.000000 2 0.000000 50.00000 3 50.00000
39、0.000000 4 0.000000 50.00000轉(zhuǎn)讓模型生產(chǎn)模型.50y, 0y,50y*3*2*1.250 x,50 x*2*12、解的解讀生產(chǎn)模型I.0 x,x,250 xx0,400 xx2,300 xx. t . sx10050 xmax 2121212121轉(zhuǎn)讓模型II,50y0y2y321,100yyy3210y,y,y321321y250y400300ymin .50y, 0y,50y*3*2*1.250 x,50 x*2*130035025050100Surplus=0500Slack=00Slack or Surplus的意義:資源剩余或松弛。50050y*25050
40、 x*由此可見,當剩余或松弛為0時,對應(yīng)的轉(zhuǎn)讓租金就大于0,當剩余或松弛變量大于0時,對應(yīng)的轉(zhuǎn)讓租金就等于0.Surplus=0500Slack=00Slack or Surplus的意義:資源剩余或松弛。50050y*25050 x*由此可見,當剩余或松弛為0時,對應(yīng)的轉(zhuǎn)讓租金就大于0,當剩余或松弛變量大于0時,對應(yīng)的轉(zhuǎn)讓租金就等于0. 這與常識相符:在最優(yōu)生產(chǎn)條件下,當一種資源被用完(剩余或松弛為0),則這種資源對于同類生產(chǎn)來說是稀缺資源,所以在各個工廠之間轉(zhuǎn)讓就會增加租金,所以就造成追加租金(對偶問題的決策變量)大于0。兩個問題的目標函數(shù)的最優(yōu)值相等,即31i*ii21j*jjybxc2
41、7500z* 這樣才不會出現(xiàn)稀缺資源長期被囤積,更不會造成稀缺資源過度用于生產(chǎn)(因為有人囤積待價)。生產(chǎn)模型I.0 x,x,250 xx0,400 xx2,300 xx. t . sx10050 xmax 2121212121轉(zhuǎn)讓模型II,50y0y2y321,100yyy3210y,y,y321321y250y400300ymin .50y, 0y,50y*3*2*1.250 x,50 x*2*130035025050100 對于生產(chǎn)模型I來說,其對偶問題的最優(yōu)解y1*,y2*,y3*分別稱為生產(chǎn)資源b1=300,b2=400,b3=250的影子價格(也稱對偶價格dual price),即轉(zhuǎn)
42、讓租金;即當生產(chǎn)者想轉(zhuǎn)換經(jīng)營模式時,考慮把三種資源轉(zhuǎn)讓出去時,應(yīng)在成本基礎(chǔ)上追加的租金。m,.,2 , 1i ,yb*zyb27500z*ii31i*ii由于yi*也表示在最優(yōu)生產(chǎn)條件下,資源bi每增加一單位,最大利潤的增加值,即是一種邊際利潤。生產(chǎn)模型I.0 x,x,250 xx0,400 xx2,300 xx. t . sx10050 xmax 2121212121轉(zhuǎn)讓模型II,50y0y2y321,100yyy3210y,y,y321321y250y400300ymin .50y, 0y,50y*3*2*1.250 x,50 x*2*130035025050100 對轉(zhuǎn)讓模型II來說,其
43、對偶問題的最優(yōu)解x1*,x2*也稱為轉(zhuǎn)讓模型的兩種資源c1,c2的影子價格(對偶價格,dual price),其意義如下:當一個經(jīng)營資源轉(zhuǎn)讓的經(jīng)營者如果想轉(zhuǎn)變經(jīng)營模式,改為自己組織生產(chǎn)來賺取利潤,則他用著三種資源生產(chǎn)產(chǎn)品時,兩種產(chǎn)品的每件產(chǎn)品必須提供的利潤是x1*和x2*,這樣才能保證新的經(jīng)營模式不比原來的模式少賺取利潤。3、Reduced cost的意義 觀察計算結(jié)果,發(fā)現(xiàn)只有當 Variable的值Value=0時,對應(yīng)的項的Reduced cost就大于0.如上所示y(2)=0時,Reduced_cost(2)=500。若目函數(shù)最小化(min),則當y(2)的價值系數(shù)b(2)減少50后,
44、對應(yīng)的變量y(2)才會大于0;如果目標函數(shù) 最大化(max),則當y(2)的價值系數(shù)b(2)增加50后,y(2)才會大于0.(如果你學(xué)過線性規(guī)劃的單純形算法,Reduaced Cos就相當于每個變量的檢驗數(shù)) Global optimal solution found at iteration: 6 Objective value: 27500.00 Variable Value Reduced Cost Y( 1) 50.00000 0.000000 Y( 2) 0.000000 50.00000 Y( 3) 50.00000 0.000000(可以利用Excel中的文檔驗證!Siliao.
45、xls;duiou.xls等)十一、靈敏度分析例9 美佳公司計劃制造I、II兩種家電產(chǎn)品,已知各制造一件時分別占用的設(shè)備A、設(shè)備B、調(diào)試工序的時間以及明天可以生產(chǎn)這兩種家電的能力、各售出一件獲得的利潤情況如下表所示,問該公司應(yīng)制造兩種家電各多少件建模以及計算結(jié)果見d:meijia.xls文件III每天可用能力設(shè)備A(h)0515設(shè)備B(h)6224調(diào)試工序(h)115利潤(元)21最大利潤(元)最優(yōu)產(chǎn)量(件)例10 在例9的美佳公司的案例中,(1)若其它因素不變化,家電I的利潤在什么范圍內(nèi)變化時,美佳公司的生產(chǎn)計劃不發(fā)生變化(所謂生產(chǎn)計劃不改變,是指產(chǎn)品結(jié)構(gòu)和對應(yīng)的產(chǎn)量都不改
46、變)?(2)其它因素不改變的情況下,只是調(diào)試工序的能力變化,問調(diào)試工序的能力在什么范圍變化是,產(chǎn)品結(jié)構(gòu)不變?分析 這種問題的分析方法體現(xiàn)在Lingo軟件的應(yīng)用是: (1)先計算例9,其結(jié)果保留;(2)再調(diào)整lingo 屬性,如下圖: 即打開Lingo|options|General Solver,同時在Dual Computatios|Prices&Range(做價值系數(shù)和右端系數(shù)的范圍分析)操作結(jié)果如下: Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable All
47、owable Variable Coefficient Increase Decrease X( 1) 2.000000 1.000000 1.000000 X( 2) 1.000000 1.000000 0.3333333 Righthand Side Ranges Row Current Allowable Allowable RHS Increase Decrease 2 15.00000 INFINITY 7.500000 3 24.00000 6.000000 6.000000 4 5.000000 1.000000 1.000000(1)根據(jù)計算,其它因素不變,只是家電I的價值系數(shù)
48、c1=2的基礎(chǔ)上,增加1和減少1,則最優(yōu)生產(chǎn)計劃不改變,即c1在1,3單獨變化時,生產(chǎn)計劃不改變。 Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Allowable Variable Coefficient Increase Decrease X( 1) 2.000000 1.000000 1.000000 X( 2) 1.000000 1.000000 0.3333333 Righthand Side Ranges Row Current Allowable All
49、owable RHS Increase Decrease 2 15.00000 INFINITY 7.500000 3 24.00000 6.000000 6.000000 4 5.000000 1.000000 1.000000(2)根據(jù)計算,其它因素不改變,當調(diào)試工序的時間單獨在4,6變化時,產(chǎn)品結(jié)構(gòu)不改變。例11 (83頁,數(shù)學(xué)模型,姜啟源) 一奶制品加工廠用牛奶生產(chǎn)A1,A2兩種奶制品,1桶牛奶可以在甲類設(shè)備上用12小時加工生成3kgA1,或者在乙類設(shè)備上用8小時加工成4公斤A2,根據(jù)市場需求,生產(chǎn)的A1,A2全部能售出,且每公斤A1獲利24元,每公斤A2獲利16元?,F(xiàn)在加工廠每天能夠
50、得到50桶牛奶的供應(yīng),每天正式工人總的勞動時間為480小時,并且甲類設(shè)備每天之多能夠加工100kgA1,乙類設(shè)備的加工能力沒有限制。試為該廠制定一個生產(chǎn)計劃,使每天獲利最大,并進一步討論一下三個附屬問題:(1)若35元可以買到1桶牛奶,是否做這項投資,若投資,每天最多購買多少桶牛奶?(2)若可以聘用臨時工以增加勞動時間,付給臨時工工資最多每小時幾元?(3)由于市場需求變化,每公斤A1獲利增加到30元,是否應(yīng)該改變生產(chǎn)計劃?一桶牛奶甲類設(shè)備12小時3kg A124元/kg限制100kg乙類設(shè)備無限制8小時4kg A216元/kg480小時限制共50桶變量設(shè)置設(shè)每天50桶牛奶中,x1桶生產(chǎn)A1,x
51、2桶生產(chǎn)A2,總利潤為z;x1x2建立模型目標函數(shù),x64x72)x4(16)(3x24z2121約束條件原料奶牛限制,50 xx21一桶牛奶甲類設(shè)備12小時3kg A124元/kg限制100kg乙類設(shè)備無限制8小時4kg A216元/kg480小時限制共50桶x1x2勞動時間限制,480 x812x21產(chǎn)品限量,1003x1非負約束.0 x,x21一桶牛奶甲類設(shè)備12小時3kg A124元/kg限制100kg乙類設(shè)備無限制8小時4kg A216元/kg480小時限制共50桶x1x2數(shù)學(xué)模型0 x,x,100 x3,480 x8x12,50 xx. t . sx6472xzmax2112121
52、21求解max=72*x1+64*x2;x1+x250;12*x1+8*x2480;3*x1100; Global optimal solution found at iteration: 4 Objective value: 3360.000 Variable Value Reduced Cost X1 20.00000 0.000000 X2 30.00000 0.000000 Row Slack or Surplus Dual Price 1 3360.000 1.000000 2 0.000000 48.00000 3 0.000000 2.000000 4 40.00000 0.00
53、0000 即安排20桶牛奶生產(chǎn)產(chǎn)品A1,其余30桶生產(chǎn)A2,這天獲利3360元。回答問題(1),(2),(3)的額外計算(1)若35元可以買到1桶牛奶,是否做這項投資,若投資,每天最多購買多少桶牛奶?(2)若可以聘用臨時工以增加勞動時間,付給臨時工工資最多每小時幾元?(3)由于市場需求變化,每公斤A1獲利增加到30元,是否應(yīng)該改變生產(chǎn)計劃?問題(1),需要知道第一個約束代表的資源(原料奶牛桶數(shù))約束的對偶價格,對比才能回答;問題(2)需要知道第二個約束(時間資源)的對偶價格,才能回答;問題(3)是依據(jù)最優(yōu)解不改變時,產(chǎn)品A1的價格單獨變化的范圍來回答。關(guān)于價值系數(shù)price和資源范圍range
54、范圍的分析計算: Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Allowable Variable Coefficient Increase Decrease X1 72.00000 24.00000 8.000000 X2 64.00000 8.000000 16.00000 Righthand Side Ranges Row Current Allowable Allowable RHS Increase Decrease 2 50.00000 10.00000
55、 6.666667 3 480.0000 53.33333 80.00000 4 100.0000 INFINITY 40.00000回答問題(1) 根據(jù)前面的計算,牛奶資源的對偶價格為48元/桶,即牛奶在當前50桶的基礎(chǔ)上,再增加一桶,帶來的利潤為48元;如果市面上有35元/桶的奶牛,當然應(yīng)該投資。回答問題(2) 根據(jù)前面的計算,勞動時間的影子價格為2元/小時,即勞動時間在當前480小時的基礎(chǔ)上,再增加1小時,帶來的利潤為2元。因此,如果雇傭臨時工,付給的工資最多2元/小時?;卮饐栴}(3) 根據(jù)靈敏度分析的計算,x1的價值系數(shù)在72基礎(chǔ)上,若要保持最優(yōu)解不變,最多增加24,最多減少8。即當x
56、1的價值系數(shù)在64,96上變化時,生產(chǎn)計劃不變。當每公斤A1的價格增加到30元/kg時,那么每桶牛奶x1獲得的價值為90元/桶,沒有超過上述變化范圍,故生場計劃部變化。例12 (88頁,數(shù)學(xué)模型,姜啟源)一桶牛奶甲類設(shè)備12小時3kg A124元/kg限制100kg乙類設(shè)備無限制8小時4kg A216元/kg480小時限制共50桶x1x22小時3元2.4kg B12小時3元3kg B244元/kg32元/kg制定一個生產(chǎn)計劃,并回答如下問題:(1)若投資30元可以增加1桶奶牛,投資3元可以增加1小時勞動時間,應(yīng)否作這些投資?若每天投資150元,可賺回多少?(2)每公斤高級奶制品B1,B2的獲利
57、經(jīng)常有10%的波動,對制訂的生產(chǎn)計劃有無影響?若每公斤B1的利潤下降10%,計劃應(yīng)該改變嗎?一桶牛奶甲類設(shè)備12小時3kg A124元/kg限制100kg乙類設(shè)備無限制8小時4kg A216元/kg480小時限制共50桶x1x22小時3元2.4kg B12小時3元3kg B244元/kg32元/kg變量設(shè)置y11 為產(chǎn)品A1(直接銷售)的產(chǎn)量(kg);y12 為產(chǎn)品B1的產(chǎn)量(kg);y21 為產(chǎn)品A2(直接銷售)的產(chǎn)量(kg);y22 為產(chǎn)品B2的產(chǎn)量(kg);y12y11y21y22建立模型一桶牛奶甲類設(shè)備12小時3kg A124元/kg限制100kg乙類設(shè)備無限制8小時4kg A216元
58、/kg480小時限制共50桶x1x22小時3元2.4kg B12小時3元3kg B244元/kg32元/kgy12y11y21y22目標函數(shù)221222211211y343y8103y32y16y4424yz max原料約束:,50 xx21,y34yx4,y810y3x2221212111,1003x1一桶牛奶甲類設(shè)備12小時3kg A124元/kg限制100kg乙類設(shè)備無限制8小時4kg A216元/kg480小時限制共50桶x1x22小時3元2.4kg B12小時3元3kg B244元/kg32元/kgy12y11y21y22生產(chǎn)時間約束:,480y342y8102x812x221221
59、非負約束:0y,y,y,y,x,x2221121121max=24*y11+44*y12+16*y21+32*y22-3*10/8*y12-3*4/3*y22;x1+x250;3*x1100;3*x1-y11-10/8*y12=0;4*x2-y21-4/3*y22=0;12*x1+8*x2+2*10/8*y12+2*4/3*y22480;計算結(jié)果為 Global optimal solution found at iteration: 8 Objective value: 3460.800 Variable Value Reduced Cost Y11 0.000000 1.680000 Y1
60、2 19.20000 0.000000 Y21 168.0000 0.000000 Y22 0.000000 2.026667 X1 8.000000 0.000000 X2 42.00000 0.000000 Row Slack or Surplus Dual Price 2 0.000000 37.92000 3 76.00000 0.000000 4 0.000000 -25.68000 5 0.000000 -16.00000 6 0.000000 3.260000靈敏度和范圍分析結(jié)果 Objective Coefficient Ranges Current Allowable Allowab
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蠟燭防火知識培訓(xùn)課件
- 如何提高應(yīng)急預(yù)案的演練效果.9
- 2023年高考真題北京卷化學(xué)試卷-詳解
- 2024年青海省西寧市中考一模語文試題
- 商場超市收銀員工作手冊
- 化妝品包裝抗壓測試
- 語言學(xué)跨文化交際能力及應(yīng)用知識解析與練習(xí)
- 高標準三農(nóng)田建設(shè)操作與作業(yè)指導(dǎo)書
- 2025年張家口貨運資格證考試題
- 人力資源派遣與招聘委托合同
- 2022年蘇州工業(yè)職業(yè)技術(shù)學(xué)院單招數(shù)學(xué)模擬試題(附答案解析)
- 2024年證券投資基金基礎(chǔ)知識真題答案及解析
- 泰州職業(yè)技術(shù)學(xué)院單招《英語》考試參考題庫(含答案)
- 《食品衛(wèi)生與安全》課程標準
- 第7課《誰是最可愛的人》公開課一等獎創(chuàng)新教學(xué)設(shè)計-2
- 骨盆骨折小講課護理課件
- 2016-2023年江蘇衛(wèi)生健康職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年考點試題甄選合集含答案解析
- 渣土車司機安全培訓(xùn)
- 燃氣公司消防培訓(xùn)課件
- 成事的時間管理
- 江西省2023年高等職業(yè)院校單獨招生考試-江西電力職業(yè)技術(shù)學(xué)院-樣卷
評論
0/150
提交評論