开始复习算法,对原来一知半解的基本知识需要慢慢弄懂,其中包括P相关的基本概念(包括P/NP/NPC/NP hard等),从各处看到很多介绍,讲的很多很全面,但都是文字描述,即使耐心看完看懂,但如果长时间不用仍很容易忘记。所以本文用一种图形方法,抽象表达这些概念之间的关系,首先先概要介绍各自概念,然后用图形表示它们之间的关系。
一、相关概念
P: 能在多项式时间内解决的问题
NP: 不能在多项式时间内解决或不确定能不能在多项式时间内解决,但能在多项式时间验证的问题
NPC: NP完全问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的NP问题,即解决了此NPC问题,所有NP问题也都得到解决。
NP hard:NP难问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的问题(不一定是NP问题)。
二、四者联系的图形表示
将四种问题用集合表示,它们的关系图1所示。
图1 P NP NPC NPhard关系的图形表示
说明:
1. P问题属于NP问题,NPC问题属于NP问题。
2. NPC问题同时属于NP hard问题,是NP与NPhard的交集。