93
1 参考書 「自然計算へのいざない」 近代科学社 実は自然は計算をしている! 自然界は、私たちが考える以上に様々な手法で計算をしている。 本書は、その計算手法アルゴリズムを読み解き、新たな情報 処理を確立しようという最先端の試みを、数式を極力避けて平易に 解説した。わくわくする最先端の科学・技術に興味のある学部生、大 学院生、研究者には必携の書である。

実は自然は計算をしている! - Kobayashi Laboratory · (2)「計算理論とオートマトン言語理論」 丸岡章 サイエンス社. ★入門的(1)では記述していない計算量理論が多少詳しい。

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

1

参考書

「自然計算へのいざない」 近代科学社

実は自然は計算をしている!

自然界は、私たちが考える以上に様々な手法で計算をしている。本書は、その計算手法―アルゴリズム―を読み解き、新たな情報

処理を確立しようという最先端の試みを、数式を極力避けて平易に解説した。わくわくする最先端の科学・技術に興味のある学部生、大学院生、研究者には必携の書である。

計算理論

● 計算とは何か?について考えるための理論

計算モデル: 計算を行っていると考えられる実体の情報処理過程を数理的にモデル化したもの

● 計算モデルを構築し,その計算モデルの計算能力を解析することにより,計算に対する理解を深めるための理論

計算する実体

計算モデル

計算可能な問題

計算不能な問題数理モデル化抽象化

全ての問題

次のスライド参照

2

さまざまな計算モデル(1)

チューリング機械 :

句構造文法 (形式文法) :

(部分)帰納的関数 :

ラムダ計算 :

自然言語処理の基礎,プログラミング言語の文法記述

現在のコンピュータの理論モデル

Lisp, Haskell などの関数型プログラミング言語の基礎

オートマトン : 現在のコンピュータの理論モデル,さまざまな分野への応用

Lisp, Haskell などの関数型プログラミング言語の基礎

3

さまざまな計算モデル(2)

ニューラルネットワーク :

ペトリネット :

進化計算 :

量子計算 :

分子コンピューティング :

分散並列システムの基礎

脳神経科学の基礎,パターンマッチングへの応用

最適化アルゴリズムへの応用

量子力学に基づく計算モデル

分子反応に基づく計算モデル

セルオートマトン :細胞による計算,生命現象の基礎数理モデル,並列システム・自己組織化の基礎

光コンピューティング : 光の照射・反射を利用した計算モデル

ビリヤード計算 : 剛体の弾性衝突現象を利用した計算モデル

4

世界で最も強力な7つのアルゴリズム

計算できないことがあることを知ることの重要性

1.検索エンジンのインデキシング2.ページランキング3.公開鍵暗号法4.誤り訂正符号5.パターン認識6.データ圧縮7.データベース8.デジタル署名9.計算不可能性

ジョン マコーミック英ディッキンソン大学コンピュータ・サイエンス教授。

ヒューレット・パッカードとマイクロソフトの研究所に勤めたのち現職

5

コンピュータには答えられない問題もある

ポストの対応問題

入力: 記号を2つ以上含むアルファベットΣ上の記号列の対の有限集合 P = { (x1,y1), ……., (xn, yn) }.

出力: xi xi ・・・ xi = yi yi ・・・ yi を満たす整数の有限列i1, i2, …, ik が存在するなら YES,存在しないなら NO.

1 2 k 1 2 k

6

どのように研究は進められるのか?

計算理論の研究の流れ

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

4 計算モデルを自然現象で再実装することにより実際問題への応用を試みたり,計算の可能性を探求する.

3 計算モデルを分析し普遍化する.(計算理論の構築)

2 その観察に基づいて計算モデルを構築する.

1 計算をしていると考えられる実体(自然現象,生体現象等を含む)を計算の観点から観察する.

自然現象や生体現象などから構築される計算理論自然計算の理論 : 7

例えば,量子計算の場合

1 自然現象を計算の観点から観察する

2 その観察に基づいて計算モデルを構築する,

3 計算モデルを分析し普遍化する

重ね合わせ,不確定性原理,エンタングルメント,観測

量子計算量理論の発展

量子並列計算の計算モデル

4 計算モデルを自然現象で再実装することにより実際問題への応用を試みたり,計算の可能性を探求する.

