指派問題的匈牙利法_第1頁
指派問題的匈牙利法_第2頁
指派問題的匈牙利法_第3頁
指派問題的匈牙利法_第4頁
指派問題的匈牙利法_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選課件1 指派問題n指派問題是一種特殊的整數(shù)規(guī)劃問題一、問題的提出一、問題的提出 設有m個工人,能做n件事,但效率不同,并規(guī)定每個工人做且只能做一件事,每件事有且只能有一個工人做,問應該如何安排他們的工作,使花費的總時間(成本)最少或效率最高?精選課件2二、指派問題的數(shù)學模型n設第i個工人做第j件事的時間是 ,決策變量是n則數(shù)學模型如下件事個工人不做第第,件事個工人做第第jijixij0, 1ijc精選課件3njmixnjxmixxczijmiijnjijnjmiijij, 2 , 1;, 2 , 1; 1 , 0, 2 , 1, 1, 2 , 1, 1min1111精選課件4舉例說明1)表

2、上作業(yè)法2)匈牙利法n例 有四個工人和四臺不同的機床,每位工人在不同的機床上完成給定的任務的工時如表5.12所示,問安排哪位工人操作哪一臺機床可使總工時最少?任務1任務2任務3任務4工人1工人2工人3工人4215134104147314161378119精選課件5獲得初始解:圈零/劃零操作n將時間矩陣C的每一行都減去相應行的最小元素和每一列都減去相應列的最小元素,使每一行和每一列都含有零;n從最少零數(shù)的行或列開始,將“零”圈起來,并劃去它所在行和所在列的其它零;n反復做2),直到所有零被圈起或被劃掉為止。得到初始解。n判斷是否為最優(yōu)解:圈起的零的個數(shù)是否等于n。 精選課件6確定調(diào)整行和列n在沒

3、有圈起的零所在行上打“”;n在打“”行中所有零所在的列打“”;n在打“”列中含有圈起零的行上打“”,n反復執(zhí)行2)和3)兩步,直到不能打“”為止;n用直線劃去打用直線劃去打“”的列和不打的列和不打“”的行的行,沒有劃去的行構成調(diào)整的行,劃去的列構成調(diào)整列。精選課件7調(diào)整可行解的方法n在調(diào)整行中尋找最小的元素,將它作為調(diào)整量;n將調(diào)整行各元素減去調(diào)整量,對調(diào)整列中各元素加上調(diào)整量。n再次執(zhí)行“圈零”和“劃零”的操作,并循環(huán)以上的步驟,直到圈起的零數(shù)等于n為止。精選課件8匈牙利法解例3.3n時間矩陣n各行各列減去最小元素后得9137411161413814415731025830043249011

