算法概率8.12 k生成树问题

来源:互联网 发布:预约挂号系统php源码 编辑:程序博客网 时间:2024/06/05 02:50
8.12 k-生成树问题

输入:无向图G=(V,E),
输出:G的一个生成树,其中所有点度数不超过k——如果这样的树存在。 
给定K大于等于2。
题目a:k-生成树问题是一个搜索问题。 
题目b:k-生成树问题是NP-完全的。(提示:由k=2开始,考虑与Rudrata路径问题的关联)

a:验证任意给定解S是否是k生成树的过程,只需要用图搜索算法对S进行搜索,如果S中包含所有顶点、不包含环、且每个点度数不超过k,则S是k生成树。显然使用图搜索的算法能在多项式时间内解决,所以k-生成树问题是一个搜索问题,同时也说明这是一个NP问题。

b:由于k-生成树是一个NP问题,已证。所以要证它是一个NP-Complete问题只需找到一个NP-Complete的问题可以归约到K-生成树问题。根据提示,可以将Rudrata路径问题归约到k-生成树问题。
当k=2时,k-生成树问题就是要找到一棵包含图中所有点且每点度数不大于2的生成树,显然就是一条Rudrata路径,所以寻找Rudrata路径的问题其实就是一个特殊的k-生成树问题,其中k=2。而k>2时,只要找到一棵2-生成树,就已经找到了k-生成树。所以对每个图寻找Rudrata路径问题都可以通过寻找k-生成树的算法来解决。也就是说Rudrata路径问题可以归约为k-生成树问题。综上得证k-生成树问题是NP-完全的。
0 0
原创粉丝点击