この記事では、数値を含む判定問題に関係する 強 NP 完全性(強 NP 困難性)、弱 NP 完全性(弱 NP 困難性)、擬多項式時間アルゴリズム、弱多項式時間アルゴリズム、強多項式時間アルゴリズム について、次の論文の内容に沿って紹介する。
[1] M. R. Garey and D. S. Johnson. "Strong" NP-Completeness Results: Motivation, Examples, and Implications. J. ACM 25 (1978) pp. 499–508.
DOI:10.1145/322077.322090
1. はじめに
初めに、この記事で対象となる「数値を含む判定問題」の例として 2 分割問題 を紹介する [2]。
- 入力:
個の自然数の集合
- 出力: Yes か No
- 条件:
となる
が存在する
Yes
となる
が存在しない
No
例)入力 :
で等分割可能なので Yes を出力
* ここでは数値と言ったら非負整数を表す (整数や有理数も、適当な符号化をすれば自然数として扱える)(2025年12月30日修正・追記) 入力として与えられる数値が非負整数ではなく有理数の場合は問題が難しくなる場合があるので注意。
2 分割問題は NP 完全であることが知られており、また、動的計画法を用いた 時間アルゴリズムが存在する(ここで
)。数値
を標準的な 2 進数で符号化するとサイズは
となるので、
時間は指数時間となり嬉しくない。ただし、入力の
が
の多項式で制限されるような場合だと
時間は多項式時間となり嬉しい。このような 入力に現れる数値が制限された問題 の計算複雑さがどのようになるのかをここでは見ていく。
2. 抽象問題と符号化方式
計算クラス P と NP や、 NP完全性、NP困難性 や 多項式時間多対一帰着(Karp 帰着) は形式言語のレベルで定義された概念である。
上で定義した 2 分割問題などを実際に解くには、まず形式言語のレベルで考えるためにインスタンスをチューリング機械の入力アルファベット上の文字列に変換する必要がある。この変換方式を 符号化方式(encoding scheme)と呼び、符号化する前の問題形式のことを 抽象問題(abstract problem) 、符号化後の問題形式のことを 具象問題(concrete problem) と呼ぶ。今後の説明のために抽象問題 をインスタンスの集合
と Yes インスタンスの集合
の組
で表す。
1 つの抽象問題に対する符号化方式は一般にたくさんあるので具象問題もたくさんある。抽象問題の符号化方式を具体的に構成する代わりに、時間計算量などに関係する部分だけに注目して次の 2 つの関数で符号化方式を特徴付ける。
例えば 2 分割問題の場合だと、各インスタンス に対して、
または
、
または
などがある。
普通、抽象問題から具象問題への変換では 合理的で(reasonable) 簡潔な(concise) 符号化方式を選ぶと仮定してよい。例えば数値は 2 進数で符号化をする。ただ「合理的」で「簡潔な」という用語は曖昧で定義することが難しいので基本的にはアルゴリズム設計者に委ねられるが、ここでは と
は次を満たすものだけを考えることにする(読み飛ばしても問題ない)。
ここまでの議論を丁寧に解説した本に [3, pp. 872-918] がある。
3. 数値問題における三種類の多項式時間
数値問題は私たちがイメージする通りの数値を含む問題で、それを定式化すると次の通りになる。また繰り返しになるが、今後現れる問題は抽象問題を対象としており、具体的な「合理的で簡潔な符号化方式」の代わりに と
を用いて議論する。
2 分割問題は数値問題である。例えば 、
とすると、
は
よりも指数的に大きいのでどの多項式でも抑えることができない。
次に、数値問題で重要となる三種類の多項式時間(擬多項式・弱・強)を定義する。
例)入力数値が自然数
弱多項式と強多項式はいずれも通常の意味での「多項式時間」である。速さの直感は次の通りである。
最初に紹介した 2 分割問題に対する 時間の動的計画法は擬多項式時間アルゴリズムである。前に述べた通り、合理的で簡潔な符号化方式だと
時間は指数時間となるが、入力の数値が組合せ構造のサイズ(ここでは
)の多項式に抑えられる問題だとみなすと弱多項式時間アルゴリズムとなる。
強多項式時間は「数値演算を桁数に依らず定数時間で扱う」という理想化に基づく。
線形計画問題の弱多項式時間アルゴリズムは知られているが、有名な未解決問題として、線形計画問題に強多項式時間アルゴリズムが存在するのか?がある(詳しくは 藤重悟:「線形計画法の最近の発展 線形計画問題の強多項式解法について」 を参照)。
4. 数値問題の NP 完全性
数値問題には様々な多項式時間の定義があることを見てきた。定義から明らかに
が成り立つ。そこで計算複雑さの観点から、P NP の仮定の下で、
が気になる。1 番目は 弱 NP 完全性(weakly NP-complete) と 弱 NP 困難性(weakly NP-hard) であり、これは普通の意味での NP 完全性(NP 困難性)に対応する。
2 番目は今から定義する強 NP 完全性に対応する概念である。その前に今まで何度か述べてきた「入力の数値が入力サイズの多項式に抑えられる問題」を定義する。
次に主題である強 NP 困難性を定義する。
感覚的には、問題が強 NP 困難であるとき、数値が入力サイズの多項式に制限されていても難しいということを意味している。下図は横軸を問題の難しさ(difficulty)としたときの直感的な関係を表している [5, Lecture 2 Scribe Notes p. 3]。
2 分割問題や 0-1 ナップサック問題は弱 NP 完全で擬多項式時間アルゴリズムが存在する問題である。
一方、3 分割問題や箱詰め問題などは強 NP 完全なので、P NP の仮定の下で擬多項式時間アルゴリズムが存在しない問題である。

