開始復習算法,對原來一知半解的基本知識需要慢慢弄懂,其中包括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的交集。