情報処理過程を数理的にモデル化したもの...自然言語処理の基礎,...
TRANSCRIPT
![Page 1: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/1.jpg)
1
参考書
「自然計算へのいざない」 近代科学社 実は自然は計算をしている! 自然界は、私たちが考える以上に様々な手法で計算をしている。 本書は、その計算手法―アルゴリズム―を読み解き、新たな情報処理を確立しようという 先端の試みを、数式を極力避けて平易に解説した。わくわくする 先端の科学・技術に興味のある学部生、大学院生、研究者には必携の書である。
![Page 2: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/2.jpg)
計算理論
● 計算とは何か?について考えるための理論
計算モデル: 計算を行っていると考えられる実体の 情報処理過程を数理的にモデル化したもの
● 計算モデルを構築し,その計算モデルの計算能力を 解析することにより,計算に対する理解を深めるための理論
計算
実体
計算
計算可能な問題
計算不能な問題 数理モデル化 抽象化
全ての問題
次のスライド参照
2
![Page 3: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/3.jpg)
さまざまな計算モデル(1)
チューリング機械 :
句構造文法 (形式文法) :
(部分)帰納的関数 :
ラムダ計算 :
自然言語処理の基礎, プログラミング言語の文法記述
現在のコンピュータの理論モデル
Lisp, Haskell などの関数型プログラミング言語の基礎
オートマトン : 現在のコンピュータの理論モデル,さまざまな分野への応用
Lisp, Haskell などの関数型プログラミング言語の基礎
3
![Page 4: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/4.jpg)
さまざまな計算モデル(2)
ニューラルネットワーク :
ペトリネット :
進化計算 :
量子計算 :
分子コンピューティング :
分散並列システムの基礎
脳神経科学の基礎, パターンマッチングへの応用
適化アルゴリズムへの応用
量子力学に基づく計算モデル
分子反応に基づく計算モデル
セルオートマトン : 細胞による計算,生命現象の基礎数理モデル, 並列システム・自己組織化の基礎
光コンピューティング : 光の照射・反射を利用した計算モデル
ビリヤード計算 : 剛体の弾性衝突現象を利用した計算モデル
4
![Page 5: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/5.jpg)
世界で も強力な7つのアルゴリズム
計算できないことがあることを 知ることの重要性
1.検索エンジンのインデキシング 2.ページランキング 3.公開鍵暗号法 4.誤り訂正符号 5.パターン認識 6.データ圧縮 7.データベース 8.デジタル署名 9.計算不可能性
ジョン マコーミック 英ディッキンソン大学 コンピュータ・サイエンス教授。 ヒューレット・パッカードとマイクロソフトの研究所に勤めたのち現職
5
![Page 6: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/6.jpg)
コンピュータには答えられない問題もある
ポストの対応問題
入力: 記号を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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/7.jpg)
どのように研究は進められるのか?
計算理論の研究の流れ
4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す
4 計算モデルを自然現象で再実装することにより 実際問題への応用を試みたり,計算の可能性を探求する.
3 計算モデルを分析し普遍化する.(計算理論の構築)
2 その観察に基づいて計算モデルを構築する.
1 計算をしていると考えられる実体(自然現象,生体現象等を含む)を 計算の観点から観察する.
自然現象や生体現象などから構築される計算理論 自然計算の理論 : 7
![Page 8: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/8.jpg)
例えば,量子計算の場合
1 自然現象を計算の観点から観察する
2 その観察に基づいて計算モデルを構築する,
3 計算モデルを分析し普遍化する
重ね合わせ,不確定性原理,エンタングルメント,観測
量子計算量理論の発展
量子並列計算の計算モデル
4 計算モデルを自然現象で再実装することにより 実際問題への応用を試みたり,計算の可能性を探求する.
スケーラブル量子計算機の実現に向けて...
4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す
量子力学の問題を計算量的な枠組みで再検討する... 8
![Page 9: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/9.jpg)
例えば,進化計算の場合
1 自然現象を計算の観点から観察する
2 その観察に基づいて計算モデルを構築する,
3 計算モデルを分析し普遍化する
進化の過程の数理モデル化,自然淘汰,遺伝子の突然変異や組み換え
遺伝的アルゴリズムの理論の構築(遺伝子への符号化の方法,組み換えの方法,選択の方法,等)
遺伝的アルゴリズム(進化を 適化の過程ととらえる)
4 計算モデルを自然現象で再実装することにより 実際問題への応用を試みたり,計算の可能性を探求する.
進化計算の試験管内での実現,In Vitro Selection
4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す
生物の進化の 適化理論の立場からの理解... 9
![Page 10: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/10.jpg)
オートマトンと計算論
計算モデル 計算とは何か? について考える ための理論
模倣するというアイデアに基づいて 計算の意味を与える
コンピュータの限界を知る 10
![Page 11: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/11.jpg)
計算理論の研究の流れ(再掲)
4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す
4 計算モデルを自然現象で再実装することにより, 実際問題への応用を試みたり,計算の可能性を探求する.
3 計算モデルを分析し普遍化する.(計算理論の構築)
2 その観察に基づいて計算モデルを構築する.
1 計算をしていると考えられる実体(自然現象,生体現象等を含む)を 計算の観点から観察する.
自然現象や生体現象などから構築される計算理論 自然計算の理論 :
11
![Page 12: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/12.jpg)
オートマトン理論の場合
1 計算をしていると考えられる実体(自然現象,生体現象等を含む)を 計算の観点から観察する.
「人間の思考過程」を計算の観点から観察する.
ドアの開閉を行うドアボーイの思考過程
「外界からの刺激に応じて状態を変化させ動作する」 12
![Page 13: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/13.jpg)
オートマトン理論の場合
「外界からの刺激に応じて状態を変化させ動作する」
オートマトンの計算モデルの構築
2 その観察に基づいて計算モデルを構築する.
q1
0/0
q2
1/1 2/0
0/2
1/0
q1: ドアが閉じている状態
q2: ドアが開いている状態
0: 客がいない
1: 客が向ってくる
2: 客がドアの傍にいる
入力
0: 何もしない
1: ドアを開ける
2: ドアを閉める
出力
状態
13
![Page 14: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/14.jpg)
オートマトン理論の場合
「本講義の内容」 = 普遍化することにより得られた理論
3 計算モデルを分析し普遍化する.(計算理論の構築)
4 計算モデルを自然現象で再実装することにより, 実際問題への応用を試みたり,計算の可能性を探求する.
電子回路によって実装して、さまざまな情報システムの 構築に応用する
4’ 普遍化した理論の立場で自然現象の新たな理解を生み出す
人間の思考過程に対する考察: 状態遷移のみのオートマトンでは人間の思考能力のすべてを 理解できない 14
![Page 15: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/15.jpg)
100円,100円
自動販売機 150円の品物を販売
品物、おつり50円
自動販売機の設計への応用
15
![Page 16: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/16.jpg)
100円,50円
自動販売機 150円の品物を販売
品物、おつりなし
自動販売機の設計への応用
16
![Page 17: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/17.jpg)
自動販売機の設計への応用
50円 50円おつり
50円
100円
50円
100円
100円
おつりなし
1 2
3 4
5
1: 合計0円が入力された状況
2: 合計50円が入力された状況
3: 合計100円が入力された状況
4: 合計150円が入力された状況
5: 合計200円が入力された状況
/ φ
/ φ / φ
/ 品物
/ 品物+50円
/ 品物
(例1)
17
![Page 18: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/18.jpg)
オートマトンとは
l 状態を持つ機械 l コンピュータに限らずさまざなな計算システムの 計算モデルとして用いられる l コンピュータ科学で も重要な計算モデルの1つ
応用範囲
計算機システムの解析と設計,文字列検索, 音声認識(確率オートマトン), 離散事象システム(データベースシステムなど)の解析, 遺伝子の配列解析(確率オートマトン), 生物の発生モデル(セルオートマトン), 数値シミュレーション(セルオートマトン),等
18
![Page 19: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/19.jpg)
文字列検索への応用
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/20.jpg)
遺伝子配列解析への応用 ヘモグロビン遺伝子を同定するための確率オートマトン(イメージ)
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/21.jpg)
有限の記憶を持つシステムの計算能力
フリップフロップ回路
有限オートマトン(ムーア機械,ミーリー機械なども含む)
有限の記憶を持つシステムの計算能力はどのようなもの?
数理モデル
21
![Page 22: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/22.jpg)
教科書
(1) 「オートマトン・言語理論」 富田悦治,横森貴 森北出版
参考書
(2) 「計算理論とオートマトン言語理論」 丸岡章 サイエンス社 ★入門的 (1)では記述していない計算量理論が多少詳しい。
★平易な記述,例も豊富
(3) 「形式言語とオートマトン」 守屋悦朗 サイエンス社 ★入門的なテキストに見えるが、実は内容はかなり理論的。 入門的なテキストで勉強してから読むのが良い。
22
![Page 23: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/23.jpg)
参考書
「言語理論とオートマトン」 J.E. ホップクロフト,J.D. ウルマン (野崎他訳) サイエンス社
古典的?名著(かなり理論的な書き方になっている)
「オートマトン・言語理論・計算論 I,II」 J.E. ホップクロフト,J.D. ウルマン (野崎他訳) サイエンス社
「計算論とオートマトン理論」 A.サローマ (野崎他訳) サイエンス社
「オートマトンの理論」 小林孝次郎,高橋正子 共立出版
23
![Page 24: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/24.jpg)
準備
: 有限アルファベット (記号の有限集合)
上の語 : の要素の有限列 w=a1a2… an (ai∈Σ)
w の長さ lg(w) = n
Σ* = { w | w はΣ上の語 } (Σのスター閉包)
(例3)
空語 : 長さ0の語 → εであらわす
注意 24
![Page 25: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/25.jpg)
決定性有限オートマトンDeterministic Finite Automaton
l 有限の状態を持つ受理機械
l Moore 型順序機械の特殊な場合ともみなせる
l 略して DFA
25
![Page 26: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/26.jpg)
Def. 決定性有限オートマトン
M = (Q, Σ, δ, p0 , F)
Q : 状態の有限集合 Σ : 入力アルファベット δ : Q X Σ→ Q (状態遷移関数) p0 : 初期状態 F : 終状態の集合
26
![Page 27: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/27.jpg)
オートマトンの例
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/28.jpg)
状態遷移関数の拡張
δ:QXΣ→Q を 以下の定義により
:QXΣ*→Q に拡張する
(例6)では、
はδの複数回の遷移を表す
以後、 をδで代用して表す 28
![Page 29: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/29.jpg)
正則言語
(例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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/30.jpg)
計算システムの計算能力を解析する
30
計算システムの普遍的な理論
1. すべての入力に対するM1とM2の動作を比較する.
2. お互いの計算システムの振る舞いを模倣する
計算システムM1と計算システムM2の計算能力を 比較する2つの方法
M1の動作をM2で模倣する M2の動作をM1で模倣する
![Page 31: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/31.jpg)
DFA と DFA の計算能力を比較するには?
全て入力に対して2つのDFAを動かして、計算能力を比較する。
普遍的な理論の構築へ
有限の記憶を持つシステムの計算能力を解析する 普遍的な理論の構築へ向けて(1)
31
![Page 32: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/32.jpg)
状態の同値性
Def. 状態 p と q (p,q∈ Q) が同値である ⇔
(例7)における p0 と p2 , および p1 と p3 は同値である。
def
32
![Page 33: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/33.jpg)
状態の同値性の調べ方 p,q から同じ入力によって遷移する状態対が
終状態であるか非 終状態であるかに関して 同じ振る舞いをするかどうかを調べる。
判断基準 (1) の場合→同値でない (2) 既に調べた状態対、またはその入れ替えた対に 到達したときは、そこで探索終了 (3) 同じ状態からなる対に到達したときは、そこで探索終了 (4) (1)の基準を満たさずに全探索が終了した場合 → 同値である
状態対の可能性は高々|Q|2 通りしかないので、 必ず探索は終了する。
33
![Page 34: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/34.jpg)
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/35.jpg)
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/36.jpg)
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/37.jpg)
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/38.jpg)
補足
状態集合 q ⊆ Q に対して,
δ(q,a) = { p’ | δ(p,a) = p’, p ∈ q }
と定義する。
一般に広義の有限オートマトンでは、状態遷移関数はすべての 入力記号について定義されていなくてもよい。 (δとして部分関数も許す)
38
![Page 39: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/39.jpg)
非決定性有限オートマトンNon-deterministic Finite Automaton l ある状態に対し,同じ入力での遷移先が 2箇所以上存在する。 l 略して NFA
p q 1
r
1
39
![Page 40: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/40.jpg)
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/41.jpg)
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/42.jpg)
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/43.jpg)
NFA と DFA の計算能力を比較するには?
「それぞれの計算モデルでもう一方のモデルの 計算過程を模倣する」ことにより、計算能力を比較する。
普遍的な理論の構築へ
有限の記憶を持つシステムの計算能力を解析する 普遍的な理論の構築へ向けて
43
![Page 44: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/44.jpg)
計算能力に差はあるのか?
特に記憶容量と計算時間を 問題にしない場合...
さまざまなコンピュータ
44
![Page 45: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/45.jpg)
状態 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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/46.jpg)
長くて複雑になるかも しれないけれど 定義することができる
言語 A 言語 B
電話 音声を電気信号に変換して離れた場所に送り、 再び音声に戻して通話する機械
テレビ 電波を利用して、物体の移動する様子を時々刻々と送り、および、その電波を受けて表示するための 装置
他の模倣の例
言語Aと言語Bの能力は等しい 46
![Page 47: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/47.jpg)
時間はかかるかもしれない けれど,日常生活の基本は 親を真似て学習する 親 子供
他の模倣の例
人間Aと人間Bの能力は等しい?
動作や作業にかかる時間は無視したとしても, 創造性を発揮する分野には差がある
「コンピュータや機械」と「人間」の大きな違いの1つ 創造性のあるなし
47
![Page 48: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/48.jpg)
組み合わせ回路の計算能力を 比較する際の模倣
どの構成要素を使ってコンピュータを作ればよいのだろう?
48
![Page 49: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/49.jpg)
組み合わせ回路の計算能力を 比較する際の模倣
ANDをNANDで実現する
ORをNORで実現する
模倣の例:
49
![Page 50: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/50.jpg)
プログラミング言語で 別のプログラミング言語を実装する
CでC++を実装する。
C++でJavaを実装する。
模倣の例:
Lisp で Prolog を実装する。
結果として、プログラミング言語間の計算能力の比較を している。
50
![Page 51: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/51.jpg)
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/52.jpg)
部分集合構成法の適用例 (例8)の NFA を DFA に変換する
q r
1
1
s 0,1
0
p 1 M1
0,1
0
52
![Page 53: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/53.jpg)
部分集合構成法の適用例
q r
1
1
s 0,1
0
(例8)の NFA を DFA に変換する
p 1 M1
0,1
0
53
![Page 54: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/54.jpg)
部分集合構成法の適用例
q r
1
1
s 0,1
0
p 1 M1
0,1
0
54
![Page 55: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/55.jpg)
部分集合構成法の適用例
q r
1
1
s 0,1
0
p 1 M1
0,1
0
55
![Page 56: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/56.jpg)
部分集合構成法の適用例
q r
1
1
s 0,1
0
p 1 M1
0,1
0
56
![Page 57: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/57.jpg)
部分集合構成法の適用例
q r
1
1
s 0,1
0
p 1 M1
0,1
0
57
![Page 58: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/58.jpg)
部分集合構成法の適用例
q r
1
1
s 0,1
0
p 1 M1
0,1
0
58
![Page 59: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/59.jpg)
部分集合構成法の適用例
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/60.jpg)
ε動作を許したNFA
l ε動作:入力記号を用いずに状態変化できる
(例9)
p1 p2
2
p0
1 0
ε ε
{ 0l1m2n | l,m,n ≧0 } を受理する。
ε動作を持たないNFAに変換できるか?
60
![Page 61: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/61.jpg)
ε動作の除去の仕方
ε閉包 : ε-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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/62.jpg)
ε動作の除去の仕方
状態集合 X に対しては,
と定義する。
ε動作を持つNFA M=(Q,Σ,δ,p0,F ) に対し,
M ’ =(Q,Σ,δ’,p0,F ’ ) を構成すればよい。
F ’ = のとき
のとき 62
![Page 63: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/63.jpg)
ε動作の除去の例 (例9)では
p1 p2
2
p0
1 0
ε ε
63
![Page 64: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/64.jpg)
ε動作の除去の例
p1 p2
2
p0
1 0
ε ε
64
![Page 65: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/65.jpg)
ε動作の除去の例
p1 p2
2
p0
1 0
ε ε
65
![Page 66: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/66.jpg)
ε動作の除去の例
p1 p2
2
p0
1 0
0,1 1,2
0,1,2
得られたε動作なしのNFA
66
![Page 67: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/67.jpg)
まとめ
以下のオートマトンの受理能力は等しい。 決定性有限オートマトン 非決定性有限オートマトン ε動作つき非決定性有限オートマトン
67
![Page 68: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/68.jpg)
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: 情報処理過程を数理的にモデル化したもの...自然言語処理の基礎, プログラミング言語の文法記述 現在のコンピュータの理論モデル](https://reader034.vdocuments.net/reader034/viewer/2022042219/5ec5a3e8691079698166a1fb/html5/thumbnails/69.jpg)
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