最小路径覆盖(转)
来源:互联网 发布:mac win10 声卡驱动 编辑:程序博客网 时间:2024/05/21 19:36
转自 http://hi.baidu.com/oksbqoyifkbfirq/item/ebfe96c8a85f7844a9ba94b0
在一个PXP的有向图中,路径覆盖就是在图中找一些路经,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的每个顶点一次且仅一次);如果不考虑图中存在回路,那么每每条路径就是一个弱连通子集.
由上面可以得出:
1.一个单独的顶点是一条路径;
2.如果存在一路径p1,p2,......pk,其中p1 为起点,pk为终点,那么在覆盖图中,顶点p1,p2,......pk不再与其它的顶点之间存在有向边.
最小路径覆盖就是找出最小的路径条数,使之成为P的一个路径覆盖.
路径覆盖与二分图匹配的关系:
最小路径覆盖=|P|-最大匹配数;
其中最大匹配数的求法是把P中的每个顶点pi分成两个顶点pi'与pi'',如果在p中存在一条pi到pj的边,那么在二分图P'中就有一条连接pi'与pj''的无向边;这里pi' 就是p中pi的出边,pj''就是p中pj 的一条入边;
对于公式:最小路径覆盖=|P|-最大匹配数;可以这么来理解;
如果匹配数为零,那么P中不存在有向边,于是显然有:
最小路径覆盖=|P|-最大匹配数=|P|-0=|P|;即P的最小路径覆盖数为|P|;
P'中不在于匹配边时,路径覆盖数为|P|;
如果在P'中增加一条匹配边pi'-->pj'',那么在图P的路径覆盖中就存在一条由pi连接pj的边,也就是说pi与pj 在一条路径上,于是路径覆盖数就可以减少一个;
如此继续增加匹配边,每增加一条,路径覆盖数就减少一条;直到匹配边不能继续增加时,路径覆盖数也不能再减少了,此时就有了前面的公式;但是这里只 是说话了每条匹配边对应于路径覆盖中的一条路径上的一条连接两个点之间的有向边;下面来说明一个路径覆盖中的每条连接两个顶点之间的有向边对应于一条匹配 边;
与前面类似,对于路径覆盖中的每条连接两个顶点之间的每条有向边pi--->pj,我们可以在匹配图中对应做一条连接pi'与pj''的边, 显然这样做出来图的是一个匹配图(这一点用反证法很容易证明,如果得到的图不是一个匹配图,那么这个图中必定存在这样两条边 pi'---pj'' 及 pi' ----pk'',(j!=k),那么在路径覆盖图中就存在了两条边pi-->pj, pi--->pk ,那边从pi出发的路径就不止一条了,这与路径覆盖图是矛盾的;还有另外一种情况就是存在pi'---pj'',pk'---pj'',这种情况也类似可证);
至此,就说明了匹配边与路径覆盖图中连接两顶点之间边的一一对应关系,那么也就说明了前面的公式成立!
- 最小路径覆盖(转)
- 最小路径覆盖问题(最小路径覆盖)
- 最小路径覆盖(转载)
- hdoj4160_Dolls(最小路径覆盖)
- poj1548(最小路径覆盖)
- hdu1151(最小路径覆盖)
- 最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)
- 【最小路径覆盖】最小路径覆盖
- 最小路径覆盖(最小边覆盖&&最小点覆盖)hdu1150
- ZOJ 1525(最小路径覆盖)
- HDU 1350(最小路径覆盖)
- PKU 3216(最小路径覆盖 + floyd)
- hdu 3991(最小路径覆盖)
- 最小点路径覆盖(匈牙利算法)
- hdu 3335 (最小路径覆盖)
- poj2594(最小路径覆盖+floyd)
- poj(3216)最小路径覆盖
- hdu 3335(最小路径覆盖)
- Hadoop新手学习指导
- 【python下使用OpenCV实现计算机视觉读书笔记1】输入输出
- MYSQL服务器my.cnf配置文档详解
- JS获得字符串字节数
- VMWare+Ubuntu13.10无法发现创建共享文件夹问题
- 最小路径覆盖(转)
- Android自定义控件打jar包
- net命令
- android 调试工具ADB的使用
- html 样式笔记
- 如何debug vip故障问题及处理因为网关缺失导致VIP资源无法启动
- Struts2 URL参数 s:if 判断应用
- C++ 写文件操作
- [Unity3d]关于红米2和小米2等安卓手机为什么不支持 ETC2压缩模式