算法概论 8.22

       a,对图G每个节点用DFS加上分支记录方法,如果发现有边指向分支已经到达过的点,则将该边删除。最后就能得到一个DAG,删除的边的集合则为E`。每个节点要运算的复杂度为O(n),对所有的n个节点进行操作,可知这个算法是O(n^2)的复杂度,这个算法是我随便说的,可能有更好的方法,但是证明了存在多项式时间的算法,所以FAS是NP问题。

       b,图G的每一条边都会至少在G~中生成一个长度为 4的环。在图G~中,如果要形成一个环,必然含有形如(wi,wi),(wi`,wj),(wj`,wi),的边。设G有大小为b的顶点覆盖C,对C内每个顶点ci,对应的G`中的(ci,ci`)都删掉,则没有任何的环包含任何一个ci,因为ci没有出边。同样的,没有任何的环包含任意一个ci`,因为ci`没有入边。所以,可以排除掉所有的ci和ci`,即此时将所有ci和ci`删除也不影响G`的环数。而由于wi是顶点覆盖,删除掉所有ci和ci`,将不再存在形如(wi`,wj),(wj`,wi)的边,因此无法构成环。所以,证明b题目为真命题,如果G中有大小为b的顶点覆盖,则G`中存在大小为b的feedback arcset。

       c,首先,设G生成G`这种规则为f,显然G`的环数大于等于G的环数,因为G`的环数>=E-1,G的环数<E-1。

设G`有一大小为b的feedback arc set C,则C中任一边形式必然为(wi`,wj),(wj`,wi),(wi`,wi)之中的一种。将C中每一个形式为这样的元素e的其中一个端点对应的G中的wi删掉,并把删去的wi归入集合C,则剩下的图设为G0再按规则f生成G``,此时G``为G`的子图。G``必然是没有环的,因为G`没有环,而G``是G`的子图。所以,由开头提到的f的性质,由于G``的环数=0,所以G0的环数=0,所以C是G的一个大小为b的顶点覆盖。所以题目c得证。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值