课后练习8.15:最大公共子图问题

来源:互联网 发布:面包车拉货选什么软件 编辑:程序博客网 时间:2024/06/03 21:08

课后练习8.15:

证明最大公共子图问题是NP-完全问题

根据题意,即提供两个图G1和G2和预算b,要求分别去掉一些顶点后两个图都得到结点数至少为b的子图,且两个子图完全相同。

首先,若存在最大公共子图,并已知其顶点,可以在多项式时间内检验是否正确,因此它是NP问题。下面证明其为NP-难问题。已知求一个图的具有b个顶点的独立集的问题是NP-完全问题,现在从这个问题归约到最大公共子图问题,若成功,则其为NP-难问题。

令两个图G1=(V, E),G2=(V, ∅),两图的顶点集相同,但是G2的边集为空。

存在结点数为b的最大公共子图,即存在b个顶点的独立集:反证法,假设这b个结点不属于独立集,即其中存在两个结点之间有边,那么在G1的子图中这两点也有边相连。但是G2的任意两点都没有边相连,其子图中也不会有相连的顶点,矛盾。故存在b个结点产生的独立集。

存在b个顶点的独立集,即存在结点数为b的最大公共子图:G1和G2都取这b个点构成它们的子图,因为G1有独立集,则这b个顶点间没有边相连;G2中边集为空集;因此只要两个子图没有边而有相同的b个顶点,这两个子图就是相同的,也即存在结点数为b的公共子图。

综上可知,图的独立集问题可以归约到最大公共子图问题,所以最大公共子图问题是NP难问题,又因为是NP问题,即其也是NP-完全问题。

原创粉丝点击