匈牙利算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

匈牙利算法是一种组合优化算法,可以在多项式时间内解决任务分配问题,并在以后推广原始的对偶方法。美国数学家哈罗德·库恩(Harold Kuhn)在1955年提出了该算法。该算法之所以称为匈牙利算法,是因为它很大程度上是基于前匈牙利数学家Denes K nig和Jen Egervary的工作。

假设它是无向图。如果顶点集V可以分为两个不相交的子集,则在该子集中选择具有最大边数的子集称为图的最大匹配问题。

如果存在匹配项和匹配项数,则该匹配项称为完美匹配项,也称为完全匹配项。称为完美匹配时的特殊。

在介绍匈牙利算法之前,只有几个概念,M是G的匹配项。

如果,则边缘已经在匹配的M上。

M交错的路径:P是G的路径。如果P中的边是属于M的边和不属于M而是属于G的边交替,则称P为M交错的路。如:路径,。

M饱和点:例如,如果V与M中的边关联,则V为m饱和点;否则,V为非M饱和点。例如,它们都属于M饱和点,而其他所有点都属于非M饱和点。

M扩展路径:P是M交错的路径。如果P的起点和终点均为非M饱和点,则P称为m增强路径。例如(不要与流网络中的增强路径混淆)。

寻找最多匹配项的一种明显算法是找到所有匹配项,然后保留最多匹配项。但是该算法的时间复杂度是边数的指数函数。因

此,我们需要找到一种更有效的算法。下面介绍使用增强路径查找最大匹配的方法(称为匈牙利算法,由匈牙利数学家爱德蒙兹(Edmonds)于1965年提出)。

增强轨道(也称为增强轨道或交错轨道)的定义:

如果P是连接图G中两个不匹配顶点的路径,并且属于M的边和不属于M的边(即已匹配和待匹配)在P上交替,则称P为扩充路径相对于M

从增强路径的定义可以得出以下三个结论:

(1)到P的路径数必须是奇数,并且第一个边缘和最后一个边缘都不属于M。

(2)通过将M和P取反可以获得更大的匹配度。

(3)当且仅当没有M的增加路径时,M是G的最大匹配。

算法简介:

(1)令M为空

(2)通过异或运算找到增强路径P并获得更大的匹配项而不是M

(3)重复(2),直到找不到扩展路径。

时间复杂度邻接矩阵:最差的是邻接表:

空间复杂度的邻接矩阵:邻接表:

相关文档
最新文档