版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、二分圖匹配及其應(yīng)用1x5x4x3x2x1y2y3y4y5y例題1 棋盤的覆蓋n一張普通的國際象棋棋盤n8*8 = 64 格中被刪除了一些格子n使用1*2 的多米諾骨牌進(jìn)行覆蓋n求最大覆蓋的格數(shù)和方案 例題1 思路n染色n建圖n性質(zhì)n最大匹配和完美匹配基本概念n點(diǎn)集分為互補(bǔ)的兩個集合1x5x4x3x2x1y2y3y4y5y基本定理n判定定理:判定定理:n一個圖為二分圖的充要條件是其所有回路均一個圖為二分圖的充要條件是其所有回路均為偶數(shù)長。為偶數(shù)長。q如何判斷一張圖是否為二分圖,并對節(jié)點(diǎn)進(jìn)如何判斷一張圖是否為二分圖,并對節(jié)點(diǎn)進(jìn)行正確的劃分呢?行正確的劃分呢?二分圖的判斷問題n染色法n將節(jié)點(diǎn)用黑白兩
2、種顏色染n實(shí)現(xiàn):深度優(yōu)先搜索二分圖判斷問題解答1nvarn visited: array1.100 of integer;n data: array1.1001.100 of integer;n n: integer;n success: boolean;二分圖判斷問題解答2procedure dfs(which, color:integer);var i: integer;begin if not success then exit; if visitedwhich 0 then begin if visitedwhich color then success = false; exit;
3、end; visitedwhich := color; for i:=1 to n do if datawhichi 0 then dfs(i, 3-color);end;二分圖判斷問題解答3function judge:boolean;var i: integer;begin success := true; for i:=1 to n do if visitedi = 0 then dfs(i,1); judge := success;end.HALL 定理n二分圖,存在完美匹配的充分必要條件是,對于任意一個頂點(diǎn)集合的子集A,它的相鄰點(diǎn)構(gòu)成的鄰集X(A),都滿足以下條件:AAX)(HALL
4、 定理 證明n必要性n充分性例題2 HALL定理的應(yīng)用n構(gòu)造N*N的矩陣,使得每行都有1到n每個數(shù)字出現(xiàn)一次且僅一次,每列都有1到n每個數(shù)字出現(xiàn)一次且僅一次例題2 思路n每次構(gòu)造一行n循環(huán)n次構(gòu)造n行n建圖n如何證明?例題3 思考題nN為奇數(shù),M=(N-1)/2,由組合數(shù)學(xué)知:n因?yàn)镸+M+1 = N1mnmnCC例題3 思考題現(xiàn)將所有的從n個數(shù)里取m個數(shù)的組合構(gòu)成一個集合A將所有的從n個數(shù)里取m+1個數(shù)的組合構(gòu)成另一個集合B這兩個集合是否存在著一一映射的關(guān)系?使得A中的每個元素a都對應(yīng)到B中的元素b,且a為b的一個子集?例題3 思考題解答n建圖n找完美匹配n如何證明?增廣路和匈牙利算法n增廣
5、路(交錯軌)的概念n匈牙利算法:找增廣路n如何找?算法選擇?增廣路和匈牙利算法 實(shí)例11x5x4x3x2x1y2y3y4y5y增廣路和匈牙利算法 實(shí)例21x5x4x3x2x1y2y3y4y5y找增廣路的兩種辦法n廣度優(yōu)先搜索n深度優(yōu)先搜索廣度優(yōu)先算法程序nvarndata: array1.100,1.100 of integer;nmatch1,match2: array1.100 of integer;nn:integer;廣度優(yōu)先算法程序nfunction bmatch:integer;nvarn i,r:integer;nbeginn for i:=1 to n don r := r +
6、 find(i);n bmatch := r;nend;廣度優(yōu)先算法程序nfunction find(s:integer):integer;nvarn i,j, d,t, qh,ql:integer;n father2,queue1:array1.100 of integer;nbeginn fillchar(father2,sizeof(father2),0);n queue11 := s;n qh := 1;n ql := 1;廣度優(yōu)先算法程序while (qh 0) or (dataqueue1qhi=0) then continue; if (match2i0) then begin
7、inc(ql); queue1ql:=match2i; father2i:=queue1qh;廣度優(yōu)先算法程序 end else begin j := queueqh; while (true) do begin t:=match1j; match1j:=i; match2i:=j; if (t = 0) then break; i:=t; j:=father2t;廣度優(yōu)先算法程序 end; find := 1; Exit; end; end; end; find := 0;end;深度優(yōu)先算法程序vardata: array1.100,1.100 of integer;match1,matc
8、h2: array1.100 of integer;int n;used2: array1.100 of integer;深度優(yōu)先算法程序function bmatch:integer;var i,r:integer;begin for i:=1 to n do begin fillchar(used2,sizeof(used2),0); r := r + find(i); end; bmatch := r;end;深度優(yōu)先算法程序function find(s:integer):integer;var i:integer;begin for i:=1 to n do if (datasi 0
9、) and (used2i=0) then begin used2i := 1; if (match2i = 0) or find(match2i) then begin match2i := s; match1s := i; find := 1; exit; end; end; find := 0;end;二分圖與網(wǎng)絡(luò)流的關(guān)系 例題4 攔截導(dǎo)彈n某國為了防御敵國的導(dǎo)彈襲擊,發(fā)展出一種導(dǎo)彈攔截某國為了防御敵國的導(dǎo)彈襲擊,發(fā)展出一種導(dǎo)彈攔截系統(tǒng)。但是這種導(dǎo)彈攔截系統(tǒng)系統(tǒng)。但是這種導(dǎo)彈攔截系統(tǒng) 有一個缺陷:雖然它的有一個缺陷:雖然它的第一發(fā)炮彈能夠到達(dá)任意的高度,但是以后每一發(fā)炮第一發(fā)炮彈能夠到達(dá)
10、任意的高度,但是以后每一發(fā)炮彈都不能高彈都不能高 于前一發(fā)的高度。某天,雷達(dá)捕捉到敵國于前一發(fā)的高度。某天,雷達(dá)捕捉到敵國的導(dǎo)彈來襲。由于只有一套系統(tǒng),因此有可能不能攔的導(dǎo)彈來襲。由于只有一套系統(tǒng),因此有可能不能攔截所有的導(dǎo)彈。截所有的導(dǎo)彈。 n已知導(dǎo)彈依次飛來的高度,計(jì)算已知導(dǎo)彈依次飛來的高度,計(jì)算 這套系統(tǒng)最多能攔截這套系統(tǒng)最多能攔截多少導(dǎo)彈,和如果要攔截所有導(dǎo)彈最少要配備多少套多少導(dǎo)彈,和如果要攔截所有導(dǎo)彈最少要配備多少套這種導(dǎo)彈攔截這種導(dǎo)彈攔截 系統(tǒng)。系統(tǒng)。 例題4 攔截導(dǎo)彈 標(biāo)準(zhǔn)解法n動態(tài)規(guī)劃n貪心法例題4 攔截導(dǎo)彈 匹配解法n將特殊情況一般化n建圖n化為最小路徑覆蓋最小路徑覆蓋n轉(zhuǎn)
11、換轉(zhuǎn)換n拆分頂點(diǎn)拆分頂點(diǎn)n化為二分圖匹配化為二分圖匹配例題5 傘兵降落n某個城市的街道圖是一個有向無環(huán)圖,某個城市的街道圖是一個有向無環(huán)圖,現(xiàn)在傘兵可在圖中任意一個節(jié)點(diǎn)降落,現(xiàn)在傘兵可在圖中任意一個節(jié)點(diǎn)降落,并負(fù)責(zé)清掃后面他走過的街道。并負(fù)責(zé)清掃后面他走過的街道。n任意一條街道必須有一個傘兵清掃,并任意一條街道必須有一個傘兵清掃,并不允許其他傘兵經(jīng)過不允許其他傘兵經(jīng)過n求最少需要的傘兵數(shù)求最少需要的傘兵數(shù)例題6 旅館預(yù)訂n一個旅館接到一個旅館接到n張定單,表示要從第張定單,表示要從第s天天開始入住,從第開始入住,從第e天結(jié)束并離開,天結(jié)束并離開,n求最少需要的房間數(shù)目,以滿足所有定求最少需要的
12、房間數(shù)目,以滿足所有定單的要求。單的要求。例題7 火星探測器n火星探測器要在一個火星探測器要在一個n*n的網(wǎng)格內(nèi)采集的網(wǎng)格內(nèi)采集巖石標(biāo)本,它從巖石標(biāo)本,它從(1,1)出發(fā),到達(dá)出發(fā),到達(dá)(n,n)n有些網(wǎng)格內(nèi)是標(biāo)本,探測器第一次經(jīng)過有些網(wǎng)格內(nèi)是標(biāo)本,探測器第一次經(jīng)過時將得到此標(biāo)本時將得到此標(biāo)本n有些網(wǎng)格內(nèi)是障礙物,不能通過有些網(wǎng)格內(nèi)是障礙物,不能通過n探測器只能走最短路線探測器只能走最短路線例題7 火星探測器 問題n問題問題1. 只有一個探測器,如何走采集到只有一個探測器,如何走采集到最多的標(biāo)本?最多的標(biāo)本?n問題問題2. 至少要幾個探測器才能收集完這至少要幾個探測器才能收集完這里所有的標(biāo)本?里所有的標(biāo)本?n問題問題3. 若只有若只有k個探測器,最多能收集個探測器,最多能收集到幾個標(biāo)本?到幾個標(biāo)本?例題8 打獵n獵人要在獵人要在n*n的格子里打鳥,他可以在的格子里打鳥,他可以
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧課堂與學(xué)生自主學(xué)習(xí)能力的培育策略研究報(bào)告
- 2025建設(shè)工程合同管理題庫
- 二零二五年酒店餐飲特色主題活動策劃承包合同3篇
- 2025年度二手房交易稅費(fèi)代繳及結(jié)算服務(wù)合同4篇
- 2025-2030年中國高速齒輪箱市場競爭格局及未來投資趨勢分析報(bào)告
- 2025-2030年中國避孕藥市場規(guī)模分析及發(fā)展戰(zhàn)略決策研究報(bào)告新版
- 2025-2030年中國足浴盆行業(yè)規(guī)模分析及發(fā)展建議研究報(bào)告
- 2025-2030年中國表面活性劑市場風(fēng)險評估規(guī)劃研究報(bào)告
- 2025-2030年中國茶堿緩釋片行業(yè)競爭格局展望及投資策略分析報(bào)告
- 2025-2030年中國腹腔鏡行業(yè)市場發(fā)展現(xiàn)狀及前景趨勢分析報(bào)告
- 油氣回收相關(guān)理論知識考試試題及答案
- 我能作業(yè)更細(xì)心(課件)-小學(xué)生主題班會二年級
- 2023年湖北省武漢市高考數(shù)學(xué)一模試卷及答案解析
- 城市軌道交通的網(wǎng)絡(luò)安全與數(shù)據(jù)保護(hù)
- 英國足球文化課件
- 《行政職業(yè)能力測驗(yàn)》2023年公務(wù)員考試新疆維吾爾新疆生產(chǎn)建設(shè)兵團(tuán)可克達(dá)拉市預(yù)測試題含解析
- 醫(yī)院投訴案例分析及處理要點(diǎn)
- 燙傷的安全知識講座
- 工程變更、工程量簽證、結(jié)算以及零星項(xiàng)目預(yù)算程序?qū)嵤┘?xì)則(試行)
- 練習(xí)20連加連減
- 五四制青島版數(shù)學(xué)五年級上冊期末測試題及答案(共3套)
評論
0/150
提交評論