4、5080精選課件9圈零劃零58300432490115080精選課件10得最優(yōu)解n將圈起的零改為1,其它元素改為0,即得最優(yōu)解如下n最小總時間為22。0001100000100100)ijx(精選課件11再看一例n請求解如下矩陣表達的指派問題 9107104106614159141217766698979712精選課件12減去最小元素563601000892751000003220205精選課件13圈零劃零563601000892751000003220205精選課件14打勾劃線確定調(diào)整行和列563601000892751000003220205精選課件15調(diào)整可行解3414010008110

5、53800003420207精選課件16再圈零劃零341401000811053800003420207精選課件17得最優(yōu)解0000101000100000010000010)(ijx精選課件18另一最優(yōu)解n最小時間(成本)min z=32 0000100100100000100000010)(ijx精選課件19匈牙利算法示例精選課件20 (二)、解題步驟:(二)、解題步驟: 指派問題是指派問題是0-1 規(guī)劃的特例,也是運輸問題的特例,規(guī)劃的特例,也是運輸問題的特例,當然可用整數(shù)規(guī)劃,當然可用整數(shù)規(guī)劃,0-1 規(guī)劃或運輸問題的解法去求規(guī)劃或運輸問題的解法去求解,這就如同用單純型法求解運輸問題一

6、樣是不合算解,這就如同用單純型法求解運輸問題一樣是不合算的。利用指派問題的特點可有更簡便的解法,這就是的。利用指派問題的特點可有更簡便的解法,這就是匈牙利法,即匈牙利法,即系數(shù)矩陣中獨立系數(shù)矩陣中獨立 0 0 元素的最多個數(shù)等于元素的最多個數(shù)等于能覆蓋所有能覆蓋所有 0 0 元素的最少直線數(shù)。元素的最少直線數(shù)。 第一步:變換指派問題的系數(shù)矩陣(第一步:變換指派問題的系數(shù)矩陣(cij)為)為(bij),使,使在在(bij)的各行各列中都出現(xiàn)的各行各列中都出現(xiàn)0元素,即元素,即 (1) 從(從(cij)的每行元素都減去該行的最小元素;)的每行元素都減去該行的最小元素; (2) 再從所得新系數(shù)矩陣的

7、每列元素中減去該列的最再從所得新系數(shù)矩陣的每列元素中減去該列的最小元素。小元素。精選課件21 第二步:進行試指派,以尋求最優(yōu)解。第二步:進行試指派,以尋求最優(yōu)解。 在在(bij)中找盡可能多的獨立中找盡可能多的獨立0元素,若能找出元素,若能找出n個獨個獨立立0元素,就以這元素,就以這n個獨立個獨立0元素對應解矩陣元素對應解矩陣(xij)中的元中的元素為素為1,其余為,其余為0,這就得到最優(yōu)解。找獨立,這就得到最優(yōu)解。找獨立0元素,常元素,常用的步驟為:用的步驟為: (1)從只有一個從只有一個0元素的行元素的行(列列)開始,給這個開始,給這個0元素加元素加圈,記作圈,記作 。然后劃去。然后劃去

8、所在列所在列(行行)的其它的其它0元素,記元素,記作作 ;這表示這列所代表的任務已指派完,不必再考;這表示這列所代表的任務已指派完,不必再考慮別人了。慮別人了。 (2)給只有一個給只有一個0元素的列元素的列(行行)中的中的0元素加圈,記作元素加圈,記作;然后劃去;然后劃去 所在行的所在行的0元素,記作元素,記作 (3)反復進行反復進行(1),(2)兩步,直到盡可能多的兩步,直到盡可能多的0元素都元素都被圈出和劃掉為止。被圈出和劃掉為止。精選課件22 (4)若仍有沒有劃圈的若仍有沒有劃圈的0元素,且同行元素,且同行(列列)的的0元素至元素至少有兩個,則從剩有少有兩個,則從剩有0元素最少的行元素最

9、少的行(列列)開始,比較這開始,比較這行各行各0元素所在列中元素所在列中0元素的數(shù)目,選擇元素的數(shù)目,選擇0元素少的那列元素少的那列的這個的這個0元素加圈元素加圈(表示選擇性多的要表示選擇性多的要“禮讓禮讓”選擇性選擇性少的少的)。然后劃掉同行同列的其它。然后劃掉同行同列的其它0元素。可反復進行,元素。可反復進行,直到所有直到所有0元素都已圈出和劃掉為止。元素都已圈出和劃掉為止。 (5)若)若 元素的數(shù)目元素的數(shù)目m 等于矩陣的階數(shù)等于矩陣的階數(shù)n,那么這指,那么這指派問題的最優(yōu)解已得到。若派問題的最優(yōu)解已得到。若m n, 則轉(zhuǎn)入下一步。則轉(zhuǎn)入下一步。 第三步:作最少的直線覆蓋所有第三步:作最

10、少的直線覆蓋所有0元素。元素。 (1)對沒有對沒有的行打的行打號;號; (2)對已打?qū)σ汛蛱柕男兄兴泻柕男兄兴泻氐牧写蛟氐牧写蛱?;號?(3)再對打有再對打有號的列中含號的列中含 元素的行打元素的行打號;號; 精選課件23 (4)重復重復(2),(3)直到得不出新的打直到得不出新的打號的行、列為止;號的行、列為止; (5)對沒有打?qū)]有打號的行畫橫線,有打號的行畫橫線,有打號的列畫縱線,號的列畫縱線,這就得到覆蓋所有這就得到覆蓋所有0元素的最少直線數(shù)元素的最少直線數(shù) l 。l 應等于應等于m,若不相等,說明試指派過程有誤,回到第二步若不相等,說明試指派過程有誤,回到第二步(4),另

