图论匈牙利算法与最优匹配算法精.ppt
《图论匈牙利算法与最优匹配算法精.ppt》由会员分享,可在线阅读,更多相关《图论匈牙利算法与最优匹配算法精.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图论课件匈牙利算法与最优匹配算法1第1页,本讲稿共32页本次课主要内容本次课主要内容(一一)、匈牙利算法、匈牙利算法(二二)、最优匹配算法、最优匹配算法匈牙利算法与最优匹配算法匈牙利算法与最优匹配算法2第2页,本讲稿共32页 (一一)、匈牙利算法、匈牙利算法 1、偶图中寻找完美匹配、偶图中寻找完美匹配 (1)、问题、问题 设设G=(X,Y),|X|=|Y|,在在G中求一完美匹配中求一完美匹配M.(2)、基本思想、基本思想 从任一初始匹配从任一初始匹配M0出发,通过寻求一条出发,通过寻求一条M0可扩路可扩路P,令,令M1=M0E(P),得比得比M0更大的匹配更大的匹配M1(近似于迭代思想近似于迭
2、代思想)。(3)、M可扩扩路的寻找方法可扩扩路的寻找方法 1965年,年,Edmonds首先提出首先提出:用扎根于用扎根于M非饱和点非饱和点u的的M交错树的交错树的生长来求生长来求M可扩路。可扩路。3第3页,本讲稿共32页 定义定义1 设设G=(X,Y),M是是G的匹配,的匹配,u是是M非饱和点。称树非饱和点。称树H是是G的的扎根于点扎根于点u的的M交错树交错树,如果:如果:1)u V(T);2)对任意对任意v V(T),(u,v)路是路是M交错路。交错路。x1x2x3x4y2y1y3y4G=(X,Y)x3x2x4y4y3y2扎根扎根 x3 的的M交错树交错树 扎根于扎根于M非饱和点非饱和点u
3、的的M交错树的生长讨论:交错树的生长讨论:4第4页,本讲稿共32页 假如扎根于假如扎根于M非饱和点非饱和点u的的M交错树为交错树为H,对于对于H,有两种情形:有两种情形:情形情形1 除点除点u外,外,H中所有点为中所有点为M饱和点,且在饱和点,且在M上配对;上配对;x4ux2y4y3y2扎根扎根 u 的的M交错树交错树Hx5 情形情形2 H包含除包含除u外的外的M非饱和点。非饱和点。x4ux2y4y3y2扎根扎根 u 的的M交错树交错树H5第5页,本讲稿共32页 对于情形对于情形1,令,令S=V(H)X,T=V(H)Y,显然:显然:1)若若N(S)=T,由于由于S-u中点与中点与T中点配对,所
4、以有:中点配对,所以有:|T|=|S|-1,于是有:于是有:|N(S)|=|S|-1|S|.由由Hall定理,定理,G中不存在完美中不存在完美匹配;匹配;2)若若 令令y N(S)T,且且x与与y邻接。因为邻接。因为H的所有点,除的所有点,除u外,均在外,均在M下配下配对。所以,或者对。所以,或者x=u,或者,或者x与与H的某一顶点配对,这样,有的某一顶点配对,这样,有 若若y为为M饱和的,设饱和的,设yz M,则加上顶点则加上顶点y及及z和边和边xy与与yz生长生长H,得,得到情形到情形1;6第6页,本讲稿共32页 若若y为为M非饱和的,加上顶点非饱和的,加上顶点y和边和边xy生长生长H,得
5、到情形,得到情形2.找到一条找到一条M可扩路,可以对匹配进行一次修改,过程的反复进可扩路,可以对匹配进行一次修改,过程的反复进行,最终判定行,最终判定G是否有完美匹配或者求出完美匹配。是否有完美匹配或者求出完美匹配。根据上面讨论,可以设计求偶图的完美匹配算法。根据上面讨论,可以设计求偶图的完美匹配算法。(4)、偶图完美匹配算法、偶图完美匹配算法匈牙利算法。匈牙利算法。设设M是初始匹配。是初始匹配。(a)、若、若M饱和饱和X所有顶点,停止。否则,设所有顶点,停止。否则,设u为为X中中M非饱和非饱和顶点,置顶点,置S=u,T=;(b)、若、若N(S)=T,则则G中不存在完美匹配。否则设中不存在完美
6、匹配。否则设 y N(S)T.7第7页,本讲稿共32页 (c)若若y为为M饱和点,且饱和点,且yz M,置置S=Sz,T=Ty,转转(b)。否则,设否则,设P为为M可扩路,置可扩路,置M1=ME(P),转转(a).例例1 讨论下图讨论下图G=(X,Y)是否有完美匹配。是否有完美匹配。x1x2x3x4x5y1y2y3y4y5G=(X,Y)解:取初始匹配解:取初始匹配 M=x1y2,x2y3。(a)S=x3,T=;x1x2x3x4x5y1y2y3y4y5G=(X,Y)8第8页,本讲稿共32页 (b)N(S)=y2,y3,N(S)T,取取y2 N(S)-T (c)y2为为M非饱和点,加上非饱和点,加
7、上y2和边和边x3y2生长树生长树H。此时,置。此时,置M=ME(P)=x1y1,x2y3,x3y2x1x2x3x4x5y1y2y3y4y5G=(X,Y)x3y2x1x2x3x4x5y1y2y3y4y5G=(X,Y)9第9页,本讲稿共32页 (a)S=x4,T=;x1x2x3x4x5y1y2y3y4y5G=(X,Y)(b)N(S)=y2,y3,N(S)T,取取y2 N(S)-T (c)y2为为M饱和点,饱和点,y2x3 M。此时,置。此时,置S=Sx3T=Ty2。(b)N(S)=y2,y3 T,取取y3 N(S)-Tx4y2x310第10页,本讲稿共32页 (c)y3为为M饱和点,饱和点,x2
8、y3 M。此时,置。此时,置S=Sx2T=Ty3。(b)N(S)=y2,y3 T,取取y3 N(S)-Tx1x2x3x4x5y1y2y3y4y5G=(X,Y)(b)N(S)=y2,y3=T,所以,所以,G无完美匹配。无完美匹配。(5)、匈牙利算法复杂性分析、匈牙利算法复杂性分析11第11页,本讲稿共32页 1)、最多循环、最多循环|X|次可以找到完美匹配;次可以找到完美匹配;2)、初始匹配最多扩张、初始匹配最多扩张|X|次可以找到完美匹配;次可以找到完美匹配;3)、每次生长树的生长至多、每次生长树的生长至多2|X|-1次。次。所以,算法复杂性为所以,算法复杂性为O(|X|3),是好算法。是好算
9、法。2、偶图中寻找最大匹配、偶图中寻找最大匹配 问题问题:在一般偶:在一般偶图图上求最大匹配上求最大匹配M.分析:使用匈牙利算法求完美匹配时,当在扎根于分析:使用匈牙利算法求完美匹配时,当在扎根于M非饱和非饱和点点u的交错树上有的交错树上有|N(S)|S|时时,由,由Hall定理,算法停止。要求出定理,算法停止。要求出最大匹配,最大匹配,应该继续检查应该继续检查X-S是否是否为为空,如果不空,如果不为为空,空,则检则检查查是否在其上有是否在其上有M非非饱饱和点。一直到所有和点。一直到所有M非非饱饱和点均没有和点均没有M可可扩扩路才停止。路才停止。12第12页,本讲稿共32页 偶图中寻找最大匹配
10、算法:偶图中寻找最大匹配算法:设设M是是G=(X,Y)的初始匹配。的初始匹配。(1)置置S=,T=,T=;(2)若若X-S已经已经M饱和,停止;否则,设饱和,停止;否则,设u是是X-S中的一非饱和顶中的一非饱和顶点,置点,置S=Su。(3)若若N(S)=T,转转(5);否则,设;否则,设y N(S)-T。(4)若若y是是M饱和的,设饱和的,设yz M,置置S=Sz,T=Ty,转转(3);否则,存在否则,存在(u,y)交错路是交错路是M可扩路可扩路P,置置M=ME(P),E(P),转转(1).(1).(5)若若X-S=,停止;否则转停止;否则转(2).(2).13第13页,本讲稿共32页(二二)
11、、最优匹配算法、最优匹配算法 1、问题、问题 设设G=(X,Y)是边赋权完全偶图,且是边赋权完全偶图,且X=x1,x2,xnY=y1,y2,yn,wij=w(xiyj)。在。在G中求出一个具有最大权值的中求出一个具有最大权值的完美匹配。完美匹配。由于由于Kn,n有有n!个不同完美匹配,所以枚举计算量是个不同完美匹配,所以枚举计算量是n!。在匈牙利算法的基础上,在匈牙利算法的基础上,Kuhn(1955)与)与Munkres(1957)提出了上提出了上面问题的好算法。面问题的好算法。2、可行顶点标号与相等子图、可行顶点标号与相等子图14第14页,本讲稿共32页 定义定义2 设设G=(X,Y),若对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 匈牙利 算法 最优 匹配
限制150内