スケーラブル量子計算機の実現に向けて...

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

量子力学の問題を計算量的な枠組みで再検討する... 8

例えば,進化計算の場合

1 自然現象を計算の観点から観察する

2 その観察に基づいて計算モデルを構築する,

3 計算モデルを分析し普遍化する

進化の過程の数理モデル化,自然淘汰,遺伝子の突然変異や組み換え

遺伝的アルゴリズムの理論の構築(遺伝子への符号化の方法,組み換えの方法,選択の方法,等)

遺伝的アルゴリズム(進化を最適化の過程ととらえる)

4 計算モデルを自然現象で再実装することにより実際問題への応用を試みたり,計算の可能性を探求する.

進化計算の試験管内での実現,In Vitro Selection

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

生物の進化の最適化理論の立場からの理解...9

オートマトンと計算論

計算モデル 計算とは何か?について考えるための理論

模倣するというアイデアに基づいて計算の意味を与える

コンピュータの限界を知る10

計算理論の研究の流れ(再掲)

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

4 計算モデルを自然現象で再実装することにより,実際問題への応用を試みたり,計算の可能性を探求する.

3 計算モデルを分析し普遍化する.(計算理論の構築)

2 その観察に基づいて計算モデルを構築する.

1 計算をしていると考えられる実体(自然現象,生体現象等を含む)を計算の観点から観察する.

自然現象や生体現象などから構築される計算理論自然計算の理論 :

11

オートマトン理論の場合

1 計算をしていると考えられる実体(自然現象,生体現象等を含む)を計算の観点から観察する.

「人間の思考過程」を計算の観点から観察する.

ドアの開閉を行うドアボーイの思考過程

「外界からの刺激に応じて状態を変化させ動作する」 12

オートマトン理論の場合

「外界からの刺激に応じて状態を変化させ動作する」

オートマトンの計算モデルの構築

2 その観察に基づいて計算モデルを構築する.

q1

0/0

q2

1/12/0

0/2

1/0

q1: ドアが閉じている状態

q2: ドアが開いている状態

0: 客がいない

1: 客が向ってくる

2: 客がドアの傍にいる

入力

0: 何もしない

1: ドアを開ける

2: ドアを閉める

出力

状態

13

オートマトン理論の場合

「本講義の内容」 = 普遍化することにより得られた理論

3 計算モデルを分析し普遍化する.(計算理論の構築)

4 計算モデルを自然現象で再実装することにより,実際問題への応用を試みたり,計算の可能性を探求する.

電子回路によって実装して、さまざまな情報システムの構築に応用する

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

人間の思考過程に対する考察:状態遷移のみのオートマトンでは人間の思考能力のすべてを理解できない 14

100円,100円

品物、おつり50円

自動販売機の設計への応用

15

100円,50円

品物、おつりなし

自動販売機の設計への応用

16

自動販売機の設計への応用

50円50円おつり

50円

100円

50円

100円

100円

おつりなし

1 2

3 4

1: 合計0円が入力された状況

2: 合計50円が入力された状況

3: 合計100円が入力された状況

4: 合計150円が入力された状況

5: 合計200円が入力された状況

/ φ

/ φ/ φ

/ 品物

/ 品物+50円

/ 品物

(例1)

17

オートマトンとは

状態を持つ機械 コンピュータに限らずさまざなな計算システムの

計算モデルとして用いられる コンピュータ科学で最も重要な計算モデルの1つ

応用範囲

計算機システムの解析と設計,文字列検索,音声認識(確率オートマトン),離散事象システム(データベースシステムなど)の解析,遺伝子の配列解析(確率オートマトン),生物の発生モデル(セルオートマトン),数値シミュレーション(セルオートマトン),等

18

文字列検索への応用

1 2 43

b

a

a

a

ab

b

b

aba を検索するオートマトン

a a b b a b a b a a b a

状態4に到達

(例2)

19

遺伝子配列解析への応用ヘモグロビン遺伝子を同定するための確率オートマトン(イメージ)

A T G C C G A A C C G C G G C C C ……..

Del Del

Ins

Del Del Del Del

Ins Ins Ins Ins Ins

各記号を確率的に生成

記号を生成しない状態

記号を挿入する状態遺伝子を探索

ゲノムデータベース20

