計算複雑性理論
NPがPと同じかどうかという疑問(換言すれば、非決定的な多項式時間で解くことのできる問題は決定的な多項式時間でも解くことができるか)は、理論計算機科学における最重要問題の1つであり、その解決が様々な意味を持っている。同じであった場合に都合が悪い影響として、暗号理論の多くがNPの困難さに依存しているため、Pと同じであることが判明すると使い物にならなくなるのである。しかし、よい影響も多々あり、様々な重要な問題に効率的な解法があることが明らかとなることが重要である。例えば、オペレーションズリサーチにおける整数計画問題、物流合理化、生物学におけるタンパク質構造予測、純粋数学の定理を計算機で効率的に形式的に証明する可能性などがある。クレイ数学研究所は2000年に、この問題を最初に解いた人に100万ドルを支払うと発表した。
この問題を考えるにあたって重要となるのは、NP完全の概念である。NP完全な問題はNPの中では最もPから遠い問題ということになる。P = NPが証明されていないため、ある問題をNP完全と判明している問題に還元できるということは、その問題の多項式時間の解法が未知であることを示している。逆に、すべての NP問題はNP完全問題に還元できるため、NP完全問題の多項式時間の解法を発見すれば、P = NPが証明される。(一方、たとえP = NPが成立しても、NP困難な問題は多項式時間で解けるとは限らない。理由はNP困難のページを参照のこと)
一方、問題 IS-COMPOSITE は与えられた整数が素数でない(すなわち合成数である)ことを決定する。IS-PRIME が「はい」を返すなら、IS-COMPOSITE は「いいえ」を返す。逆も成り立つ。したがって IS-COMPOSITE は IS-PRIME の補問題であり、同様に IS-PRIME は IS-COMPOSITE の補問題である。
ある問題の解を求める計算量とその補問題の解を求める計算量は同じであるが、問題のあるインスタンスについて「はい」となる証拠を与えられて、その証拠が正しいかを判定する計算量は同じとは限らない。例えば、IS-COMPOSITE問題で、ある整数について、証拠として素因子を一つ与えられれば、除算を行うことで検算することができる。しかし、IS-PRIME問題では、どのような証拠を与えればよいかは、しばらくの間、自明ではなかった。補問題を区別することは、後述する複雑性クラスNPとco-NPなどで重要となる。
計算複雑性理論の重要な成果の1つとして、ある難しい問題があったとき(それがいかに大量の時間資源や空間資源を要したとしても)、それよりさらに難しい問題が必ず存在するという事実がある。時間計算量については時間階層定理(英語版)によってこれが証明されている。同様に領域階層定理(英語版)も導かれる。