匈牙利算法

上传人:博****1 文档编号:564912160 上传时间:2022-12-01 格式:DOCX 页数:3 大小:141.37KB
返回 下载 相关 举报
匈牙利算法_第1页
第1页 / 共3页
匈牙利算法_第2页
第2页 / 共3页
匈牙利算法_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《匈牙利算法》由会员分享,可在线阅读,更多相关《匈牙利算法(3页珍藏版)》请在金锄头文库上搜索。

1、匈牙利算法过程图解以下算法可把G中任一匹配M扩充为最大匹配,此算法是Edmonds于1965年提出的,被 称为匈牙利算法,其步骤如下:(1)首先用(*)标记X中所有的非M-顶点,然后交替进行步骤(2),(3)。(2)选取一个刚标记(用(*)或在步骤(3)中用(片)标记)过的X中顶点,例如顶 点片,然后用(xi)去标记Y中顶点y,如果xi与y为同一非匹配边的两端点,且在本步骤 中y尚未被标记过。重复步骤(2),直至对刚标记过的X中顶点全部完成一遍上述过程。(3)选取一个刚标记(在步骤(2)中用(xi)标记)过的Y中结点,例如右,用(右) 去标记X中结点x,如果yi与x为同一匹配边的两端点,且在本

2、步骤中x尚未被标记过。 重复步骤(3),直至对刚标记过的Y中结点全部完成一遍上述过程。(2),(3)交替执行,直到下述情况之一出现为止:(I)标记到一个Y中顶点y,它不是M-顶点。这时从y出发循标记回溯,直到(*)标 记的X中顶点x,我们求得一条交替链。设其长度为2k+1,显然其中k条是匹配边,k+1 条是非匹配边。(II)步骤(2)或(3)找不到可标记结点,而又不是情况(I)。(4)当(2),(3 )步骤中断于情况(I),则将交替链中非匹配边改为匹配边,原 匹配边改为非匹配边(从而得到一个比原匹配多一条边的新匹配),回到步骤(1),同时 消除一切现有标记。(5)对一切可能,(2)和(3)步骤

3、均中断于情况(II),或步骤(1)无可标记结点, 算法终止(算法找不到交替链)。我们不打算证明算法的正确性,只用一个例子跟踪一下算法的执行,来直观地说明这一点。 例9.3用匈牙利算法求图9.3的一个最大匹配。(1)置M =比,对x-x标记(*)。1 6(2) 找到交替链(X, y1)(由标记(x1),(*)回溯得),置M = (X, y1)0(3) 找到交替链(x2, y2)(由标记(x2),(*)回溯得),置 M = (X, y1), (x2, y2),。(4)找到交替链(x3, y1? X, y4)(如图9.4所示。图中虚线表示非匹配边,细实线表示 交替链中非匹配边,粗实线表示匹配边),因而得M = (x2, y2), (x3, y1),(x1, y4)。(5) 找到交替链(x4, y3)(由标记(x4) , (*)回溯得),置 M = (x2, y2), (x3, y1),(x1, y4), (x43)。(6) 找到交替链(x5, y4, X, y1? x3, y7)(如图9.5所示,图中各种线段的意义同上),因 而得图艮弘Y1旳Y40ye

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号