最大流与二分匹配的转换ppt.ppt

最大流与二分匹配的转换ppt

算法分析与设计 最大流与二分匹配之间的转换 最大流与二分匹配之间的转换 DINIC DINIC是求最大流常用算法之一,要配和着链式前向星等链式存图结构才能发挥它的作用(优化时间复杂度),我在这里简单介绍下DINIC,DINIC首先就是利用广搜把要处理的图进行层次化,然后在层次化后的图上进行深搜,每次深搜都可以尝试跑出一条可达路径,然后在可达路径上减去当前路径的最大流量加到总的流量上,但是要注意一点就是DINIC并不是贪心,DINIC的核心是反向弧,反向弧不是为了优化,而是为了保证算法的正确性...,把每次深搜之后的值加在一起就是最大流了。 简单介绍二分匹配(匈牙利) 举个例子,给你n个男生和n个女生,然后每个女生都有自己喜欢的男生(可能不止一个),然后他们要一起坐过山车,每个女生都要求要和自己喜欢的男生一起坐过山车,问最多可以有多少人坐上过山车。问题中只设计到男和女,所有可以直接抽象成二分图,这个地方不解释,然后问题就转化成了二分图之间的最大匹配问题,而匈牙利可以直接求这样的问题,匈牙利的大体思路是进行谦让原则,每个人尝试和自己喜欢的人匹配,如果自己喜欢的人已经匹配上,那么就看看于自己喜欢的那个人能不能换别人,然后把这个人让给自己,就这样一层一层的谦让,如果是在不行,那么第一层的那个人就不能匹配上了。 DINIC——匈牙利 上面

文档评论(0)

1亿VIP精品文档

相关文档