有限の記憶を持つシステムの計算能力

フリップフロップ回路

有限オートマトン(ムーア機械,ミーリー機械なども含む)

有限の記憶を持つシステムの計算能力はどのようなもの?

数理モデル

21

教科書

(1) 「オートマトン・言語理論」 富田悦治,横森貴 森北出版

参考書

(2) 「計算理論とオートマトン言語理論」 丸岡章 サイエンス社★入門的 (1)では記述していない計算量理論が多少詳しい。

★平易な記述,例も豊富

(3) 「形式言語とオートマトン」 守屋悦朗 サイエンス社★入門的なテキストに見えるが、実は内容はかなり理論的。

入門的なテキストで勉強してから読むのが良い。

22

参考書

「言語理論とオートマトン」 J.E. ホップクロフト,J.D. ウルマン(野崎他訳) サイエンス社

古典的?名著(かなり理論的な書き方になっている)

「オートマトン・言語理論・計算論 I,II」J.E. ホップクロフト,J.D. ウルマン(野崎他訳) サイエンス社

「計算論とオートマトン理論」 A.サローマ(野崎他訳) サイエンス社

「オートマトンの理論」 小林孝次郎,高橋正子 共立出版

23

準備

: 有限アルファベット (記号の有限集合)

上の語 : の要素の有限列 w=a1a2… an (ai∈Σ)w の長さ lg(w) = n

Σ* = { w | w はΣ上の語 } (Σのスター閉包)

(例3)

空語 : 長さ0の語 → εであらわす

注意24

決定性有限オートマトンDeterministic Finite Automaton

有限の状態を持つ受理機械

Moore 型順序機械の特殊な場合ともみなせる

略して DFA

25

Def. 決定性有限オートマトン

M = (Q, Σ, δ, p0 , F)

Q : 状態の有限集合Σ : 入力アルファベットδ : Q X Σ→ Q (状態遷移関数)p0 : 初期状態F : 最終状態の集合

26

オートマトンの例

p q

0

1

1

0

Σ= {0,1}Q = { p, q, r } p0 = p : 初期状態は p

δ(p,0) = p, δ(p,1) = q,δ(q,0) = p, δ(q,1) = r,δ(r,0) = p, δ(r,1) = r

F = { r } r1

0

(例6)

11で終わる語を受理する入力列 0 1 0 1 1状態列 p p q p q r

27

状態遷移関数の拡張

δ:QXΣ→Q を 以下の定義により

:QXΣ*→Q に拡張する

(例6)では、

はδの複数回の遷移を表す

以後、 をδで代用して表す 28

正則言語

(例6)では、

オートマトン M が受理する言語:L(M) = { w ∈ Σ* | δ(p0, w) ∈ F }

言語 L が正則であるとは、あるDFA Mによって、L = L(M) と表せることである。

L(M)={ x11 | x ∈Σ* }

正則言語 L は一般に複数の DFA で表現できる。

aa

a

aaaM1 M2

L(M1)=L(M2)={a2n+1 | n ≧0 } (例7)

M2 は冗長な状態を持つ!

p0 p1

p2p329

計算システムの計算能力を解析する

30

計算システムの普遍的な理論

1. すべての入力に対するM1とM2の動作を比較する.

2. お互いの計算システムの振る舞いを模倣する

計算システムM1と計算システムM2の計算能力を比較する2つの方法

M1の動作をM2で模倣する

M2の動作をM1で模倣する

DFA と DFA の計算能力を比較するには?

全て入力に対して2つのDFAを動かして、計算能力を比較する。

普遍的な理論の構築へ

有限の記憶を持つシステムの計算能力を解析する普遍的な理論の構築へ向けて(1)

31

状態の同値性

Def. 状態 p と q (p,q∈ Q) が同値である

(例7)における p0 と p2 , および p1 と p3 は同値である。

def

32

状態の同値性の調べ方�p,q から同じ入力によって遷移する状態対が最終状態であるか非最終状態であるかに関して同じ振る舞いをするかどうかを調べる。

判断基準(1) の場合→同値でない(2) 既に調べた状態対、またはその入れ替えた対に

到達したときは、そこで探索終了(3) 同じ状態からなる対に到達したときは、そこで探索終了(4) (1)の基準を満たさずに全探索が終了した場合

→ 同値である�

