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

情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

1

参考書

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

Page 2: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

計算理論

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

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

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

計算

実体

計算

計算可能な問題

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

全ての問題

次のスライド参照

2

Page 3: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

チューリング機械 : 

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

(部分)帰納的関数 :

ラムダ計算 :

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

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

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

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

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

3

Page 4: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

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

ペトリネット :

進化計算 :

量子計算 :

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

分散並列システムの基礎

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

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

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

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

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

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

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

4

Page 5: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

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

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

ジョン マコーミック 英ディッキンソン大学 コンピュータ・サイエンス教授。 ヒューレット・パッカードとマイクロソフトの研究所に勤めたのち現職

5

Page 6: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

ポストの対応問題

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

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

1 2 k 1 2 k

6

Page 7: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

計算理論の研究の流れ

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

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

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

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

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

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

Page 8: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

例えば,量子計算の場合

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

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

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

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

量子計算量理論の発展    

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

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

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

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

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

Page 9: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

例えば,進化計算の場合

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

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

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

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

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

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

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

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

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

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

Page 10: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

オートマトンと計算論

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

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

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

Page 11: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

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

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

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

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

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

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

11

Page 12: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

オートマトン理論の場合

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

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

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

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

Page 13: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

オートマトン理論の場合

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

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

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

q1

0/0

q2

1/1 2/0

0/2

1/0

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

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

0: 客がいない

1: 客が向ってくる

2: 客がドアの傍にいる

入力

0: 何もしない

1: ドアを開ける

2: ドアを閉める

出力

状態

13

Page 14: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

オートマトン理論の場合

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

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

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

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

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

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

Page 15: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

100円,100円

自動販売機 150円の品物を販売

品物、おつり50円

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

15

Page 16: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

100円,50円

自動販売機 150円の品物を販売

品物、おつりなし

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

16

Page 17: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

50円 50円おつり

50円

100円

50円

100円

100円

おつりなし

1 2

3 4

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

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

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

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

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

/ φ

/ φ / φ

/ 品物

/ 品物+50円

/ 品物

(例1)

17

Page 18: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

オートマトンとは

l  状態を持つ機械 l  コンピュータに限らずさまざなな計算システムの   計算モデルとして用いられる l  コンピュータ科学で も重要な計算モデルの1つ

応用範囲

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

18

Page 19: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

文字列検索への応用

1 2 4 3

b

a

a

a

a b

b

b

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

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

状態4に到達

(例2)

19

Page 20: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

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

Page 21: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

フリップフロップ回路

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

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

数理モデル

21

Page 22: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

教科書 

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

参考書 

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

★平易な記述,例も豊富

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

22

Page 23: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

参考書 

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

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

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

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

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

23

Page 24: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

準備

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

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

w の長さ lg(w) = n

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

(例3) 

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

注意 24

Page 25: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

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

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

l  略して DFA  

25

Page 26: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

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

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

26

Page 27: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

オートマトンの例

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 } r

1

0

(例6)

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

27

Page 28: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

状態遷移関数の拡張

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

:QXΣ*→Q に拡張する

(例6)では、

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

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

Page 29: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

正則言語

(例6)では、

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

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

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

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

a a

a

a a a M1 M2

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

M2 は冗長な 状態を持つ!

p0 p1

p2 p3 29

Page 30: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

30

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

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

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

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

M1の動作をM2で模倣する  M2の動作をM1で模倣する 

Page 31: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

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

普遍的な理論の構築へ

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

31

Page 32: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

状態の同値性

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

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

def

32

Page 33: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

状態の同値性の調べ方 p,q から同じ入力によって遷移する状態対が

終状態であるか非 終状態であるかに関して 同じ振る舞いをするかどうかを調べる。

判断基準 (1)                   の場合→同値でない (2) 既に調べた状態対、またはその入れ替えた対に     到達したときは、そこで探索終了 (3) 同じ状態からなる対に到達したときは、そこで探索終了 (4) (1)の基準を満たさずに全探索が終了した場合                            → 同値である

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

33

Page 34: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

0 p q

r

0 1 0

1 0

1

1

(3) (3)

q と r は同値!(4)

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

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

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

p q, r

0 1 0

1

34

Page 35: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

0

s

q 0

0

0

1

(2) (2)

r と s は同値!(4)

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

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

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

r

p 1 1

1 1

0

0 (1)

q 0

r

