算法分析与设计:NP完全问题

8.12 The k-SPANNING TREE problem is the following.

Input: An undirected graph G=(V,E)
Output:A spanning tree of G in which each node has degree <= k,if such a tree exits.
Show that for any k>= 2:
(a) k-SPANNING TREE is a search problem.
(b) k-SPANNING TREE is NP-complete.
解:a) k-生成树是指给定一个无向图,找到一个生成树,其中每个节点的度数不超过k。验证任意给定的正解S是否是k生成树的过程,只需要用图搜索算法对S进行搜索,假设通过搜索可以知道S中所有顶点,不包含环,且每个点的度数不超过K,那么S就是K的生成树。同时因k 生成树问题可在多项式时间内验证的,可以通过访问每一个候选的生成树来判定是否存在k生成树,因此是搜索问题。
b) 由于题目的hint已经给出思路,即寻找k-SPANING TREE问题和RUDRATA PATH问题的关系。若k = 2 ,若k生成树存在,则该生成树中每个顶点度数小于等于2,则该生成树是G的一条最长路,且路径P包含了G的所有顶点, k 生成树是一条 Rudrata 路径。而寻找一个 Rudrata路径的搜索是一个NP完全问题。当 k ≥ 2时,寻找K-生成树的问题可以转换为寻找是否存在Rudrata 路径的问题,也就是转换为NP完全问题,因此k生成树是 NP-完全问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值