文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

匈牙利算法是什么

2023-06-19 11:40

关注

匈牙利算法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

 

1 二分图

二分图:又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边   所关联的两个顶点i和j分别属于这两个不同的顶点集(i∈A, j∈B),则称图G为一个二分图。  

简单来说,如果图中所有顶点可以被分为两个集合,图中所有的边的头和尾不属于同一个顶点集合,而是跨越两个集合,则这个图是一个二分图。

例如:图1.1所示的图,无论如何划分顶点集合,也不能保证所有边的头和尾隶属于不同集合,因此,图1.1所示的图不是二分图。

匈牙利算法是什么  
图1.1

例如:图1.2所示的无向图:

匈牙利算法是什么  
图1.2

将顶点a,b,c,d作为集合A,将e,f,g,h作为集合B,将图1.2转化为图1.3所示:

匈牙利算法是什么  
图1.3

可以看出,图中顶点可以划分为A,B两个集合,而任意一条边的头和尾又分别隶属于集合A和集合B,因此,此图为二分图。

 

2 匹配

匹配:在图论中,一个匹配(matching)是指一个边的集合,其中任意两条边都没有公共顶点。
例如:图2.1中红色的边,可以为图1.3所示图的一个匹配。

匈牙利算法是什么  
图2.1
 

3 最大匹配

最大匹配:一个图所有匹配中,所含匹配边数最多的匹配,称为这个图的最大匹配。图 3.1是一个最大匹配,它包含4条匹配边。

匈牙利算法是什么  
图3.1
 

4 完美匹配

完美匹配:如果一个图的某个匹配中,所有的顶点都是匹配点,那么它就是一个完美匹配。完美匹配一定是最大匹配(完美匹配的任何一个点都已经匹配,添加一条新的匹配边一定会与已有的匹配边冲突),但并非每个图都存在完美匹配。

 

5 交替路径

交替路径:从一个未匹配点出发,依次经过非匹配边、匹配边、非匹配边…形成的路径称为交替路径。

 

6 增广路径

增广路径:从一个未匹配点出发,走交替路,如果途径另一个未匹配点(出发的点不算),则这条交替路称为增广路(agumenting path)。

增广路径性质:
    (1)P的路径长度必定为奇数,第一条边和最后一条边都不属于M,因为两个端点分属两个集合,且未匹配。
    (2)P经过取反操作可以得到一个更大的匹配M’。
    (3)M为G的最大匹配当且仅当不存在相对于M的增广路径。

 

7 匈牙利算法

匈牙利算法:利用增广路径求二分图的最大匹配算法称作匈牙利算法。(匈牙利数学家Edmonds于1965年提出)。
基本思想:通过寻找增广路径,把增广路径中的匹配边和非匹配边的相互交换,这样就会多出一条匹配边,直到找不到增广路径为止。

例如:以图2.1所示的二分图为例,使用匈牙利算法求解图的最大匹配。
(1)从顶点a出发,按照交替路径前进,第一个非匹配边为       ,到达顶点e,e为非匹配点,构成增广路径。令          为匹配边,顶点a,e为匹配顶点。    
   

匈牙利算法是什么  

(2)从顶点b出发,第一非匹配边为  ,到达顶点e,选择匹配边,到达a,选择非匹配边          ,g为非匹配点,找到一条增广路径。    
   
匈牙利算法是什么    

(3)交换增广路径中的匹配边与非匹配边,得到如下匹配。    
   
匈牙利算法是什么    

(4)从顶点c出发,第一非匹配边为,到达顶点e,然后按照交替路径前进,到达顶点b,无法继续前进。      
     
匈牙利算法是什么      

(5)从顶点c出发,选择第二条非匹配边。      
     
匈牙利算法是什么      

(6)从顶点d出发,选择非匹配边,到达顶点g,选择匹配边,到达顶点a,选择非匹配边到达顶点e,选择匹配边,到达顶部b,没有可以选择的边,且没有找到增广路径。          
         
匈牙利算法是什么          

(7)继续从顶点d出发,选择非匹配边,找到增广路径,将边变为匹配边,算法结束。
匈牙利算法是什么

8 结语

匈牙利算法多用于指派问题中,例如任务匹配问题。通过转化为二分图的形式,求解最大匹配,保证实现最优分配。


关于匈牙利算法是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