二分图匹配问题(——模板习题与总结)

  首先得知道什么是二分图匹配问题,给出一个二分图,每个人与另外的一个或者多个人存在某种关系

    问将他们两两配对的对,最多能配成多少对。

  其次,明确几个专业名词。

    最大匹配:边数最多的匹配成为最大匹配。

    最大匹配数:最大匹配的边数称为边独立数或者匹配数。

    最大点独立集:顶点数最多的点独立集称为最大点独立集。

    点独立数:最大点独立集的顶点数称为点独立数。

  接下来总结一下,如何计算二分匹配的最大匹配。

  这里介绍一下匈牙利算法,至于另外的网络流解法随后再说。

  匈牙利算法的原理是: 从当前匹配M(可以是空集)出发,检查每一个未盖点,然后从他出发寻找可增广路,找到可增广路,沿着这条可增广路进行扩充,直到不存在可增广路为止。

  未盖点出发寻找可增广路的方法有DFS增广,BFS增广,这里只介绍DFS增广。

  最后,熟记几个公式。

  最大匹配数

    模板习题:http://www.cnblogs.com/wenzhixin/p/7363354.html

  点独立数=顶点数-最大匹配数

    模板习题:http://www.cnblogs.com/wenzhixin/p/7361114.html

  最小点覆盖数=最大匹配数

    模板习题:http://www.cnblogs.com/wenzhixin/p/7361409.html

  最小路径覆盖数=顶点数-最大匹配数

    模板习题:http://www.cnblogs.com/wenzhixin/p/7363128.html

  最小边覆盖(未补充)

  最后总结,该类问题难,不是算法,而是建模,模建好了,问题不大。

  

posted @ 2017-10-13 18:06  Reqaw  阅读(469)  评论(0编辑  收藏  举报