Document

チューリング機械と計算可能性
言語の認識装置として
• 入力アルファベット上の言語Lが、
チューリング機械Mによって
認識できるとき、その言語を
帰納的に加算という。
• Mを用いれば、与えられた文字列が
– Lに属しているとき、
有限時間内にそのことがわかる。
– Lに属していないときは、
Mは止まらないかもしれないので、
そのことはいつまでたっても
わからないかもしれない。
• 以上のような認識が、
計算の限界である。
– チャーチのテーゼ
w∈L
入力文字列w
0 1 1 0 1
チューリング
機械
M
受理or不受理
(or非停止)
w∈L
帰納的に可算 vs. 帰納的
• 入力アルファベット上の言語Lが、
常に停止するチューリング機械
Mによって認識できるとき、
その言語を帰納的いう。
• Mを用いれば、与えられた文字列が
– Lに属しているとき、
有限時間内にそのことがわかる。
– Lに属していないときも、
有限時間内にそのことがわかる。
• 言語Lとその補集合がどちらも
帰納的に可算ならば、
L(およびその補集合)は
帰納的になる。
w∈L
Mへの入力
0 1 1 0 1
チューリング
機械
M
受理or不受理
(常に停止する)
w∈L
関数の実現機構として
• チューリング機械を用いて、
文字列をもらって文字列を返す関数を実現できる。
– 入力文字列をテープ上に書き込み、
チューリング機械を走らせる。
– 停止したら、テープ上の文字列を返す。
• 空白は無視する。
• チューリング機械は止まらないかもしれないので、
いつも出力が得られるとは限らない。
– 部分関数
• このような関数を部分帰納的関数という。
• 常に出力が得られるときは、帰納的関数という。
– チューリング機械が常に止まる場合。
決定性と非決定性
• 計算可能性に関して(言語の認識装置として)、
決定的なチューリング機械と
非決定的なチューリング機械に
能力の差はない。
– 非決定的なチューリング機械が入力文字列を
受理するとは、入力文字列をテープ上に書き込み、
非決定的な動作を適切に選べば、
(受理状態で)停止すること。
– 任意の非決定的なチューリング機械に対して、
同じ言語を受理する決定的なチューリング機械が
存在する。
0 1 1 0 1
チューリング
機械
非決定的な
チューリング機械
M
1 1 1 0 1
0 1 1 0 1
チューリング
機械
チューリング
機械
M
M
1 0 1 0 1
1 1 1 0 1
チューリング
機械
チューリング
機械
M
M
分身を作ると
思えばよい。
分身の一つが
受理すればよい。
万能チューリング機械
Mへの入力
Mのプログラム
Mへの入力
0 1 1 0 1
s c z k q b
0 1 1 0 1
チューリング
機械
M
受理or不受理(or非停止)
万能
チューリング
機械
受理or不受理(or非停止)
万能チューリング機械と停止問題
• 万能チューリング機械は、
任意のチューリング機械Mのプログラムと
Mへの入力に対して、Mをシミュレートできる。
– Mが停止しないときは、
万能チューリング機械も停止しない。
• Mが停止しないときも停止して、
Mの非停止を判定できるような
万能チューリング機械は存在するか。
– プログラムが停止しないことを、
プログラムを実行せずに判定できるか?
• 答えは否。
チューリング機械と計算量
言語の認識の計算量
• 帰納的な言語を考える。
– それを受理するチューリング機械は、
任意の文字列に対して必ず停止する。
• 入力文字列に対して、
チューリング機械が停止するまでの
動作ステップ数が、入力文字列の長さに
どのように依存するか。
– 特に、入力文字列の長さnの「多項式」に比例した
ステップ数(以下)で停止するか。
例えば、n2, n3...
P:多項式時間
• 帰納的な言語に対して、
それを受理する決定的な(常に停止する)
チューリング機械で、
停止するまでの動作ステップ数が
入力文字列の長さの多項式で
抑えられるものが存在するとき、
その言語をPという。
– もしくは、そのような言語のクラス(集まり)を
Pという。
NP:非決定的多項式時間
• 帰納的な言語に対して、
それを受理する非決定的な(常に停止する)
チューリング機械で、
停止するまでの動作ステップ数が
入力文字列の長さの多項式で
抑えられるものが存在するとき、
その言語をNPという。
• 動作の選び方をうまく選んだとき、
受理状態で停止するならば、
その入力文字列は受理されたとする。
PとNP
• もちろん、PはNPに含まれる。
– Pである言語はNPでもある。
• PとNPは等しいか?
– クレイ数学研究所が2000年に提示した
七つのミレニアム問題の一つ
(賞金100万ドル)
NP完全
• PとNPが等しいかどうかはわからないが、
PとNPが等しくないと仮定すると、
NP-Pに含まれることを示せる問題がある。
– NPのうちで最も難しい問題
– NPに属する任意の問題は、
多項式ステップでそのような問題に還元できる。
– そのような問題をNP完全という。
– 逆に、NP完全の問題がPに属するならば、
NPに属するすべての問題がPに属する。
NP完全問題
• ハミルトン経路問題
– グラフにハミルトン経路が存在するか。
• 指定された点から始まり指定された点に終わり、
すべての点をちょうど一回ずつ訪れる経路があるか。
• グラフを適当なアルファベットの文字列として表現する。
• ブール式の充足可能性問題
– ブール式は充足可能か。
• ブール変数の真偽を適当に定めると
ブール式全体を真にできるか。
• ブール式を適当なアルファベットの文字列として表現する。
関数の計算量
• ハミルトン経路問題はNP完全である。
• では、与えられたグラフに対して
ハミルトン経路を求める問題は
どのくらい難しいか?
– もし、ハミルトン経路が
決定的なチューリング機械により、
多項式時間で計算できるならば、
ハミルトン経路があるかどうかが
多項式時間で判定できてしまう。
– 従って、ハミルトン経路の計算も、
多項式ではできないはず。
PSPACE:多項式空間
• 帰納的な言語を認識するチューリング機械が、
停止するまでに、入力文字列の長さの
多項式で抑えられる空間(テープの量)しか
消費しないとき、その言語をPSPACEという。
• 決定的でも非決定的でも差はない。
• NPを含む。
(真に含むかどうかはわからない。)
P⊆NP⊆PSPACE