このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。
この講義では計算量理論の中でも特に reducibility (還元可能性)について議論します。
還元可能性はふたつの問題の難しさを比較する手法です。 例えば、問題 A と B が両方とも解き方が分かっていないときに、このふたつ の難しさを比較できるでしょうか? これらの比較を行うのに、還元可能性を使います。または、一般には「帰着」 という言葉も使われます。 ある問題A とある問題 B に対して、もし B を解くプログラムがあったと仮定 した時、 A をそのプログラムを用いて解くことができることを示せれば、「A は B に帰着できる」と言います。これは本当に B が解ける必要はありません。 例えば、A として「 x は偶数である」という問題を考え、B として「 x の最 下位の桁の数は偶数である」という問題だとします。 この時、 x の最下位の桁が偶数であれば、 x 自体も偶数ですので、 A は B に帰着できます。
この「A は B に帰着できる」という考え方は問題の難しさにどう影響するの でしょうか? もし B が解ければ、 A が解けるということは、 A は B 程難しくない ことを意味します。 また、 A を解くことができないことが示せれば、 B も解くことができません。 この意味でも B は A 以上に難しいことがわかります。 一方、「A は B に帰着でき」て、さらに「B は C に帰着できる」場合、帰着 の条件にもよりますが、「A は C に帰着できる」ことが示せます。 これは帰着という考え方が推移律を持つことを意味します。 以上のことから、帰着というのは一般の比較と同じ性質を持ちます。 つまり、「A ≤ B」と書いてなんの違和感もないということです。
帰着自体は手法を延べるため、一般的にはアルゴリズムになります。 つまり、問題を比較する一手法に、帰着させるアルゴリズムを与えるという方 法があるということです。
講義は二つの部分に分かれます。 前半は計算量理論周辺と暗号理論を取り上げ、オーソドックスな還元可能性に ついての結果を紹介します。 一方、後半は坂本の結果である、分散アルゴリズムの初期条件に関する情報量 の還元可能性による評価を紹介します。
ある関数が計算可能(recursive 帰納的)とは、その関 数を計算するプログラムが作れ、どんな入力に対しても必ず停止し、答えを出 すことを言います(全射)。
Hartley Rogers, Jr. "Theory of Recursive Functions and Effective Computability" the MIT Press(1987).
本章では自然数の集合(0を含む)のみを扱います。
x と y のpairing functionを で表します。 この関数は非負整数の組をひとつの非負整数に写像します(cf. p.64)。 これを繰り返すと、複数の数列をひとつの数に変換することができます。 したがって、記号でかかれたコンピュータプログラム全体もひとつの数で表す こともできます。 このような記述に対応する数を Gödel 数と呼びます。
Gödel 数 x のプログラムに y を入力したときに計算される値。 プログラムが止まらないときは値は未定義(↑)となる。また、停止するこ とを ↓ で表す。
あるいは y をパラメータとして見たときはプログラム x が計算する半関数 (止まらないときは未定義)。
が recursive enumerable かつ (A の補集合)も recursive enumerable なら A は recursive
(逆は自明)
を計算するプログラムの Gödel 数 を p、 を計算するプログラムの Gödel 数 を q とする。 この時、入力 y に対して、 p と q を解釈し、 と を1 ステップずつ交互に計算するプログラムを作ることができる。 このようなプログラムを実行すると、どちらか一方だけは確実に止まり、もう 一方は止まらない。 pの方が止まったら 1、 q の方が止まったら 0 を出力すると、 cA(y) を計算したことになる。 さらに、どのような入力に対しても必ず停止するので、これは recursive。 よって、 A は recursive set。
K は recursive enumerable であるが、 recursive ではない
まず K が recursive enumerable であることを示す。 入力 x について、 を計算する半関数を とおくと、これはプログラミング可能なので、ある定まった y に対して、 となる y がみつかる。 この の domain は K と一致する。
次に K が recursive でないことを示す。 定理 II より、 が recursive enumerable でないことを示せば良い。 背理法の仮定として、 となる z が存在するとする。 すると、以下のことが成り立つ。
これを同時に満たすことは矛盾になる(対角線論法)。
つまり、「A に含まれるかどうか」が f により「B に含まれるかどうか」に 変換できることを示します。例えば、
と置くと かつ が成り立ちます。
B を解くサブルーチン(関数)があれば A を解くプログラムが作れる時、 (A が B に Turing reducible)と言います。
1-1 recursive function は recursive function なので自明。
入力 x に対して、 f(x) を計算した後、 x∈B をサブルーチンに計算さ せ、結果を出力させれば良いことになります。
以上のことからこの三つの reducibility において、一番条件が厳しいのは 1-1 で、一番緩いのは Turing となります。
これは recursive enumerable set の中で A が一番難しいことを示します。
K0 は 1-complete。 但し、 K0は次で与えられる。
B をある recursive enumerable set とする。すると となる y0 が存在する。 ある x が B に属するか否かは、 がある z step 以内で停止するかどうかを調べれば良い。 これは を調べれば良い。 ここで、入力 x から を求めるのは recursive で 1-1 で計算できるので、 が成り立つ。(Q.E.D.)
K は 1-complete
を示せば良い。 そのために、 1-1 で K0の元を K の元に一対一で対応付ける recursive function を構成する。 証明は p.82 参照
は upper semi lattice
lattice とはこの場合任意のふたつの元 a, b に対して以下のことが成り立つ ことである。
このうち、最初の性質のみ成り立つのが upper semi lattice である。