最大匹配=最小覆盖点证明。。。。orz,研究了一个晚上。

     今天晚上本来很瞌睡的,由于明天要讲题(天哪,抽到了我),其中有一道题目是用到了“最大匹配=最小覆盖点”的思想。怕明天哪个会问道为什么,所以我研究了一个晚上,在无语的帮助下稍微懂了。

    废话不多说了,下面是我的证明:

   这个Matrix67证明的很清楚了:http://www.matrix67.com/blog/archives/116  我只是发表一些自己的看法,同时巩固一下。

 首先我们求的最大匹配中显然每个边是会对对应两个点,我们要想找到其中的那么几个点覆盖到全部的边(即最小覆盖点)。那么,我们现在的任务就是找到这些在匹配上的点,且证明它可以覆盖所有的边。

 如图:

       我们根据增广路线的性质,从右边的没有匹配的点出发,根据“没有匹配,匹配,没有匹配……”这样的边走下去,直到没有边可走,每个拐角我们都用“”标记,那么左边已经标记的,和右边没有标记的点,肯定和匹配的边是一一对应的,因为:如果右边没有标记的点应该标记,那么由它出发的边应该是没有匹配的,而事实不是这样。,同样,要是左边标记了点应该没有标记的话,那么由他出发的边应该是没有匹配的,这样也是不存在的。。,就是说,一个匹配的边不可能左边标记了,右边没有标记了。   

   现在已经找到匹配上的点,现在证明这些点是可以覆盖所有的边的。因为:不可能存在一条边是左边没有标记的,右边标记了的。原因是,如果一条边没有被匹配,那么他的左端点就会被由这条边到达而标记。如果这条变被匹配了,那么他的右端点的标记就会是从左边过来的,左端点会被标记。  

  所以这些点是可以覆盖所有的边的,且这些点与所有匹配边是意义对应的。。。

  覆盖点就是>=最大匹配,所以要求每个匹配边取一个点,那么就是最小覆盖点的数目了。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值