状態対の可能性は高々|Q|2 通りしかないので、必ず探索は終了する。 33

0 p q

r

0 10

10

1

1

(3) (3)

q と r は同値!(4)

p と q は同値でない(1)

p と r は同値でない(1)

q と r を同じ状態にして簡約化(状態数を減らすこと)ができるはず

p q, r

0 10

1

34

0

s

q0

0

0

1

(2) (2)

r と s は同値!(4)

p と q は同値でない(1)

p と r は同値でない(1)

r と s を同じ状態にして簡約化できるはず

r

p1 1

11

0

0 (1)

q0

r

p1

0,1

0,1 35

DFAの等価性

Def. 2つのDFA Mi = (Qi, Σi, δi, p0i, Fi ) (i=1,2)が等価である

⇔ L(M1) = L(M2)

M1 と M2 が等価(必要十分)

⇔ M1 と M2 をあわせたオートマトンにおける状態p0 と p0 が同値

def

1 2

36

0

s

q01

0

1

p と t は同値!(4)

r

p1

11

0

u

t1

0,1

0

0

M1

M2

0 1 0 1

0 1 (2) (2) (2)

(2) (2)

M1 と M2 は等価

37

補足

状態集合 q ⊆ Q に対して,

δ(q,a) = { p’ | δ(p,a) = p’, p ∈ q }

と定義する。

一般に広義の有限オートマトンでは、状態遷移関数はすべての入力記号について定義されていなくてもよい。(δとして部分関数も許す)

38

非決定性有限オートマトンNon-deterministic Finite Automaton ある状態に対し,同じ入力での遷移先が

2箇所以上存在する。

略して NFA

p q 1

r

1

39

Def. 非決定性有限オートマトンM = (Q, Σ, δ, p0 , F)

Q : 状態の有限集合Σ : 入力アルファベットδ : Q X Σ→ 2Q (状態遷移関数)p0 : 初期状態F : 最終状態の集合

DFA における : p から w で到達できる状態

NFA における : p から w で到達できる状態の集合

NFA M が受理する言語:L(M) = { w ∈ Σ* | δ(p0, w) ∩ F ≠ }

以後、 をδで代用して表す

[δの拡張]( )

40

NFAの例

q r

1

1

s0,1

0

(例8)

p 1

M = ( Q,Σ,δ,p0,F )

L(M) = { w110n | w∈{0,1}*, n≧0 } となるオートマトンは? DFA より NFA の方が作りやすい。

0,1

0

δ(p,0) = { p }, δ(p,1) = { p,q }, δ(q,0) = { s }, δ(q,1) = { r },δ(r,0) = { r }, δ(r,1) = { s }, δ(s,0) = { s }, δ(s,1) = { s } .

Q = { p, q, r, s }, F = { r }, p0 = p,

41

q r

1

1

s0,1

0

(例8)における遷移の例

p 1M

0,1

0

δ(p, 110) を求めるには?

δ(p,1) = { p,q } δ(p,11) = δ(p,1) ∪ δ(q,1) = { p,q,r }

δ(p,110) = δ(p,0) ∪ δ(q,0) ∪ δ(r,0) = { p,r,s }

δ(p,110)∩F ≠ なので、110 ∈ L(M) 42

NFA と DFA の計算能力を比較するには?

「それぞれの計算モデルでもう一方のモデルの計算過程を模倣する」ことにより、計算能力を比較する。

普遍的な理論の構築へ

有限の記憶を持つシステムの計算能力を解析する普遍的な理論の構築へ向けて

43

遅くて複雑になるかもしれないけれど真似ることができる

コンピュータA コンピュータB

コンピュータBでコンピュータAを模倣する.

45

長くて複雑になるかもしれないけれど定義することができる

言語 A 言語 B

電話 音声を電気信号に変換して離れた場所に送り、再び音声に戻して通話する機械

テレビ 電波を利用して、物体の移動する様子を時々刻々と送り、および、その電波を受けて表示するための装置

他の模倣の例

言語Aと言語Bの能力は等しい 46

時間はかかるかもしれないけれど,日常生活の基本は親を真似て学習する親 子供

他の模倣の例

人間Aと人間Bの能力は等しい?

動作や作業にかかる時間は無視したとしても,創造性を発揮する分野には差がある

