版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
整數(shù)規(guī)劃與分配問題整數(shù)規(guī)劃的特點及作用分支定界法割平面法應(yīng)用舉例分配問題與匈牙利法
例1、合理下料問題設(shè)用某型號的圓鋼下零件A1,
A2,…,Am
的毛坯。在一根圓鋼上下料的方式有B1,B2,…Bn
種,每種下料方式可以得到各種零件的毛坯數(shù)以及每種零件的需要量,如表所示。問怎樣安排下料方式,使得即滿足需要,所用的原材料又最少?一、整數(shù)規(guī)劃的模型第一節(jié)整數(shù)規(guī)劃的特點及作用零件毛坯數(shù)零件方個數(shù)式零件設(shè):xj
表示用Bj
(j=1.2…n)
種方式下料根數(shù)模型:x1xn…例2、某公司計劃在m個地點建廠,可供選擇的地點有A1,A2…Am
,他們的生產(chǎn)能力分別是a1,a2,…am(假設(shè)生產(chǎn)同一產(chǎn)品)。第i個工廠的建設(shè)費用為fi
(i=1.2…m),又有n個地點B1,B2,…Bn
需要銷售這種產(chǎn)品,其銷量分別為b1.b2…bn
。從工廠運往銷地的單位運費為Cij。試決定應(yīng)在哪些地方建廠,即滿足各地需要,又使總建設(shè)費用和總運輸費用最?。繂武N地廠址價生產(chǎn)能力建設(shè)費用銷量設(shè):xij
表示從工廠運往銷地的運量(i=1.2…m、j=1.2…n),1在Ai建廠又設(shè)Yi=(i=1.2…m)
0不在Ai建廠設(shè):
xij
表示從工廠運往銷地的運量(i=1.2…m、j=1.2…n),1在Ai建廠
又設(shè)Yi=(i=1.2…m)
0不在Ai建廠模型:
例3、機床分配問題設(shè)有m臺同類機床,要加工n種零件。已知各種零件的加工時間分別為a1,a2,…an
,問如何分配,使各機床的總加工任務(wù)相等,或者說盡可能平衡。設(shè):1分配第i臺機床加工第j種零件;
xij=(i=1.2…m,j=1.2…n)
0相反。又由于一個零件只能在一臺機床上加工,所以有:于是,第i臺機床加工各種零件的總時間為:因此,求xij
,使得問如何分配,使各機床的總加工時間相等,或者說盡可能平衡。?在上一章討論的LP問題中,對決策變量只限于不能取負值的連續(xù)型數(shù)值,即可以是正分數(shù)或正小數(shù)。然而在許多實際問題中,決策變量只有非負整數(shù)才有實際意義。對求整數(shù)最優(yōu)解的問題,稱為整數(shù)規(guī)劃(IntegerProgramming)(簡記為IP)。又稱約束條件和函數(shù)均為線性的IP為整數(shù)線性規(guī)劃(IntegerLinearProgramming)(簡記為ILP)。純整數(shù)規(guī)劃:所有決策變量要求取非負整數(shù)(這時引進的松弛變量和剩余變量可以不要求取整數(shù))。全整數(shù)規(guī)劃:除了所有決策變量要求取非負整數(shù)外,系數(shù)aij和常數(shù)bi也要求取整數(shù)(這時引進的松弛變量和剩余變量也必須是整數(shù))?;旌险麛?shù)規(guī)劃:只有一部分的決策變量要求取非負整數(shù),另一部分可以取非負實數(shù)。
0-1整數(shù)規(guī)劃:所有決策變量只能取0或1兩個整數(shù)。整數(shù)規(guī)劃與線性規(guī)劃的關(guān)系
從數(shù)學(xué)模型上看整數(shù)規(guī)劃似乎是線性規(guī)劃的一種特殊形式,求解只需在線性規(guī)劃的基礎(chǔ)上,通過舍入取整,尋求滿足整數(shù)要求的解即可。但實際上兩者卻有很大的不同,通過舍入得到的解(整數(shù))也不一定就是最優(yōu)解,有時甚至不能保證所得到的解是整數(shù)可行解。例4、設(shè)整數(shù)規(guī)劃問題如下首先不考慮整數(shù)約束,得到線性規(guī)劃問題(一般稱為松弛問題)。用圖解法求出最優(yōu)解x1=3/2,x2=10/3且有Z=29/6x1x2⑴⑵33(3/2,10/3)現(xiàn)求整數(shù)解(最優(yōu)解):如用“舍入取整法”可得到4個點:(1,3)(2,3)(1,4)(2,4)。顯然,它們都不可能是整數(shù)規(guī)劃的最優(yōu)解。按整數(shù)規(guī)劃約束條件,其可行解肯定在線性規(guī)劃問題的可行域內(nèi)且為整數(shù)點。故整數(shù)規(guī)劃問題的可行解集是一個有限集,如圖所示。因此,可將集合內(nèi)的整數(shù)點一一找出,其最大目標函數(shù)的值為最優(yōu)解,此法為完全枚舉法。如上例:其中(2,2)(3,1)點為最大值,Z=4。目前,常用的求解整數(shù)規(guī)劃的方法有:
分支定界法和割平面法;對于特別的0-1規(guī)劃問題采用隱枚舉法和匈牙利法。人們對IP感興趣,還因為有些經(jīng)濟管理中的實際問題的解必須滿足如邏輯條件和順序要求等一些特殊的約束條件。此時需引進邏輯變量(又稱0-1變量),以“0”表示“非”,以“1”表示“是”。凡決策變量均是0-1變量的IP為0-1規(guī)劃。邏輯變量的應(yīng)用(3)兩組條件滿足其中一組又M為任意大正數(shù),則問題表達為:若,則;否則(即時)定義(4)在實際中經(jīng)常會遇到這樣的問題,有n項不同的任務(wù),需要n個人分別完成其中的一項,但由于任務(wù)的性質(zhì)和各人的專長不同,因此各人去完成不同的任務(wù)的效率(或花費的時間或費用)也就不同。于是產(chǎn)生了一個問題,應(yīng)指派哪個人去完成哪項任務(wù),使完成n項任務(wù)的總效率最高(或所需時間最少),這類問題稱為指派問題或分配問題。第二節(jié)分配問題與匈牙利法(一)、指派問題的數(shù)學(xué)模型設(shè)n個人被分配去做n件工作,規(guī)定每個人只做一件工作,每件工作只有一個人去做。已知第i個人去做第j件工作的的效率(時間或費用)為aij(i=1.2…n;j=1.2…n)并假設(shè)aij≥0。問應(yīng)如何分配才能使總效率(時間或費用)最高?設(shè)決策變量1分配第i個人去做第j件工作
xij
=0相反(i,j=1.2.…n)其數(shù)學(xué)模型為:(二)、解題步驟:指派問題是0-1規(guī)劃的特例,也是運輸問題的特例,當然可用整數(shù)規(guī)劃,0-1規(guī)劃或運輸問題的解法去求解,這就如同用單純型法求解運輸問題一樣是不合算的。利用指派問題的特點可有更簡便的解法,這就是匈牙利法.匈牙利法是從這樣一個明顯的事實出發(fā):如果效率矩陣的所有元素,而其中存在一組位于不同行不同列的零元素,則只要令這些零元素位置的,其余的,則就是問題的最優(yōu)解.最優(yōu)解為如效率矩陣為匈牙利法的基本思想是:對同一項工作(任務(wù))j來說,同時提高或降低每人相同的效率(常數(shù)ti),不影響其最優(yōu)指派;同樣,對同一個人i來說,完成各項工作的效率都提高或降低相同的效率(常數(shù)di),也不影響其最優(yōu)指派;因此可得到新的效率矩陣(bij)nxn,其中bij=aij+ti+dj
(對所有的i,j)則新的目標函數(shù)為其中為常數(shù)這說明Z與Z同時達到最小值。因而最優(yōu)解相同。故指派問題有以下性質(zhì):若從效率矩陣(aij)nxn的一行(列)各元素中分別減去該行(列)的最小元素,得到的新效率矩陣(bij)nxn不改變原指派問題的最優(yōu)解。匈牙利法:第一步:變換指派問題的系數(shù)矩陣(aij)為(bij),使在(bij)的各行各列中都出現(xiàn)0元素,即(1)從(aij)的每行元素都減去該行的最小元素;(2)再從所得新系數(shù)矩陣的每列元素中減去該列的最小元素。
第二步:進行試指派,以尋求最優(yōu)解。在(bij)中找盡可能多的獨立0元素,若能找出n個獨立0元素,就以這n個獨立0元素對應(yīng)解矩陣(xij)中的元素為1,其余為0,這就得到最優(yōu)解。找獨立0元素,常用的步驟為:
(1)從只有一個0元素的行(列)開始,給這個0元素加圈,記作◎
。然后劃去◎
所在列(行)的其它0元素,記作?
;這表示這列所代表的任務(wù)已指派完,不必再考慮別人了。
(2)給只有一個0元素的列(行)中的0元素加圈,記作◎;然后劃去◎
所在行的0元素,記作?
.
(3)反復(fù)進行(1),(2)兩步,直到盡可能多的0元素都被圈出和劃掉為止。
(4)若仍有沒有劃圈的0元素,且同行(列)的0元素至少有兩個,則從剩有0元素最少的行(列)開始,比較這行各0元素所在列中0元素的數(shù)目,選擇0元素少的那列的這個0元素加圈(表示選擇性多的要“禮讓”選擇性少的)。然后劃掉同行同列的其它0元素??煞磸?fù)進行,直到所有0元素都已圈出和劃掉為止。(5)若◎
元素的數(shù)目m等于矩陣的階數(shù)n,那么這指派問題的最優(yōu)解已得到。若m<n,則轉(zhuǎn)入下一步。第三步:作最少的直線覆蓋所有0元素。
(1)對沒有◎的行打√號;
(2)對已打√號的行中所有含?元素的列打√號;
(3)再對打有√號的列中含◎
元素的行打√號;
(4)重復(fù)(2),(3)直到得不出新的打√號的行、列為止;
(5)對沒有打√號的行畫橫線,有打√號的列畫縱線,這就得到覆蓋所有0元素的最少直線數(shù)l。l應(yīng)等于m,若不相等,說明試指派過程有誤,回到第二步(4),另行試指派;若l=m<n,須再變換當前的系數(shù)矩陣,以找到n個獨立的0元素,為此轉(zhuǎn)第四步。第四步:變換矩陣(bij)以增加0元素。在沒有被直線覆蓋的所有元素中找出最小元素,然后打√各行都減去這最小元素;打√各列都加上這最小元素(以保證系數(shù)矩陣中不出現(xiàn)負元素)。新系數(shù)矩陣的最優(yōu)解和原問題仍相同。轉(zhuǎn)回第二步。例1有一份中文說明書,需譯成英、日、德、俄四種文字,分別記作A、B、C、D?,F(xiàn)有甲、乙、丙、丁四人,他們將中文說明書譯成不同語種的說明書所需時間如下表所示,問如何分派任務(wù),可使總時間最少?
任務(wù)人員ABCD甲67112乙4598丙31104丁5982求解過程如下:第一步,變換系數(shù)矩陣:-5第二步,試指派:◎◎◎??找到3個獨立零元素但m=3<n=4。第三步,作最少的直線覆蓋所有0元素:◎◎◎??√√√獨立零元素的個數(shù)m等于最少直線數(shù)l,即l=m=3<n=4;第四步,變換矩陣(bij)以增加0元素:沒有被直線覆蓋的所有元素中的最小元素為1,然后打√各行都減去1;打√各列都加上1,得如下矩陣,并轉(zhuǎn)第二步進行試指派:000
0
00得到4個獨立零元素,所以最優(yōu)解矩陣為:◎◎◎??√√√◎◎◎??15◎◎◎??◎Lingo求解例2有一份中文說明書,需譯成英、日、德、俄四種文字,分別記作A、B、C、D?,F(xiàn)有甲、乙、丙、丁四人,他們將中文說明書譯成不同語種的說明書所需時間如下表所示,問如何分派任務(wù),可使總時間最少?
任務(wù)人員ABCD甲21097乙154148丙13141611丁4151392109715414813141611415139行減0875110104235001195082511054230001145列減試指派082511054230001145◎?◎◎?082511054230001145◎?◎◎?√√√調(diào)整0603110542300092306031105423000923指派◎◎?◎?◎0010010000011000Lingo求解例4:求下面問題的最優(yōu)指派115764戊69637丁96458丙9117129乙118957甲EDCBA費工作用人員11576469637964589117129118957造“零”520436725042441025340363402317123150240315試指派5032015304310140305242402◎?◎◎◎??打勾√√√5032015304310140305242402◎?◎◎◎??劃線√√√5032015304310140305242402◎?◎◎◎??調(diào)整最小值為11-13133-12400630200000試指派5033004203310240306231301◎?◎?◎?◎?√√√√√◎?列行交替尋找打勾時√√劃線5033004203310240306231301◎?◎?◎?◎?√√√√√√√5033004203310240306231301◎?◎?◎?◎?√√√√√√√調(diào)整1031326030420133024003305◎?√√√√√◎◎◎???0-120215-12-12-113-106043006√√?31-1023024023◎??◎◎?◎?◎此問題有多個最優(yōu)解試指派?Lingo求解用匈牙利法求解下列指派問題,已知效率矩陣分別如下:Lingo求解Lingo求解一般指派問題最大化指派問題人數(shù)和工作數(shù)不等的指派問題一個人可做幾項工作的指派問題某項工作一定不能由某人做的指派問題最大化指派問題最大值最小化指派問題Lingo求解人數(shù)和工作數(shù)不等的指派問題列減√◎?◎◎????◎√√試指派劃線√√√調(diào)整試指派◎◎◎◎◎?????Lingo求解一個人可做幾項工作的指派問題A1可同時做三項工作3195231952783298247631952行減2084120841561076025420841列減0074000740360064015300740????????√√√√√√√◎◎◎◎◎?列行交替尋找0074000740360064015300740√√√√√√√0074000740360064015300740調(diào)整0063000630470074004300630-136-1-1240-1350063-136-1-1-136-1-1037000070004400?◎◎◎◎◎???????最優(yōu)指派為A1作B1,B4,B5,A2作B3,A3作B2。Lingo求解某項工作一定不能由某人做的指派問題A1不能做B4;A3不能做B3Lingo求解(一)、基本思路考慮整數(shù)問題:整數(shù)問題的松弛問題:第三節(jié)分枝定界法
1、先不考慮整數(shù)約束,解(
IP)的松弛問題(LP),可能得到以下情況之一:⑴若(LP)沒有可行解,則(IP)也沒有可行解,停止計算。⑵若(LP)有最優(yōu)解,并符合(IP)的整數(shù)條件,則(LP)的最優(yōu)解即為(IP)的最優(yōu)解,停止計算。⑶若(LP)有最優(yōu)解,但不符合(IP)的整數(shù)條件,轉(zhuǎn)入下一步。為討論方便,設(shè)(LP)的最優(yōu)解為:
2、定界:記(
IP)的目標函數(shù)最優(yōu)值為Z*,以Z(0)
作為Z*
的上界,記為=Z(0)
。再用觀察法找的一個整數(shù)可行解X′,并以其相應(yīng)的目標函數(shù)值Z′作為Z*
的下界,記為Z=Z′,也可以令Z=-∞,則有:
Z≤Z*≤
3、分枝:在(LP)的最優(yōu)解X(0)中,任選一個不符合整數(shù)條件的變量,例如xr=
(不為整數(shù)),以表示不超過的最大整數(shù)。構(gòu)造兩個約束條件
xr≤和xr≥+1如此反復(fù)進行,直到得到Z=Z*=為止,即得最優(yōu)解X*
。將這兩個約束條件分別加入問題(
IP),形成兩個子問題(
IP1)和(
IP2),再解這兩個問題的松弛問題(LP1)和(LP2)。
4、修改上、下界:按照以下兩點規(guī)則進行。⑴在各分枝問題中,找出目標函數(shù)值最大者作為新的上界;⑵.從已符合整數(shù)條件的分枝中,找出目標函數(shù)值最大者作為新的下界。
5、比較與剪枝:各分枝的目標函數(shù)值中,若有小于Z者,則剪掉此枝,表明此子問題已經(jīng)探清,不必再分枝了;否則繼續(xù)分枝。3200CB
XB
b
x1x2x3x40x3921109/20x414230114/2-Z032003200CB
XB
b
x1x2x3x43x113/4103/4-1/42x25/201-1/21/2-Z-59/400-5/4-1/4解:用單純形法解對應(yīng)的(LP)問題,獲得最優(yōu)解。初始表最終表例1
、用分枝定界法求解整數(shù)規(guī)劃問題(單純形法)x1=13/4
x2=5/2Z(0)=59/4≈14.75,選x2進行分枝,即增加兩個約束,2≥x2
,x2≥3有下式:分別在(LP1)和(LP2)中引入松弛變量x5和x6
,將新加約束條件加入上表計算。即x2+x5=2,-x2+x6=-3
得下表:3200CB
XB
b
x1x2x3x43x113/4103/4-1/42x25/201-1/21/2-Z-59/400-5/4-1/432000CB
XB
b
x1x2x3x4x53x113/4103/4-1/402x25/201-1/21/200x5201001-Z-59/400-5/4-1/4032000CB
XB
b
x1x2x3x4x53x113/4103/4-1/402x25/201-1/21/200x5201001-Z-59/400-5/4-1/403x113/4103/4-1/402x25/201-1/21/200x5-1/2001/2-1/21-Z-59/400-5/4-1/403x17/2101/20-1/22x22010010x4100-11-2-Z-29/200-3/20-1/2x1=7/2,x2=2Z(1)=29/2=14.5,LP13200CB
XB
b
x1x2x3x43x113/4103/4-1/42x25/201-1/21/2-Z-59/400-5/4-1/432000CB
XB
b
x1x2x3x4x63x113/4103/4-1/402x25/201-1/21/200x6-30-1001-Z-59/400-5/4-1/4032000CB
XB
b
x1x2x3x4x63x113/4103/4-1/402x25/201-1/21/200x6-30-1001-Z-59/400-5/4-1/40LP2x1=5/2,x2=3Z(2)=27/2=13.5,∵Z(2)<Z(1)∴先不考慮分枝。3x113/4103/4-1/402x25/201-1/21/200x6-1/200-1/21/21-Z-59/400-5/4-1/403x15/21001/23/22x230100-10x31001-1-2-Z-27/2000-3/2-5/2接(LP1)繼續(xù)分枝,加入約束4≤x1,
x1≤3,有下式:分別引入松弛變量x7和x8,然后進行計算。32000CB
XB
b
x1x2x3x4x53x17/2101/20-1/22x22010010x4100-11-2-Z-29/200-3/20-1/2CB
XB
b
x1x2x3x4x5x73x17/2101/20-1/202x220100100x4100-11-200x73100001-Z-29/200-3/20-1/20CB
XB
b
x1x2x3x4x5x73x17/2101/20-1/202x220100100x4100-11-200x73100001-Z-29/200-3/20-1/20
x1=3,x2=2Z(3)=13找到整數(shù)解,問題已探明,停止計算。LP33x17/2101/20-1/202x220100100x4100-11-200x7-1/200-1/201/21-Z-29/200-3/20-1/203x131000012x220100100x420001-3-20x310010-1-2-Z-130000-2-3CB
XB
b
x1x2x3x4x5x83x17/2101/20-1/202x220100100x4100-11-200x8-4-100001-Z-29/200-3/20-1/20
x1=4,x2=1Z(4)=14找到整數(shù)解,問題已探明,停止計算。LP43x17/2101/20-1/202x220100100x4100-11-200x8-1/2001/20-1/21-Z-29/200-3/20-1/203x1410000-12x210110020x4300-310-40x5100-101-2-Z-1400-200-1Lingo求解樹形圖如下:LPx1=13/4,x2=5/2Z(0)
=59/4=14.75LP2x1=5/2,x2=3Z(2)=27/2=13.5LP3x1=3,x2=2Z(3)
=13LP4x1=4,x2=1Z(4)
=14x2≤2x2≥3x1≤3x1≥4###LP1x1=7/2,x2=2Z(1)=29/2=14.5例2.用分枝定界法求解整數(shù)規(guī)劃問題(用圖解法計算)記為(IP)解:首先去掉整數(shù)約束,變成一般線性規(guī)劃問題記為(LP)用圖解法求(LP)的最優(yōu)解,如圖所示。x1x2⑴⑵33(18/11,40/11)⑶對于x1=18/11≈1.64,取值x1≤1,x1≥2,先將(LP)劃分為(LP1)和(LP2),取x1≤1,x1≥2。
x1=18/11,x2=40/11Z(0)=-218/11≈(-19.8)即Z也是(IP)最小值的下限。有下式:現(xiàn)在只要求出(LP1)和(LP2)的最優(yōu)解即可。x1x2⑴⑵33⑶
先求(LP1),如圖所示。此時B
在點取得最優(yōu)解。x1=1,x2=3,Z(1)=-16找到整數(shù)解,問題已探明,此枝停止計算。11同理求(LP2)
,如圖所示。在C
點取得最優(yōu)解。即x1=2,x2=10/3,Z(2)=-56/3≈-18.7∵Z2<Z1=-16∴原問題有比(-16)更小的最優(yōu)解,但x2不是整數(shù),故利用4≥10/3≥3加入條件。BAC加入條件:x2≤3,x2≥4有下式:只要求出(LP3)和(LP4)的最優(yōu)解即可。x1x2⑴⑵33⑶11BAC先求(LP3),如圖所示。此時D在點取得最優(yōu)解。即x1=12/5≈2.4,x2=3,Z(3)=-87/5≈-17.4>Z≈-19.8但x1=12/5不是整數(shù),可繼續(xù)分枝。即3≤x1≤2。D求(LP4),如圖所示。無可行解,不再分枝。在(LP3)的基礎(chǔ)上繼續(xù)分枝。加入條件3≤x1,x1≤2。只要求出(LP5)和(LP6)的最優(yōu)解即可。x1x2⑴⑵33⑶11BACD先求(LP5),如圖所示。此時E
在點取得最優(yōu)解。即x1=2,x2=3,Z(5)=-17找到整數(shù)解,問題已探明,此枝停止計算。E求(LP6),如圖所示。此時
F在點取得最優(yōu)解。x1=3,x2=2.5,Z(6)=-31/2≈-15.5>Z(5)
F如對Z(6)
繼續(xù)分解,其最小值也不會低于-15.5,問題探明,剪枝。至此,原問題(IP)的最優(yōu)解為:
x1=2,
x2=3,
Z*=Z(5)
=-17以上的求解過程可以用一個樹形圖表示如右:LP1x1=1,x2=3Z(1)
=-16LPx1=18/11,x2=40/11Z(0)
=-19.8LP2x1=2,x2=10/3Z(2)
=-18.5LP3x1=12/5,x2=3Z(3)
=-17.4LP4無可行解LP5x1=2,x2=3Z(5)
=-17LP6x1=3,x2=5/2Z(6)
=-15.5x1≤1x1≥2x2≤3x2≥4x1≤2x1≥3####Lingo求解練習(xí):用分枝定界法求解整數(shù)規(guī)劃問題
(圖解法)
LP1x1=1,x2=7/3Z(1)
=10/3LPx1=3/2,x2=10/3Z(0)
=29/6LP2x1=2,x2=23/9Z(2)
=41/9x1≤1x1≥2LP3x1=33/14,x2=2Z(3)
=61/14LP4無可行解x2≤2x2≥3#LP7x1=2,x2=2Z(7)
=4LP8x1=3,x2=1Z(8)
=4x1≤2x1≥3##LP1x1=1,x2=7/3Z(1)
=10/3LPx1=3/2,x2=10/3Z(0)
=29/6LP2x1=2,x2=23/9Z(2)
=41/9x1≤1x1≥2LP5x1=1,x2=2Z(5)
=3LP6無可行解##x2≤2x2≥3LP3x1=33/14,x2=2Z(3)
=61/14LP4無可行解x2≤2x2≥3#LP7x1=2,x2=2Z(7)
=4LP8x1=3,x2=1Z(8)
=4x1≤2x1≥3##Lingo求解練習(xí):用分枝定界法求解整數(shù)規(guī)劃問題
(單純形法)LP1x1=1,x2=3Z(1)
=-16LPx1=18/11,x2=40/11Z(0)
=-19.8LP2x1=2,x2=10/3Z(2)
=-18.5LP3x1=12/5,x2=3Z(3)
=-17.4LP4無可行解LP5x1=2,x2=3Z(5)
=-17LP6x1=3,x2=5/2Z(6)
=-15.5x1≤1x1≥2x2≤3x2≥4x1≤2x1≥3####Lingo求解(一)、計算步驟:1、用單純形法求解(IP)對應(yīng)的松弛問題(LP):⑴.若(LP)沒有可行解,則(IP)也沒有可行解,停止計算。
⑵.若(LP)有最優(yōu)解,并符合(IP)的整數(shù)條件,則(LP)的最優(yōu)解即為(IP)的最優(yōu)解,停止計算。
⑶.若(LP)有最優(yōu)解,但不符合(IP)的整數(shù)條件,轉(zhuǎn)入下一步。第四節(jié)割平面法
2、從(LP)的最優(yōu)解中,任選一個不為整數(shù)的分量xr,,將最優(yōu)單純形表中該行的系數(shù)和分解為整數(shù)部分和小數(shù)部分之和,并以該行為源行,按下式作割平面方程:
3、將所得的割平面方程作為一個新的約束條件置于最優(yōu)單純形表中(同時增加一個單位列向量),用對偶單純形法求出新的最優(yōu)解,返回1。的小數(shù)部分的小數(shù)部分例1:用割平面法求解整數(shù)規(guī)劃問題解:增加松弛變量x3和x4
,得到(LP)的初始單純形表和最優(yōu)單純形表:Cj0100CBXBbx1x2x3x40x3632100x40-3201-Z00100Cj0100CBXBbx1x2x3x40x11101/6-1/61x23/2011/41/4-Z-3/200-1/4-1/4此題的最優(yōu)解為:X*=(1,3/2),Z=3/2,但不是整數(shù)最優(yōu)解,引入割平面。也即:以x2為源行生成割平面,將所需要的數(shù)分解為整數(shù)和分數(shù),由于1/4=0+1/4,3/2=1+1/2,所以有:整數(shù)所以:帶入,得到等價的割平面條件:x2≤
1見右圖。由x3=6-3x1-2x2
,x4=3x1-2x2得x1x2⑴⑵33第一個割平面Cj01000CBXBbx1x2x3x4s10x11101/6-1/601x23/2011/41/400s1-1/200-1/4-1/41-Z-3/200-1/4-1/40將生成的割平面條件加入松弛變量,然后加到表中:CBXBbx1x2x3x4s10x12/3100-1/32/31x21010010x320011-4-Z-10000-1此時,X1
=(2/3,1),Z=1,仍不是整數(shù)解。繼續(xù)以x1為源行生成割平面,其條件為:用上表的約束解出x4和s1,將它們帶入上式得到等價的割平面條件:x1≥x2,見圖:x1x2⑴⑵33第一個割平面第二個割平面將生成的割平面條件加入松弛變量,然后加到表中:CBXBbx1x2x3x4s1s20x12/3100-1/32/301x210100100x320011-400s2-2/3000-2/3-2/31-Z-10000-10CBXBbx1x2x3x4s1s20x10100-1011x20010-103/20x3600150-60s1100011-3/2-Z000010-3/2CBXBbx1x2x3x4s1s20x1110001-1/21x210100100x310010-53/20x4100011-3/2-Z-10000-10至此得到最優(yōu)表,其最優(yōu)解為X*=(1,1),Z=1,這也是原問題的最優(yōu)解。由以上解題過程可見,表中含有分數(shù)元素且算法過程中始終保持對偶可行性,因此,這個算法也稱為分數(shù)對偶割平面算法。例2:用割平面法求解數(shù)規(guī)劃問題Cj1100CBXBbx1x2x3x40x3621100x4204501-Z1100初始表最優(yōu)表CBXBbx1x2x3x41
x15/3105/6-1/61x28/301-2/31/3-Z-13/300-1/6-1/6在松弛問題最優(yōu)解中,x1,x2均為非整數(shù)解,由上表有:將系數(shù)和常數(shù)都分解成整數(shù)和非負真分數(shù)之和以上式子只須考慮一個即可,解題經(jīng)驗表明,考慮式子右端最大真分數(shù)的式子,往往會較快地找到所需割平面約束條件。以上兩個式子右端真分數(shù)相等,可任選一個考慮?,F(xiàn)選第二個式子,并將真分數(shù)移到右邊得:引入松弛變量s1后得到下式,將此約束條件加到上表中,繼續(xù)求解。Cj11000CBXBbx1x2x3x4s11
x15/3105/6-1/601x28/301-2/31/300s1-2/300-1/3-1/31-Z-13/300-1/6-1/60得到整數(shù)最優(yōu)解,即為整數(shù)規(guī)劃的最優(yōu)解,而且此整數(shù)規(guī)劃有兩個最優(yōu)解:X*=(0,4),Z=4,Cj11000CBXBbx1x2x3x4s11
x10100-101x240101-20x320011-3-Z-40000-1/2練習(xí):?????íì3£-£+£+-+=且為整數(shù)0,421625421411max2121212121xxxxxxxxxxZCBXBbx1x2x3x4x50x34001-1/34/34x24/30102/9-5/911x18/31001/92/9-Z000-19/9-2/9(2,3)CBXBbx1x2x3x4x5s10x30001-1064x230101/20-5/211x121000010x530001/21-9/2-Z000-20-1計算軟件整數(shù)變量定義LinGo
一般整數(shù)變量:@GIN(variable_name);0-1整數(shù)變量:@BIN(variable_name);算例
max3x1+5x2+4x3subjectto2x1+3x2<=15002x2+4x3<=8003x1+2x2+5x3<=2000endginx1ginx3
model:max=3*x1+5*x2+4*x3;2*x1+3*x2<=1500;2*x2+4*x3<=800;3*x1+2*x2+5*x3<=2000;@gin(x1);@gin(x3);endGlobaloptimalsolutionfoundatiteration:3Objectivevalue:2675.000VariableValueReducedCostX1375.00000.3333333X2250.00000.000000X375.00000-4.000000
第五節(jié)應(yīng)用案例例l.分配甲、乙、丙、丁四個人去完成5項工作,每人完成各項工作所需的時間見表
。由于工作數(shù)多于人數(shù),故規(guī)定其中有一個人可兼顧完成兩項工作,其余3人每人完成一項。試確定總的花費時間為最少的指派方案。工作人ABCDE甲2529314237乙3938262033丙3427284032丁3442362345解:此問題為人數(shù)與任務(wù)數(shù)不等的分配問題,由于任務(wù)數(shù)比人數(shù)多1,因此需要有一個假想的人去完成某一項工作。根據(jù)題中的要求,這個假想的人就是甲、乙、丙、丁四個人中的某一個,因此這時假想人完成每項工作所用的時間不能為零。由于要求總的花費時間最少.因此這個假想人完成各項工作所需要的時間應(yīng)該取甲、乙、丙、丁中的最小者.假設(shè)第五個人是戊,則新的效率矩陣見表。工作人ABCDE甲2529314237乙3938262033丙3427284032丁3442362345工作人ABCDE甲2529314237乙3938262033丙3427284032丁3442362345戊2527262032得到如下的新效率表工作人ABCDE甲2529314237乙3938262033丙3427284032丁3442362345戊2527262032利用匈牙利法,可以得到最優(yōu)分配方案為:甲完成A,乙完成C,丙完成B和E,丁完成D,需要133h.Lingo求解例2.要從甲、乙、丙、丁、戊五人中挑選4個人去完成4項工作。己知每人完成各項工作的時間見表。規(guī)定每項工作只能由一個人單獨去完成,每個人最多承擔(dān)一項任務(wù).又假設(shè)對甲必須保證分配一項任務(wù),丁因某種原因決定不同意承擔(dān)第4項任務(wù),在滿足上述條件下,如何分配工作使完成4項工作總的花費時間最少。工作人ABCDE甲1051520M乙2105150丙31514130丁152760戊941580M工作人ABCDE甲1051520M乙2105150丙31514130丁1527M0戊941580應(yīng)用匈牙利法可以得到最優(yōu)分配為:甲完成B,乙完成C,丙完成A,戊完成D,需要21h.Lingo求解例3
某部隊后勤值班室準備聘用4名兼職值班員(代號1,2,3,4)和2名兼職帶班員(代號5,6)。已知每人從周一至周日每天最多可安排的值班時間及每人每h值班的報酬如下表所示:該值班室每天值班時間為上午8:00至晚上22:00,值班時間內(nèi)須有且僅須一名值班員值班.要求兼職值班員每周值班不少于10h,兼職帶班員每周不少于8h,每名值班員每周值班不超過4次,每次值班不少于2h,每天安排值班員不超過3人,且其中必須有一名兼職帶班員,試為該值班室安排一張人員的值班表,使總支付的報酬為最少.值班員代號報酬元/h每天最多可安排的值班時間周一周二周三周四周五周六周日110.060607120210.0060600123948305121249556040125153048012061606063012(1)該值班室值班時間為上午8:00至22:00,值班時間內(nèi)須有且僅須一名值班員值班.(2)規(guī)定值班員每周值班不少于10h,(3)帶班員每周不少于8h,(4)每名值班員每周值班不超過4次,(5)每次值班不少于2h,(6)每天安排值班的學(xué)生不超過3人,(7)其中必須有帶班員,設(shè)xij為值班員i在周j值班時間
1,安排值班員i在周j值班yij=
0,否則(1)(2)(3)(4)(5)(6)(7)值班代號報酬元/h每天最多可安排的值班時間周一周二周三周四周五周六周日11060607120210060600123948305121249556040125153048012061606063012aij為值班員i在周j的最多可值班時間得到數(shù)學(xué)模型為:
1,安排學(xué)生i在周j值班yij=
0,否則設(shè)xij為值班員i在周j值班時間Lingo求解程序Sets:num_i/1..6/:c; num_j/1..7; link(num_i,num_j):a,x,y;num_k/1..4/; endsetsdata: c=10,10,9,9,15,16;a=6,0,6,0,7,12,0,0,6,0,6,0,0,12,4,8,3,0,5,12,12,5,5,6,0,4,0,12,3,0,4,8,0,12,0,0,6,0,6,3,0,12; enddatamin=@sum(link(i,j):c(i)*x(i,j));@for(num_j(j):@sum(num_i(i):x(i,j))=14;);@for(num_k(k):@sum(num_j(j):x(k,j))>=10;);@sum(num_j(j):x(5,j))>=8;@sum(num_j(j):x(6,j))>=8;@for(num_i(i):@sum(num_j(j):y(i,j))<=4;);@for(num_j(j):@sum(num_i(i):y(i,j))<=3;);@for(num_j(j):y(5,j)+y(6,j)>=1;);@for(link(i,j):2*y(i,j)<=x(i,j)<=a(i,j)*y(i,j););//換成兩個不等式@for(link(i,j):@gin(y(i,j));y(i,j)>=0;);@for(link(i,j):@gin(x(i,j));x(i,j)>=0;);例4
東方大學(xué)計算機實驗室聘用4名大學(xué)生(代號1,2,3,4)和2名研究生(代號5,6)值班答疑.已知每人從周一至周五每天最多可安排的值班時間及每人每h值班的報酬如下表所示:該實驗室開放時間為上午8:00至晚上10:00,開放時間內(nèi)須有且僅須一名學(xué)生值班.規(guī)定大學(xué)生每周值班不少于8h,研究生每周不少于7h,每名學(xué)生每周值班不超過3次,每次值班不少于7h,每天安排值班的學(xué)生不超過3人,且其中必須有一名研究生,試為該實驗室安排一張人員的值班表,使總支付的報酬為最少.學(xué)生代號報酬元/h每天最多可安排的值班時間周一周二周三周四周五110.060607210.00606039.94830549.855604510.830480611.306063學(xué)生代號報酬元/h每天最多可安排的值班時間周一周二周三周四周五110.060607210.00606039.94830549.855604510.830480611.306063(1)該實驗室開放時間為上午8:00至晚上10:00,開放時間內(nèi)須有且僅須一名學(xué)生值班.(2)規(guī)定大學(xué)生每周值班不少于8h,(3)研究生每周不少于7h,(4)每名學(xué)生每周值班不超過3次,(5)每次值班不少于2h,(6)每天安排值班的學(xué)生不超過3人,(7)其中必須有一名研究生,設(shè)xij為學(xué)生i在周j值班時間
1,安排學(xué)生i在周j值班yij=
0,否則(1)(2)(3)(4)(5)(6)(7)得到數(shù)學(xué)模型為:設(shè)xij為學(xué)生i在周j值班時間
1,安排學(xué)生i在周j值班yij=
0,否則Lingo
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能機器人產(chǎn)業(yè)發(fā)展的機遇與挑戰(zhàn)分析報告
- 醫(yī)療健康-醫(yī)療設(shè)備采購與使用培訓(xùn)
- 青島理工大學(xué)《教育技術(shù)與應(yīng)用能力訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 個性化定制住宅的市場前景
- 旅游業(yè)中團隊建設(shè)的策略與方法
- 化學(xué)試劑在實驗室的應(yīng)用與質(zhì)量控制研究
- 個人成長規(guī)劃與職業(yè)發(fā)展路徑分析匯報
- 幼兒園數(shù)字描紅課程設(shè)計
- 插床的機械原理課程設(shè)計
- 如何學(xué)戶外拓展課程設(shè)計
- 河南省科學(xué)技術(shù)進步獎提名書
- 設(shè)備檢修維護記錄表
- 排泄物、分泌物及體液檢驗方法和病例分析
- 合同責(zé)任分解及交底表1-5
- 《漢服》PPT課件(完整版)
- 聚合物鋰離子電池
- 療養(yǎng)院建筑設(shè)計規(guī)范
- 復(fù)旦大學(xué)附屬腫瘤醫(yī)院病理科李大力,楊文濤
- 建筑工程冬期施工規(guī)程(JGJ104-2010)
- 甲級寫字樓配置標準詳
- 機械式停車設(shè)備安裝工藝
評論
0/150
提交評論