p 1

0,1

0,1 35

Page 36: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

Page 37: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

0

s

q 0 1

0

1

p と t は同値!(4)

r

p 1

1 1

0

u

t 1

0,1

0

0

M1

M2

0 1 0 1

0 1 (2) (2) (2)

(2) (2)

M1 と M2 は等価 

37

Page 38: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

補足

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

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

と定義する。

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

38

Page 39: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

非決定性有限オートマトンNon-deterministic Finite Automaton l  ある状態に対し,同じ入力での遷移先が   2箇所以上存在する。 l  略して NFA  

p q 1

r

1

39

Page 40: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

Page 41: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

NFAの例

q r

1

1

s 0,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

Page 42: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

q r

1

1

s 0,1

0

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

p 1 M

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

Page 43: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

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

普遍的な理論の構築へ

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

43

Page 44: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

計算能力に差はあるのか?

特に記憶容量と計算時間を 問題にしない場合...

さまざまなコンピュータ

44

Page 45: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

状態 S1 状態 S20 状態 S40

S2

S3

S4

S5

S19

: : : :

CPU 1 CPU 2 CPU 3

S21

S22

S23

S24

S39

: : : :

S41

S42

S43

S44

S59

: : : :

………. 状態 S1

S2

S19

: :

CPU ……….

q1

q2

S2

q3

q4

状態 S20

S21

S39

: :

q5

q6

S22

q7

q8

状態 S40

S41

S59

: :

q10

q11

S42

q12

q13

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

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

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

45

Page 46: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

言語 A 言語 B

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

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

他の模倣の例

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

Page 47: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

他の模倣の例

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

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

「コンピュータや機械」と「人間」の大きな違いの1つ         創造性のあるなし

47

Page 48: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

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

48

Page 49: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

ANDをNANDで実現する

ORをNORで実現する

模倣の例:

49

Page 50: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

CでC++を実装する。

C++でJavaを実装する。

模倣の例:

Lisp で Prolog を実装する。

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

50

Page 51: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

Page 52: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

q r

1

1

s 0,1

0

p 1 M1

0,1

0

52

Page 53: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

部分集合構成法の適用例

q r

1

1

s 0,1

0

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

p 1 M1

0,1

0

53

Page 54: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

部分集合構成法の適用例

q r

1

1

s 0,1

0

p 1 M1

0,1

0

54

Page 55: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

部分集合構成法の適用例

q r

1

1

s 0,1

0

p 1 M1

0,1

0

55

Page 56: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

部分集合構成法の適用例

q r

1

1

s 0,1

0

p 1 M1

0,1

0

56

Page 57: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

部分集合構成法の適用例

q r

1

1

s 0,1

0

p 1 M1

0,1

0

57

Page 58: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

部分集合構成法の適用例

q r

1

1

s 0,1

0

p 1 M1

0,1

0

58

Page 59: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

部分集合構成法の適用例

0

q0

M2

0

1 q1 q3 q6

q2

q4

q5

0

1 1

1 1

0

0

1

0

1

0

59

Page 60: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

ε動作を許したNFA

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

(例9) 

p1 p2

2

p0

1 0

ε ε

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

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

60

Page 61: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

ε動作の除去の仕方

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

(例9)では 

p1 p2

2

p0

1 0

ε ε

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

61

Page 62: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

ε動作の除去の仕方

状態集合 X に対しては,

と定義する。 

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

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

F ’ = のとき 

のとき  62

Page 63: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

p1 p2

2

p0

1 0

ε ε

63

Page 64: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

ε動作の除去の例

p1 p2

2

p0

1 0

ε ε

64

Page 65: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

ε動作の除去の例

p1 p2

2

p0

1 0

ε ε

65

Page 66: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

ε動作の除去の例

p1 p2

2

p0

1 0

0,1 1,2

0,1,2

得られたε動作なしのNFA

66

Page 67: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

まとめ

以下のオートマトンの受理能力は等しい。   決定性有限オートマトン   非決定性有限オートマトン   ε動作つき非決定性有限オートマトン 

67

Page 68: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

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

非正則言語の例

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

p0 pi1 pi2

Pin a a a Pin +1

b b p2n ∈ F

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

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

0 0 0

68

Page 69: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル

p0 pi1 pin

a a Pin +1

b b P2n ∈ F

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

Pis Pit+1

a

pit

=

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

0 0 0

69