「コンピュータや機械」と「人間」の大きな違いの1つ

創造性のあるなし 47

組み合わせ回路の計算能力を比較する際の模倣

どの構成要素を使ってコンピュータを作ればよいのだろう?

48

組み合わせ回路の計算能力を比較する際の模倣

ANDをNANDで実現する

ORをNORで実現する

模倣の例:

49

プログラミング言語で別のプログラミング言語を実装する

CでC++を実装する。

C++でJavaを実装する。

模倣の例:

Lisp で Prolog を実装する。

結果として、プログラミング言語間の計算能力の比較をしている。

50

DFAとNFAの受理能力

Th. DFA と NFA の受理能力は等しい。

NFA M1=(Q, Σ, δ1, p0, F1) から L(M2)=L(M1) となるような DFA M2 を構成する。

[部分集合構成法]

M2 = ( 2Q, Σ, δ2, q0, F2)q0 = { p0 }, F2 = { q | q ⊆ Q, q ∩ F1 ≠ }δ2(q, a) = δ1(q,a) ( = { p’ | δ1(p,a) = p’, p ∈ q } )

δ1(p0,x) ∩ F1 ≠ δ2(q0,x) ∈ F2

必要十分が成り立つ。

状態数が爆発的に増大する。

51

部分集合構成法の適用例(例8)の NFA を DFA に変換する

q r

1

1

s0,1

0

p 1M1

0,1

0

52

部分集合構成法の適用例

q r

1

1

s0,1

0

(例8)の NFA を DFA に変換する

p 1M1

0,1

0

53

部分集合構成法の適用例

q r

1

1

s0,1

0

p 1M1

0,1

0

54

部分集合構成法の適用例

q r

1

1

s0,1

0

p 1M1

0,1

0

55

部分集合構成法の適用例

q r

1

1

s0,1

0

p 1M1

0,1

0

56

部分集合構成法の適用例

q r

1

1

s0,1

0

p 1M1

0,1

0

57

部分集合構成法の適用例

q r

1

1

s0,1

0

p 1M1

0,1

0

58

部分集合構成法の適用例

0

q0

M2

0

1q1 q3 q6

q2

q4

q5

0

11

11

0

0

1

0

1

0

59

ε動作を許したNFA

ε動作:入力記号を用いずに状態変化できる

(例9)

p1 p2

2

p0

10

ε ε

{ 0l1m2n | l,m,n ≧0 } を受理する。

ε動作を持たないNFAに変換できるか?

60

ε動作の除去の仕方

ε閉包 : ε-Cl(p) = p からε動作だけで到達できる状態の集合(p も含める)

(例9)では

p1 p2

2

p0

10

ε ε

ε-Cl(p0) = { p0, p1, p2 } ε-Cl(p1) = { p1, p2 }ε-Cl(p2) = { p2 }

61

ε動作の除去の仕方

状態集合 X に対しては,

と定義する。

ε動作を持つNFA M=(Q,Σ,δ,p0,F ) に対し,

M ’ =(Q,Σ,δ’,p0,F ’ ) を構成すればよい。

F ’ =のとき

のとき 62

ε動作の除去の例(例9)では

p1 p2

2

p0

10

ε ε

63

ε動作の除去の例

p1 p2

2

p0

10

ε ε

64

ε動作の除去の例

p1 p2

2

p0

10

ε ε

65

ε動作の除去の例

p1 p2

2

p0

10

0,1 1,2

0,1,2

得られたε動作なしのNFA

66

まとめ

以下のオートマトンの受理能力は等しい。

決定性有限オートマトン非決定性有限オートマトンε動作つき非決定性有限オートマトン

67

Lem. L = { anbn | n ≧ 1 } は正則言語でない。

非正則言語の例

L=L(M) となるDFA M = (Q, Σ, δ, p0, F) が存在したとして矛盾を導く。|Q| = n0 とおく。w=an0bn0 を受理する状況を考える。

p0 pi1 pi2 Pina a a Pin +1

bb p2n ∈ F

最初の n0+1 個の状態の中に同じ状態 pis, pit

(0≦s<t≦n0)が存在するはず。

0 0 0

68

p0 pi1 pina a Pin +1

bb P2n ∈ F

このとき,この2つの状態間の遷移を除去することにより,以下の遷移が得られる。