4.2. 強 NP 困難性の証明方法
問題 が強 NP 困難であることを示すひとつの方法を紹介する。
の符号化方式を
とする。
普通の NP 完全性の証明と違うところは 3-2 と 3-3 である。
3-2 では、 は強 NP 困難なので、ある多項式
が存在して
と仮定してよい。すなわち、Karp 帰着
の計算時間は
と
の多項式であることを示せばよい。
3-3 は普通の NP 完全性の証明にはない部分である。 ということは、
を示せばよい。このことは、
の出力、すなわち問題
のインスタンス
に含まれる数値がインスタンスのサイズの多項式で抑えられていることを意味する。また、
は多項式時間なので出力の長さも
と
の多項式に抑えられる。したがって、3-3 は
が
と
の多項式で抑えられることを示せばよい。
4.3. 1 進符号化を用いた帰着との関係
[2] や [5] では様々な問題の弱 NP 完全性や強 NP 完全性を証明しているので参考にするとよい。ただし、次のような入力数値の 1 進符号化(unary encoding) を用いてる点が異なることに注意する必要がある。
が強 NP 困難であることを証明するのに、強 NP 困難として知られている問題
から次を示す。
数値 を符号化するとき、1 進符号化のサイズは
で、2 進符号化のサイズは
であることを思い出すと、「入力数値が1 進符号化された問題」というのは「数値が入力サイズの多項式に抑えられる問題」であり問題
に他ならない。したがって示すことは本質的には同じことである。
[1] の 5 章では 1 進符号化で定義していない理由を述べている。また [5] では Erik Demaine の 1 進符号化へのコメントがあるので両方を下に抜粋する。
5. 観察
[1] の OBSERVATION に対する簡単な証明を与える。
次の 2 つの観察では、数値を含まない問題では三種類の多項式の区別がないことを述べている。特に Obs. 3 では、数値問題ではない NP 完全(NP 困難)な問題を強 NP 完全(強 NP 困難)とみなして、強 NP 困難性の帰着に用いることができることを表している。
- 例)強 NP 困難性の証明:「数値問題ではない NP 完全な問題(クリーク問題)」から「数値問題(1 | prec |
)」(詳しい証明)
- 例)NP 完全性の証明:「強 NP 完全な数値問題(3 分割問題)」から「数値を含まない問題(グラフの最小
等分割問題)」(詳しい証明)
最後に擬多項式時間帰着を紹介するが、実際に使われているかは分からないので読み飛ばしてもらっても構わない。
判定問題
(a) 任意の
(b)
(c) 多項式
(d) 多項式
条件 (c) は帰着後の への入力が小さくならないことを言っており、次の OBSERVATION 5 を証明するのに使う。
参考文献
- [2] 岡本吉央:2019 年度講義 離散最適化基礎論 『離散最適化における計算困難性』 (2025年12月7日アクセス):特に 第8回 と 第9回 を参照
- [3] T.コルメン,C.ライザーソン,R.リベスト,C.シュタイン(浅野哲夫・岩野和生・梅尾博司・山下雅史・和田幸一 訳):『アルゴリズムイントロダクション 第3版 総合版:世界標準MIT教科書』.近代科学社,2013.
- [4] Michael Sipser(阿部正幸・植田広樹・藤岡淳・渡辺治 訳;太田和夫・田中圭介 監訳):『計算理論の基礎[原著第2版]3. 複雑さの理論』.共立出版,2008.
- [5] Erik Demaine: Algorithmic Lower Bounds: Fun With Hardness Proofs. MIT 6.890 Lecture Notes, 2014. URL(2025年12月7日アクセス)
- [6] Dominik Wojtczak, On Strong NP-Completeness of Rational Problems. Computer Science - Theory and Applications (CSR 2018), Lecture Notes in Computer Science 10846 (2018) 308--320. DOI:10.1007/978-3-319-90530-3_26. arXiv:1802.09465.(arXiv 版を参照)
強 NP 困難性の 1 進符号化を使う帰着がよく分からなかったので記事に書いたら長くなった。たぶん元論文読んだほうが早い気がする。ただ、 の部分は見過ごしやすいので書いてよかった。
5 章の「擬多項式時間アルゴリズムが存在しないなら、FPTAS を持たない(条件ある)」は面白いけど長くなるので省略。
(2025年12月30日追記)数値が非負整数と有理数で問題の難しさが変わることを知らなかったので反省。[6] では有理数版 UNBOUNDED SUBSET SUM 問題を 3-CNF から帰着している。帰着で構成する有理数が多項式サイズだが、それらの組合せの指数関数的な違いを表現できるのが面白かった。[6] では有理数重み版の問題が強 NP 完全だが FPTAS を持つことも証明している。これは [1] の強 NP 困難ならば FPTAS を持たないに一見矛盾しているように思えるが、[1] では目的関数値を非負整数に制限しているので矛盾していない。