顶点覆盖问题的NP完全证明和近似算法求解.doc

顶点覆盖问题的NP完全证明和近似算法求解.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
顶点覆盖问题的NP完全证明和顶点覆盖优化问题的近似算法 顶点覆盖(VERTEX COVER) 给定一个无向图和一个正整数,若存在,,使得对任意的,都有或,则称为图的一个大小为的顶点覆盖。 顶点覆盖问题的描述 判定问题:VERTEX COVER 输 入:无向图,正整数 问 题:中是否存在一个大小为的顶点覆盖,这是一个NP完全问题 顶点覆盖的NP完全性证明 NP性的证明: 对给定的无向图,若顶点是图的一个大小为顶点的覆盖,则可以构造一个确定性的算法,以多项式的时间验证,及对所有的,是否有或。因此顶点覆盖问题是一个NP问题。 完全性的证明: 我们已知团集(CLIQUE)问题是一个NP完全问题,若团集问题归约于顶点覆盖问题,即,则顶点覆盖问题就是一个NP完全问题。 我们可以利用无向图的补图来说明这个问题。若向图,则的补图,其中。例如,图1(b)是图1(a)的补图。在图1(a)中有一个大小为3的团集,在图1(b)中,则有一个大小为2的顶点覆盖。显然可以在多项式时间里构造图的补图。因此,只要证明图有一个大小为的团集,当且仅当它的补图有一个大小为的顶点覆盖。 (a) (b) 图1无向图及补图 必要性:如果中有一个大小为的团集,则它具有一个大小为个顶点的完全子图,令这个顶点集合为。令是中的任意一条边,则。所以中必有一个顶点不属于,即中必有一个顶点属于,也就是边被覆盖。因为是中的任意一条边,因此,中的边都被覆盖,所以,是的一个大小为的顶点覆盖。 充分性:如果中有一个大小为的顶点覆盖,令这个顶点覆盖为,是中的任意一条边,则和至少有一个顶点属于。因此,对于任意的顶点和,若并且,则必然有,即是中一个大小为的的团集。 综上所述,团集(CLIQUE)问题归约于顶点覆盖(VERTEX COVER)问题,即。所以,顶点覆盖问题是一个NP完全问题。 顶点覆盖优化问题的近似算法 上面已经证得,顶点覆盖问题是一个NP完全问题,因此,没有一个确定性的多项式时间算法来解它。顶点覆盖的优化问题是找出图中的最小顶点覆盖。为了用近似算法解决这个问题,假设顶点用编号,并用下面的邻接表来存放顶点与顶点之间的关联边。 /*邻接表结点的数据结构*/ /*邻接结点的编号*/ /*下一个邻接顶点*/ /*图的邻接表头结点*/ 则顶点覆盖问题的近似算法的求解步骤可以叙述如下: (1)顶点的初始编号; (2)如果顶点存在关联边,转到步骤(3),否则,转到步骤(5); (3)令关联边为,把顶点和顶点登记到顶点覆盖中; (4)删去与顶点和顶点关联的所有边; (5),如果,转到步骤(2),否则,算法结束。 算法的实现过程叙述如下: 算法名称:顶点覆盖优化问题的近似算法; 输 入:无向图的邻接表,顶点个数为; 输 出:图的顶点覆盖,中的顶点个数为。 /*如果存在关联边*/ /*则选取边的顶点*/ /*删去与有关联的所有边*/ /*删去与关联的所有边*/ 算法说明: 这个算法用数组来存放顶点覆盖中的各个顶点,用变量来存放数组中的顶点个数。开始时,把变量初始化为0,把顶点的编号初始化为0。然后从顶点开始,如果顶点存在着关联边,就把顶点及其一个邻接点登记到数组中。并删去与顶点和顶点的所有关联边。其中,第11行的函数用来删去顶点与顶点相邻接的登记项;第17行函数用来删去顶点与顶点相邻接的登记项;第14行和20行分别把顶点和顶点的邻接表头结点的链指针置为空,从而分别删去这两个顶点与其他顶点相邻接的所有登记项。经过这样的处理,就把顶点及顶点的所有关联边删去。这种处理一直进行,直到图中的所有边都被删去为止。最后,在数组中存放着图的顶点覆盖中的各个顶点编号,变量表示数组中登记的顶点个数。 图2表示了这种处理过程。图2(a)表示图的初始状态;图2(b)表示选择边,把关联边的顶点及放进数组中,并删去顶点及顶点相关联的所有边,这里删去边,及;图2(c)表示选择边,把关联该边的顶点和顶点放进

文档评论(0)

annylsq + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档