Pis Pit+1a

pit

=

これは,an0-(t-s)bn0 ∈ L を意味し,L の定義に矛盾する。

0 0 0

69

計算理論の研究の流れ(再掲)

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

4 計算モデルを自然現象で再実装することにより,実際問題への応用を試みたり,計算の可能性を探求する.

3 計算モデルを分析し普遍化する.(計算理論の構築)

2 その観察に基づいて計算モデルを構築する.

1 計算をしていると考えられる実体(自然現象,生体現象等を含む)を計算の観点から観察する.

自然現象や生体現象などから構築される計算理論自然計算の理論 :

70

チューリング機械の場合

1 計算をしていると考えられる実体(自然現象,生体現象等を含む)を計算の観点から観察する.

「紙と鉛筆を使いながら考える人間の思考過程」を計算の観点から観察する.

「外界(紙に書かれた内容も含む)からの刺激に応じて状態を変化させ、紙に記入したり、紙に書かれた内容を修正することを繰り返す。」 71

チューリング機械の場合

2 その観察に基づいて計算モデルを構築する.

♭♭ ♭ a1 a2 an ♭ ♭

有限状態制御部

テープヘッド

両方向無限

72

チューリング機械の場合

「本講義のこれから話す内容」 = 普遍化することにより得られた理論

3 計算モデルを分析し普遍化する.(計算理論の構築)

4 計算モデルを自然現象で再実装することにより,実際問題への応用を試みたり,計算の可能性を探求する.

電子回路によって実装して、コンピュータとして、さまざまな情報システムの構築に応用する

4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す

人間の思考過程に対する考察:状態遷移とテープをもつ計算システムでは、

人間の思考能力のすべてを理解できないのではないだろうか?

状態遷移とテープをもつ計算システムは、計算(可能性)の限界を特徴づける

73

チューリング機械(Turing Machine)Turing Machine (TM) : M = (Q,Γ, Σ, δ, p0, ♭, F )

Q : 状態の有限集合 Γ: テープ記号の有限集合Σ (⊆Γ) : 入出力記号の有限集合δ : 状態遷移関数 p0 (∈Q) : 初期状態♭ : 空白記号 F (⊆Q) : 最終状態の有限集合

♭♭ ♭ a1 a2 an ♭ ♭

有限状態制御部

テープヘッド

w = a1a2・・・an : 入力記号列計算開始時点では、初期状態でテープヘッドは先頭文字 a1 を見る

状態遷移関数に従って動作

両方向無限

74

状態遷移関数δ : Q ×Γ→2Q×Γ×{ L, R }

♭ a1 a2 ai ♭

有限状態制御部

anai+1ai-1

(q,A,L)∈δ(p,ai) のとき

♭ a1 a2 A ♭

有限状態制御部

anai+1ai-1

状態 p

状態 qヘッドが左に1マス動く

75

♭ a1 a2 ai ♭

有限状態制御部

anai+1ai-1

(q,A,R)∈δ(p,ai) のとき

♭ a1 a2 A ♭

有限状態制御部

anai+1ai-1

状態 p

状態 qヘッドが右に1マス動く

76

計算状況

状態 p においてテープには文字列 w = a1a2・・・an が書かれている。ヘッド位置は i である。

1 2 i-1 テープのマス目位置

♭ a1 a2 ai ♭

有限状態制御部

anai+1ai-1

状態 p

C = ( p, a1・・・ai・・・an, i ) ∈ Q ×Γ* × N で表す。77

TMによる計算

C = ( p, a1・・・ai・・・an, i ) ⇒ C’ = ( q, a1・・・ai-1b ai+1・・・an, i+j )

定義

(q,b,X) ∈δ(p,ai) ただし,X=R のとき j=1, X=L のとき j=-1

⇒* : ⇒の反射的推移的閉包

L(M) = { w ∈ Σ* | (p0,w,1) ⇒* (qf, α, i ) , qf ∈ F , かつ 次の計算状況が定義されていない }

TM : M が認識(受理)する言語 L(M)

78

♭♭ ♭ a b a ♭ ♭

有限状態制御部

# ♭ ♭

p0

pa

pb

L

CF

a / (a’,R)

b / (b’,R)

♭ / (a,L)

♭ / (b,L)

