《算法概论》习题8.19证明

来源:互联网 发布:winebottler mac 下载 编辑:程序博客网 时间:2024/06/01 10:52

题目:

所谓风筝图是这样的,其顶点数为偶数(比如2n),且其中的n个顶点构成了一个团,剩余的n个顶点则由一条称为“尾巴”的路径连接,尾巴的某个端点与团中一个顶点相连。给定一个图和目标g,风筝图问题要求该图的一个包含2g个顶点的风筝子图。请证明该问题是NP-完全的。

证明:

我们可以将团问题归约到风筝图问题。团问题的目标是求出某图的一个包含g个顶点的完全子图。

现设无向图G = (V, E),其中|V| ≥ 3。按以下方法构造图G’,在图G中新增|V|个新顶点,每个新顶点分别与原顶点相连,使得新顶点和原顶点形成一一映射的关系,边数共增加|V|。然后再新增|V| - 1个顶点,连成一条路径,将该路径的其中一个端点和最初新增的|V|个顶点相连,得到图G'。图示如下:


构建图G'后,即可将团问题归约到风筝图问题。

1.在图G'中,原属于图G的顶点都有一条长度为g的“尾巴”,若图G'中不存在包含2g个顶点的风筝子图,则意味着原属于图G中的顶点不能构成规模为g的团,即图G中不存在规模为g的团。

2.若图G'中存在包含2g个顶点的风筝子图,则G'中存在规模为g的团,而这个团必定由原属于G中的顶点和边构成,因此图G中存在规模为g的团。

综上所述,图G'中存在包含2g个顶点的风筝子图,当且仅当图G中存在规模为g的团。因为团问题是NP完全问题,所以风筝图问题也是NP完全问题,完成规约。


原创粉丝点击