11、,另行試指派;若行試指派;若 lm n,須再變換當前的系數(shù)矩陣,須再變換當前的系數(shù)矩陣,以找到以找到n個獨立的個獨立的0元素,為此轉(zhuǎn)第四步。元素,為此轉(zhuǎn)第四步。第四步:變換矩陣第四步:變換矩陣(bij)以增加以增加0元素。元素。在沒有被直線覆蓋的所有元素中找出最小元素,然后在沒有被直線覆蓋的所有元素中找出最小元素,然后打打各行都減去這最小元素;打各行都減去這最小元素;打各列都加上這最小元各列都加上這最小元素(以保證系數(shù)矩陣中不出現(xiàn)負元素)。新系數(shù)矩陣素(以保證系數(shù)矩陣中不出現(xiàn)負元素)。新系數(shù)矩陣的最優(yōu)解和原問題仍相同。轉(zhuǎn)回第二步。的最優(yōu)解和原問題仍相同。轉(zhuǎn)回第二步。 精選課件24例一:例一:

12、任務任務人員人員ABCD甲甲215134乙乙1041415丙丙9141613丁丁78119精選課件25 9118713161491514410413152 241047501110062111302497精選課件26 00102350960607130 2410475011100621113042精選課件27 00102350960607130 0100000100101000精選課件28 有一份中文說明書,需譯成英、日、德、俄四種有一份中文說明書,需譯成英、日、德、俄四種文字,分別記作文字,分別記作A、B、C、D?,F(xiàn)有甲、乙、丙、丁四?,F(xiàn)有甲、乙、丙、丁四人,他們將中文說明書譯成不同語種的說

13、明書所需時人,他們將中文說明書譯成不同語種的說明書所需時間如下表所示,問如何分派任務,可使總時間最少?間如下表所示,問如何分派任務,可使總時間最少? 任務任務人員人員ABCD甲甲67112乙乙4598丙丙31104丁丁5982例二、例二、精選課件29求解過程如下:求解過程如下:第一步,變換系數(shù)矩陣:第一步,變換系數(shù)矩陣:2142 289541013895421176)( ijc 0673390245100954 01733402401004545第二步,試指派:第二步,試指派:找到找到 3 3 個獨立零元素個獨立零元素 但但 m m = 3 3 n = 4精選課件30

14、 第三步,作最少的直線覆蓋所有第三步,作最少的直線覆蓋所有0 0元素:元素:立零元素的個數(shù)獨立零元素的個數(shù)m等于最少直線數(shù)等于最少直線數(shù)l,即,即lm=3n=4; 第四步,變換矩陣第四步,變換矩陣( (bij) )以增加以增加0 0元素:沒有被直線元素:沒有被直線覆蓋的所有元素中的最小元素為覆蓋的所有元素中的最小元素為1 1,然后打,然后打各行都減各行都減去去1 1;打;打各列都加上各列都加上1 1,得如下矩陣,并轉(zhuǎn)第二步進,得如下矩陣,并轉(zhuǎn)第二步進行試指派:行試指派: 精選課件31 6244251343000 0 00 0100001000011000得到得到4 4

15、個獨個獨立零元素,立零元素, 所以最優(yōu)解所以最優(yōu)解矩陣為:矩陣為:0624425134315 6244251343精選課件32練習:練習:115764戊戊69637丁丁86458丙丙9117129乙乙118957甲甲EDCBA費費 工作工作 用用人員人員精選課件334347511576469637964589117129118957 7132036304520142405263402-1 -2精選課件34 5032015304310140305242402 5032015304310140305242402精選課件35 5032015304310140305242402l =m=4 n=5精選課件36 5032015304310140305242402 5033004203310240306231301精選課件37 5033004203310240306231301 5033004203310240306231301精選課件38 5033004203310240306231301l =m=4 n=5精選課件39 5033004203310240306231301 6044003202300230206130300精選課件40 6044003202300230206130300 60440032023002302061303

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論