a / (a,R) b / (b,R) # / (#,R)

a / (a,R) b / (b,R) # / (#,R)

a / (a,L) b / (b,L) # / (#,L)

a’ / (a’,R) b’ / (b’,R)

# / (#,L)

a’ / (a,L) b’ / (b,L) ♭ / (♭,R)

a’ ab’ ba’ a

a b a

p qa / (b,R)

(q, b,R) ∈δ(p,a)

意味

79

TMが行える典型的な作業(1) 文字列の右シフト

(3) 文字列の書き込み

(4) 文字列の等価性チェック

♭ u a1 a2 an ♭ ♭

♭ u a1 a2 an♭ ♭

(2) 文字列の左シフト

♭ u a1 a2 an ♭ ♭

♭ u a1 a2 ana ♭

♭ u a1 a2 an ♭ ♭w

♭ w # w’ ♭ ♭♭♭♭

w=w’ かどうかをチェックする

80

チューリング機械の変種

♭♭ ♭ a1 a2 an ♭ ♭

有限状態制御部

テープヘッド状態遷移関数に従って動作

片方向無限(1) テープが片方向にのみ無限な TM

(2) 複数のテープを持つ TM (多テープTM)

♭♭ ♭ a1 a2 an ♭ ♭

有限状態制御部

テープヘッド

♭♭ ♭ a1 a2 an ♭ ♭

81

チューリング機械の変種(3) 状態遷移が決定的な TM (決定性 TM )

∀p ∈Q ∀ a ∈ Γ |δ(p,a) | ≦ 1

が成り立つ TM を決定性 TM という。

(1), (2), (3) の変種の TM はすべてオリジナルのTM と計算能力が等しい。

82

片側無限テープTM=両側無限テープTM

a-3a-2 a-1 a0 a1 an ♭ ♭

♭♭ ♭ a0 a1 an ♭ ♭

♭♭ ♭ ¢ a-1 a-n ♭ ♭

片方向無限テープのTMで計算できることは,明らかに両方向無限テープのTMできる。両方向無限テープのTMで計算できることは片方向無限テープのTMでも計算できることを,以下に直感的に示す。

テープの中央で折り返す

以下のように,両側無限テープのTMのテープを中心から左側に無限に

伸びるテープを折り返すことにより,片側無限のテープとみなすことができる。このとき,折り返してできた片側無限のテープの1マスは,上側のトラックと下側のトラックに分けられているものと考える。つまり、片側無限のテープでは,両側無限テープのTMの2つの記号が対になったもの (ai,a-i) が一つの記号とみ

なされる。¢は片側テープの左端のマス目の下トラックに常に存在する特別な記号であり,テープの左端であることを認識するために用いる.

83

a-3a-2 a-1 a0 a1 an ♭ ♭

♭♭ ♭ a0 a1 an ♭ ♭

♭♭ ♭ ¢ a-1 a-n ♭ ♭

有限制御部q1 : a1 (q2, b, L )

有限制御部 (q1, 上) : (a1,x) ( (q2, 上), (b,x), L)

a2

現在の状態

適用する遷移規則

現在の記号

現在の状態

適用する遷移規則

現在の記号

b

b

q2 : a0 (q3, c, L )

c

(q2, 上) : (a0,¢) ( (q3, 下), (c,¢), R)

c

84

多テープTM=1テープTM

A

1テープのTMで計算できることは,明らかに多テープのTMできる。多テープのTMで計算できることは1テープTMでも計算できることを,以下に直感的に示す。

以下のように,k 本のテープを持つTM M1 を考える.この k 本のテープを1本のテープで表現するために,右図のTM M2 ように,2k 個のトラックを持つ1本のテープを構成する。2i - 1番目のトラックは,第 i テープの内容を表し,2i 番目のトラックは,記号 X により第 i テープのヘッドの位置を示す。1テープ TM M2 はヘッドを1つしか持たないので,テープヘッドを左右に移動しながら、M1の各テープの内容を状態に記憶し, M1の遷移規則を模倣して遷移する。

B

C

有限制御部

第 1 テープ

第 2 テープ

第 k テープ

A

B

C

X

X

X

1つのマス目TM M1TM M2 有限制御部

85

