1 many-one 帰着
定義 1.1. 言語A⊆Σ∗、B⊆Γ∗に対し、全計算可能関数f:Σ∗→Γ∗が
任意の x∈Σ∗ についてx∈A⟺f(x)∈Bを満たすとする。このとき、AはBに many-one 帰着 (many-one reduction) するといい、A≤mBと書く。関数fを帰着関数という。
「全計算可能」という条件は、x∈/Aの場合を含む全ての入力でf(x)の値を有限時間で得られることを要求する。入力によって変換が停止しない部分関数では、帰着先の判定器を呼び出す前に計算が止まるため、帰着にならない。
例 1.2 (偶数長の言語から奇数長の言語への帰着).Σ={0,1}上の言語を
A={x∈Σ∗:∣x∣ は偶数},B={x∈Σ∗:∣x∣ は奇数}とし、f(x)=x1と定める。∣f(x)∣=∣x∣+1なので、∣x∣が偶数であることと∣f(x)∣が奇数であることは同値であり、任意のx∈Σ∗についてx∈A⟺f(x)∈Bが成り立つ。fは、入力の右端の直後にある最初の空白へ1を書き、ヘッドを位置0へ戻して停止する TM によって計算され、全ての入力で高々2(∣x∣+1)段で停止する。したがってfは全計算可能であり、A≤mBである。
例えばx=01はAに属し、f(01)=011はBに属する。x=0はAに属さず、f(0)=01もBに属さない。AもBも長さの偶奇を数えるだけで決定することができるため、この帰着は決定不能性を導く道具にはならないが、定義の三つの要素(変換の全域性、計算可能性、および所属の同値)を有限の手順で確かめることができる。
命題 1.3.A≤mBかつBが決定可能ならば、Aは決定可能である。
証明.fをAからBへの帰着関数、DBをBの決定器とする。入力xに対し、最初にf(x)を計算し、次にDB(f(x))を実行して同じ受理または拒否を返す機械DAを構成する。fは全計算可能であり、DBは全入力で停止するため、DAも全入力で停止する。さらに、
DA(x) が受理する⟺f(x)∈B⟺x∈Aである。したがってDAはAの決定器である。▨
命題 1.4.A≤mBかつBが認識可能ならば、Aは認識可能である。
証明.fを帰着関数、RBをBの認識器とする。入力xから有限時間でf(x)を計算し、RB(f(x))を模倣する機械RAを構成する。x∈Aならばf(x)∈BなのでRBは有限時間で受理し、RAも受理する。x∈/Aならばf(x)∈/BなのでRBは受理せず、RAも受理しない。後者の場合にRAが拒否するか停止しないかは、認識器の定義の範囲内である。ゆえにRAはAを認識する。▨
系 1.5.A≤mBのとき、次の二条件が成り立つ。
- Aが決定可能でなければ、Bは決定可能でない。
- Aが認識可能でなければ、Bは認識可能でない。
帰着の矢印を逆にすると、これらの結論は得られない。A≤mBは、Bを決定する手続きからAを決定する手続きを得ることができるという向きを表す。したがって、決定不能性を証明するときは、決定可能でないことが既知の問題をAに、決定可能でないことを示したい対象をBに置く。
2 受理言語の非空性への帰着
定義 2.1 (空性言語と非空性言語). TMMが受理する言語をL(M)とする。正しい機械符号だけを対象として
EMPTYTMNONEMPTYTM={⟨M⟩:L(M)=∅},={⟨M⟩:L(M)=∅}と定める。これらをそれぞれ 空性言語 (emptiness language) および 非空性言語 (nonemptiness language) という。不正な符号はどちらの言語にも含めない。
停止問題の入力⟨M,w⟩から、入力を無視してM(w)を模倣する新しい機械NM,wを作る。M(w)が停止した場合には全ての入力を受理し、停止しない場合には一つも受理しないように構成すると、停止性がL(NM,w)の非空性へ変換される。
定理 2.2.
HALTTM≤mNONEMPTYTMである。したがって、NONEMPTYTMは決定可能ではない。
証明. 帰着関数fを構成する。入力xが正しい組符号でない場合には、どの入力も拒否する固定 TMN∅の符号を出力する。N∅の入力アルファベットは{0,1}とする。正しい組符号x=⟨M,w⟩の場合には、入力アルファベットを{0,1}に固定した、次の動作をする TMNM,wの符号を出力する。
入力y∈{0,1}∗を受け取る。yの内容を使用せず、万能機械によってM(w)を模倣する。M(w)が受理または拒否で停止した時点で受理する。
有限文字列⟨M,w⟩をNM,wの遷移表に埋め込み、固定された万能機械の遷移表と組み合わせる操作は、有限文字列に対する機械的な構文変換である。具体的には、万能機械の固定部分を複写し、符号⟨M,w⟩を書き出す有限個の初期化状態をその前に付ければよい。この変換は入力符号の長さに比例する有限回の複写で終了する。不正な符号の場合の出力も固定されている。したがって、fは全入力で停止する全計算可能関数である。
x=⟨M,w⟩が正しい符号である場合を考える。M(w)が停止すれば、NM,wは任意の入力yでその停止を確認して受理する。したがってL(NM,w)={0,1}∗であり、特に非空である。M(w)が停止しなければ、NM,wは全ての入力で模倣を続け、一つも受理しない。したがってL(NM,w)=∅である。不正なxは停止言語に属さず、f(x)=⟨N∅⟩も非空性言語に属さない。ゆえに全ての文字列xについて
x∈HALTTM⟺f(x)∈NONEMPTYTMが成り立つ。
§E15.5 定理 4.1によりHALTTMは決定可能ではない。上の帰着と系 1.5により、NONEMPTYTMも決定可能ではない。▨
命題 2.3.NONEMPTYTMは認識可能である。
証明. 入力が正しい機械符号⟨M⟩でなければ拒否する。正しい場合には、全ての文字列をs0,s1,…と長さ優先順に並べ、段階tでM(s0),…,M(st)をそれぞれt段まで模倣する。いずれかの計算が受理状態へ到達したら受理する。
L(M)=∅ならば、あるsiと有限段数rが存在してM(si)はr段で受理する。t≥max{i,r}の段階でその受理が発見される。L(M)=∅ならばどの模倣も受理に到達しないため、この認識器も受理しない。したがってNONEMPTYTMは認識可能である。▨
定理 2.4.EMPTYTMは決定可能ではない。
証明.EMPTYTMの決定器DEが存在すると仮定する。NONEMPTYTMの決定器DNを次のように構成する。入力xが正しい TM の符号でなければ拒否する。正しい符号ならDE(x)を実行し、DEが受理した場合には拒否し、拒否した場合には受理する。構文検査とDEはともに停止するのでDNは全入力で停止し、正しい符号⟨M⟩についてL(M)=∅の場合に限って受理する。構成した機械DNはNONEMPTYTMの決定器であり、定理 2.2による非空性の決定不能性に反する。したがってEMPTYTMは決定可能ではない。▨
この例では、帰着関数はM(w)を実際に実行して停止性を調べているのではない。M(w)を後で実行する機械の記述を有限時間で生成している。この「実行結果を求めること」と「実行を組み込んだプログラムを生成すること」の違いが、帰着関数の全域性を保証する。
3 Rice の定理
NONEMPTYTMとEMPTYTMの決定不能性は、どちらも機械の記述ではなく受理言語L(M)だけに関する問いである。この形の問いが個別の事情によらず決定不能になることを、一般の定理として証明する。
定義 3.1. 認識可能言語だけからなる言語のクラスPを、認識可能言語の意味的性質 (semantic property) という。正しい機械符号のうち、受理言語がPに属するものの全体を
LP={⟨M⟩:L(M)∈P}と書く。不正な符号はLPに含めない。Pが非自明 (nontrivial) であるとは、Pに属する認識可能言語と、Pに属さない認識可能言語の両方が存在することをいう。
Pが自明である場合、LPは正しい符号の全体または空集合であり、どちらも有限の構文検査によって決定することができる。したがって、決定不能性の主張には非自明性の仮定が要る。
定理 3.2 (Rice の定理).Pを認識可能言語の非自明な意味的性質とする。このとき、LPは決定可能ではない。
証明. まず∅∈/Pの場合を考える。非自明性によりL1∈Pとなる認識可能言語L1が存在するので、その認識器M1を一つ固定する。HALTTM≤mLPを示す帰着関数fを構成する。
入力xが正しい組符号でない場合には、どの入力も拒否する固定 TMN∅の符号を出力する。正しい組符号x=⟨M,w⟩の場合には、M1と同じ入力アルファベットをもち、次の動作をする TMNM,wの符号を出力する。
入力yを受け取り、区切り記号の右側の作業領域へ退避する。作業領域で、万能機械によってM(w)を模倣する。M(w)が受理または拒否で停止した場合には、作業領域を消去してyを左端へ戻し、固定したM1をyの上で模倣し、M1(y)が受理した場合に限り受理する。
定理 2.2の証明と同じく、この符号の生成は、万能機械とM1の固定した遷移表を複写し、定数文字列⟨M,w⟩を書き出す有限個の初期化状態を付け加える構文変換である。したがってfは全入力で停止する全計算可能関数である。
正しい符号x=⟨M,w⟩について所属の同値を確かめる。M(w)が停止する場合には、NM,wは任意の入力yで有限時間後に模倣を終え、以後はM1(y)と同じ受理の判断をする。したがってL(NM,w)=L(M1)=L1∈Pであり、f(x)∈LPである。M(w)が停止しない場合には、NM,wはどの入力でも模倣局面から先へ進まず、一つも受理しない。したがってL(NM,w)=∅∈/Pであり、f(x)∈/LPである。不正なxはHALTTMに属さず、L(N∅)=∅∈/Pなのでf(x)=⟨N∅⟩∈/LPである。ゆえに全ての文字列xについて
x∈HALTTM⟺f(x)∈LPが成り立ち、HALTTM≤mLPである。§E15.5 定理 4.1と系 1.5により、LPは決定可能ではない。
次に∅∈Pの場合を考える。認識可能言語のうちPに属さないもの全体をP′とする。Pの非自明性からP′も非自明な意味的性質であり、∅∈Pから∅∈/P′である。前段によりLP′は決定可能ではない。ここでLPの決定器Dが存在すると仮定する。入力xが正しい機械符号でなければ拒否し、正しい符号ならD(x)を実行して受理と拒否を交換する機械D′を構成する。構文検査とDは全入力で停止するので、D′も全入力で停止する。正しい符号⟨M⟩については、L(M)が認識可能であるため、L(M)∈P′であることとL(M)∈/Pであることは同値である。したがってD′はLP′の決定器になり、前段の結論に反する。ゆえにこの場合にもLPは決定可能ではない。▨
証明. 空でない認識可能言語の全体をP=∅とする。全入力を受理する TM が存在するため{0,1}∗∈P=∅であり、どの入力も拒否する TM が存在するため∅は認識可能かつP=∅に属さない。したがってP=∅は非自明な意味的性質であり、その定義からLP=∅=NONEMPTYTMである。定理 3.2によりNONEMPTYTMは決定可能ではない。同様に、P=∅={∅}も非自明な意味的性質であり、LP=∅=EMPTYTMである。ゆえにEMPTYTMも決定可能ではない。▨
定理 3.2 (Rice の定理)の証明は、定理 2.2の機械NM,wの「停止を確認したら全ての入力を受理する」という動作を、「停止を確認したら固定した認識器M1に従う」へ置き換えたものである。個別の帰着で用いた構成が、そのまま一般の定理の証明になる。
4 演習
問題 4.1.
- A≤mBかつAが決定可能であるという二条件だけから、Bが決定可能であるという結論を得ることができない理由を説明せよ。
- 定理 2.2のNM,wを「M(w)が受理した場合だけ受理する」と変更すると、どの言語からの帰着になるかを答えよ。
- 帰着関数fがM(w)の停止を待ってから二種類の固定機械の一方を出力する方法では、
many-one 帰着にならない理由を説明せよ。
- 言語A⊆Σ∗、B⊆Γ∗についてA≤mBならば、Σ∗∖A≤mΓ∗∖Bであることを、同じ帰着関数を用いて証明せよ。
- 空語を受理言語に含む認識可能言語の全体Pε={L:L は認識可能かつ ε∈L}に定理 3.2を適用し、{⟨M⟩:ε∈L(M)}が決定可能でないことを導け。
解答 (演習の要点).
- 保存則は帰着先Bの解法を帰着元Aへ戻すものであり、Aの解法からBの全入力を判定する方法は与えない。
- M(w)の受理性を問う言語ATM={⟨M,w⟩:M が w を受理する}からNONEMPTYTMへの帰着になる。
- M(w)が停止しない入力でf自身も停止せず、帰着関数に必要な全域性を失う。
- 任意のx∈Σ∗についてx∈Σ∗∖A⟺x∈/A⟺f(x)∈/B⟺f(x)∈Γ∗∖Bである。
- {0,1}∗は空語を含む認識可能言語であり、∅は空語を含まない認識可能言語であるから、Pεは非自明な意味的性質である。したがってLPε={⟨M⟩:ε∈L(M)}は決定可能ではない。
▨