要证明一个问题是NPC,通常是归约到一个相似且已知是NPC的问题上。卡普的二十一个NP-完全问题罗列了21个NPC问题,推进了NP,NPC问题以及P是否等于NP的研究。
往期文章:
例子
- Feedback Vertex Set
问题:给定图 G G G,正整数 k k k,我们是否可以从图 G G G移除不超过 k k k个点,使得 G G G中不存在回路。
证明:可以从顶点覆盖问题归约。对于某一个图 G G G,对于每一条边,我们可以将该条边替换成一个三角形,那么图 G G G就转化成了一个包含了很多回路的图 G ′ G' G′。那么找到一个覆盖 G ′ G' G′所有回路的点集,就可以找到原图的一个顶点覆盖。
解释:该问题需要注意的是,当把图 G G G转化成图 G ′ G' G′,其实就是给每条边 e e e外面增加一个点