非決定性TM=決定性TM決定性TMで計算できることは,明らかに非決定性TMできる。非決定性TMで計算できることは決定性TMでも計算できることを,以下に直感的に示す。

非決定性TM M1 を考える.M1 の非決定度を m = maxp,A | δ(p,A) | と定義する。M1 における長さ n の計算ステップは,整数の列 i1, i2, …, in (∈{1,…,m}*) で表せる。ここで,ij は,第 j ステップで適用された遷移規則を表す。ここで,以下のような 3 つのテープを持つ決定性 TM M2 を構成し,M1 の動作を模倣すること

ができる。第1テープは,入力値を保持するために用い,第2テープは作業用のテープであり,第3テープは {1,…,m} * の要素を短い順に生成するために用いる。

[M2 の動作](1) 第3テープ上で,{1,…m}* の要素を長さの短い順に順次生成する。

(2) 第2テープ上で,第3テープに生成された整数列 i1, …, ik に従って遷移規則を選択しながら,M1 の計算を模倣する。

(3) (2) の模倣において最終状態に入って計算が終了したならば,M2 も最終状態に入り停止する。そうでなければ,(1) に戻って次の整数列を生成しこのプロセスを繰り返す。

有限制御部TM M2

a1 a2 a3 ……. an

86

チャーチの提唱(定立,テーゼ)

計算可能な関数とは,チューリング機械で計算可能な関数と同一視しよう。

ゲーデル: 帰納的関数 (1934年)

チャーチ,クリーネ: ラムダ計算 (1932~1935年)

チューリング,ポスト: チューリング機械 (1936年)

チョムスキー: 句構造文法 (1956年)

ポスト: ポストの正準系 (1943年)

上記の計算モデルすべての計算能力は等しい!

87

万能チューリング機械

♭♭ ♭ a1 a2 an ♭ ♭

有限状態制御部

入力 w = a1・・・an

出力 fM(x)

チューリング機械 M

♭♭ ♭ I(M,w) ♭ ♭

有限状態制御部

出力 fM(x)

万能チューリング機械 Mu

I(M,w) : M の定義(状態集合や遷移規則)と入力 w を 0,1 で符号化したもの

88

ゲーデルの符号化

ゲーデルの符号化は,チューリング機械の定義とその入力を0,1 からなる記号列に符号化する方法を与える。

(板書により説明)

89

決定問題

決定問題 = 答えが Yes または No のいずれかであるような問題

n 変数の多項方程式 f(x1,…,xn)=0 を与えたとき,その方程式が整数解を持つか否かを答えよ。

という問題 Qは決定問題である。

問題 Q

x3+2xy+y2=0 が整数解を持つか否かを答えよ。

問題 Q のインスタンス

決定問題 P の具体的な個々の問題を P のインスタンスという。

90

決定可能性と決定不能性

決定問題 P が決定可能である

あるチューリング機械 M が存在して,P の任意のインスタンスw に対して,M は w を入力として与えらたとき,w の答えを出力して停止する

Def

決定問題 P が決定不能である

問題 P が決定可能でない

Def

91

チューリング機械の停止問題

チューリング機械 M の定義とその入力 w が与えられたとき,M に w を与えたときに M が停止するなら Yes,停止しないならNo と答えよ。

チューリング機械の停止問題

以下の問題をチューリング機械の停止問題という。

対角線論法を使った証明により,チューリング機械の停止問題は決定不能であることが示せる。(板書参照)

92

チューリング機械の停止問題は決定不能である.

チューリング機械の停止問題の決定不能性

証明:停止問題を解くチューリング機械(TM) MH が存在するものとする.このとき,

以下のような TM M* を構成する.

M* は,w を入力として与えられると,w#C(w) を MH に与えて以下のように動作する.(1)MH が YES と答えたとき, M* は無限ループに入って停止しない.(2)MH が NO と答えたとき, M* はすぐに停止する.

この M* に C(M*) を入力として与えると, M* は MH に C(M*)#C(C(M*)) を与える.このとき,以下が成り立つ.

(1)MH が YES と答えたとき,つまり, M* が C(M*) の入力で停止するとき,M* は無限ループに入って停止しない.

(2)MH が NO と答えたとき,つまり, M* が C(M*) の入力で停止しないとき,M* は停止する.

いずれの場合も矛盾である.よって, MH が存在するとした仮定は誤りである.93