• Tidak ada hasil yang ditemukan

有限オートマトンでの計算可能性問題 - Sophia

N/A
N/A
Protected

Academic year: 2024

Membagikan "有限オートマトンでの計算可能性問題 - Sophia"

Copied!
39
0
0

Teks penuh

(1)

有限オートマトンでの計算可能性問題

言語 AΣ に対し、

A を認識する有限オートマトン M が存在するか ?

有限オートマトンによって

認識可能な言語はどのようなものか ?

→ 正規言語・正規表現

非決定性有限オートマトンで認識できない

言語が存在する!!

(⇐⇒ 正規でない言語が存在する)

(2)

有限オートマトンで認識できない言語が存在する (⇐⇒ 正規でない言語が存在する)

正規言語より広い範囲の言語を考えることが必要

生成規則による言語の記述(生成文法)

(3)

生成規則・生成文法

生成規則を与えることでも

言語を定めることが出来る

→ 生成文法(generative grammar)

生成規則による文法に適っている語の生成

初期変数を書く

今ある文字列中の或る変数を

生成規則のどれかで書換える

変数がなくなったら終わり

(4)

: {a2nb2m+1 n, m 0}

(a が偶数個( 0 個も可)続いた後に、

b が奇数個続く) 正規表現で表すと、(aa)b(bb)

S→aaS

S→bB

B→bbB

B→ε

まとめて次のようにも書く

S→aaS bB

B→bbB ε

(5)

生成規則・生成文法

実際の(自然言語を含めた)“文法では、

或る特定の状況で現われた場合だけ

適用できる規則もあるだろう そのような生成規則は例えば次の形 :

uAv→uwv u, v Σ : 文脈(context)

変数 A が uAv の形で現われたら、

語 wΣ で書換えることが出来る

(6)

生成文法の形式的定義

G= (V, Σ, R, S)

V : 有限集合 (変数の集合)

Σ : 有限集合 (終端記号の集合)

ここに VΣ=

R : 有限集合(VΣ)×(VΣ)

(規則の集合)

SV : 開始変数

(v, w)R が生成規則 v→w を表す

(7)

文脈自由文法(context-free grammar) 文脈が全て空列 ε

即ち、規則が全て A→w (AV) の形 文脈自由文法の形式的定義

V : 有限集合 (変数の集合)

Σ : 有限集合 (終端記号の集合)

ここに VΣ=

R : 有限集合V×(VΣ) (規則の集合)

SV : 開始変数

(A, w)R が生成規則 A→w を表す

(8)

: 言語 A={anbnn0} は

正規言語ではないが文脈自由言語である :

S→aSb ε 従って、

文脈自由言語は正規言語より真に広い!!

さて、正規言語を計算するモデルが

有限オートマトンであった 文脈自由言語を計算するモデル

· · · プッシュダウンオートマトン

(9)

プッシュダウンオートマトン (非決定性)有限オートマトンに

プッシュダウンスタックを取り付けたもの

a b

a b

a

c b

a

a d

a push a push b push c pop pop push d

無限(非有界)の情報を保持できるが、

読み書きは先頭だけ

· · · LIFO (Last In First Out)

(10)

プッシュダウンオートマトンの形式的定義 M= (Q, Σ, Γ, δ, s, F)

Q : 有限集合 · · · 状態の集合

Σ : 有限集合 · · · alphabet

Γ : 有限集合 · · · stack alphabet Σε:= Σ{ε}, Γε:=Γ {ε} と置く

δ:Q×Σε×ΓεP(Q×Γε)

: 遷移関数 (非決定的) · · · 可能な遷移先全体

sQ · · · 初期状態

FQ · · · 受理状態の集合

(11)

δ:Q×Σε×ΓεP(Q×Γε)

(r, y)δ(q, a, x) とは、

「入力 a を読んだとき、

状態 q でスタックの先頭が x なら、

スタックの先頭を y に書換えて、

状態 r に移って良い」

ということ (pop; push y)

x=y は書き換え無し

x=ε は push のみ

y=ε は pop のみ

a=ε は入力を読まずに遷移

(12)

: 言語 A={anbn n0} を認識する

プッシュダウンオートマトン

Σ={a, b}, Γ ={a, b, c}

q0 ε,ε q1 q2 q3

c

a,ε a b,a ε

ε b,a ε ε,c

(13)

PDA q0 ε,ε c q1 q2 q3

a,ε a b,a ε

ε ε,c

b,a ε による

文字列 anbn の受理

c a

c

a c a

push c push a push a pop pop . . . .

: a

c a

: . . . a c

c

pop pop

q0ε,ε cq1a,ε aq1 a,ε aq1b,a ε q2 b,a εq2b,a εq2ε,c εq3

(14)

スタックマシン このように

記憶場所としてプッシュダウンスタックを備えた 計算モデルや仮想機械・処理系を 一般にスタックマシンという

:

逆ポーランド電卓

PostScript

(15)

式と演算木

+

3 x

4 2

x 3

+ 2 4

3+4x2 3x4+2

Mathematica などの

数式処理(計算機代数)ソフトウェアでは、

通常、内部的に数式の木構造を保持

(16)

演算木の表記

演算子を置く場所により、中置・前置・後置がある

中置 前置 後置

3+4×2 + 3 × 4 2 3 4 2 × + (3+4)×2 × + 3 4 2 3 4 + 2 × 3×4+2 + × 3 4 2 3 4 × 2 +

(17)

後置記法 (逆ポーランド記法) 後置 日本語

3 4 2 × + 342けたものをしたもの

3 4 + 2 × 34したものに2けたもの

3 4 × 2 + 34けたものに2したもの

スタックを用いた計算に便利

(18)

後置記法の演算式のスタックを用いた計算

(逆ポーランド電卓)

数値 =⇒ push

演算子 =⇒ 被演算子を(所定の個数だけ) pop

→ 演算を施し、結果を push

入力終了 =⇒ pop

→ スタックが丁度空になったらその値が答え

: 後置記法(逆ポーランド記法)の式に対し スタックを用いて値を計算する

アルゴリズムを実装せよ

(19)

後置記法の有利性

後置記法の演算式が簡明に計算できるのは、

(各演算子に対して

被演算子の個数が決まっていれば) 括弧が必要ない(優先順位を考慮しなくてよい)

ことが大きく効いている

式 :: 定数 || 変数 || 式 式 二項演算子

(+ も × も区別なし)

(20)

中置記法と演算子の優先順位 中置記法の演算式には括弧が必要

(演算子の優先順位を定めておく必要あり)

3×4+2 3+4×2

計算する際には優先順位を考慮する必要がある

式 :: 項 || 項+式

項 :: 因子 || 因子×

因子 :: 定数 || 変数 || (式)

(+ と × とで純然たる区別あり)

(21)

スタックマシンの例 : PostScript ページ記述言語の一つ

Adobe Systemsが開発

PDF (Portable Document Format) の 元になった言語

レーザプリンタなどで実装

オープンソースなインタプリタとして

Ghostscript が良く利用されている

図形を描いたりフォントを置いたりする

逆ポーランド記法

(22)

スタックマシンの例 : PostScript 逆ポーランド記法

データを push

命令(演算子, operator)

所定数のデータ(被演算子, operand)pop して処理

: (100, 200) から (300+50, 400) へ、

引続き (200, 600−50) へ線を引く 100 200 moveto

300 50 add 400 lineto 200 600 50 sub lineto stroke

(23)

定理 :

L : 文脈自由言語 m

L が或るプッシュダウンオートマトンで 認識される

(24)

文脈自由言語の例

回文全体の成す言語は文脈自由

S→aSa bSb a b ε

: 回文全体の成す言語を認識する

プッシュダウンオートマトンを構成せよ

(25)

文脈自由言語の例

回文全体の成す言語は文脈自由

S→aSa bSb a b ε

: 回文全体の成す言語を認識する

プッシュダウンオートマトンを構成せよ

(26)

文脈自由言語の例

回文全体の成す言語は文脈自由

S→aSa bSb a b ε

: 回文全体の成す言語を認識する

プッシュダウンオートマトンを構成せよ

(27)

プッシュダウンオートマトンでは

認識できない言語の例 同じ文字列 2 回の繰返しから成る文字列全体

A={ww wΣ}

入力を読み直せないのが弱点

→ より強力な計算モデルが必要

(28)

プッシュダウンオートマトンでは

認識できない言語の例 同じ文字列 2 回の繰返しから成る文字列全体

A={ww wΣ}

入力を読み直せないのが弱点

→ より強力な計算モデルが必要

(29)

プッシュダウンオートマトンでは

認識できない言語の例 同じ文字列 2 回の繰返しから成る文字列全体

A={ww wΣ}

入力を読み直せないのが弱点

→ より強力な計算モデルが必要

(30)

一つの方法としては、

入力を覚えておくために

プッシュダウンスタックをもう一つ

使えることにする 実際これで真により強い計算モデルが得られる しかし、通常はこれと同等な

次のような計算モデルを考える

· · · チューリングマシン

(31)

一つの方法としては、

入力を覚えておくために

プッシュダウンスタックをもう一つ

使えることにする 実際これで真により強い計算モデルが得られる しかし、通常はこれと同等な

次のような計算モデルを考える

· · · チューリングマシン

(32)

チューリングマシン

有限個の内部状態を持つ

入力データはテープ上に一区画一文字づつ書き 込まれて与えられる

データを読み書きするヘッドがテープ上を動く

遷移関数は次の形 :

内部状態とヘッドが今いる場所の文字とによっ て、その場所の文字を書き換え、次の内部状態に 移り、ヘッドを左か右かに動かす

受理状態または拒否状態に達したら停止するが、

停止しないこともある

(33)

(非決定性)チューリングマシンによる

言語 A={ww wΣ} の認識

a b a ... b a a ... b a ...

q0

a ... b a x ... b a ...

qa

y ... b a x ... b a ...

qa

y ... b a x ... b a ...

qb a

b b a

... ... ...

a b

a b

a b

a

a b

a b

a b

a x

a x x qb

y y

(34)

チューリングマシンによる言語の認識

チューリングマシンTが言語Aを認識する m

A=



wΣ

入力 w に対し、

受理状態で停止する 遷移が存在



 m

wA⇐⇒ 入力 w に対し、

受理状態で停止する遷移が存在

(35)

チューリングマシンによる言語の判定

チューリングマシンTが言語Aを判定する m

T は A を認識し、

かつ、全ての入力に対し必ず停止する m

wA⇐⇒ 入力 w に対し、

受理状態で停止する遷移が存在 かつ

w6∈A⇐⇒ 入力 w に対し、

拒否状態で停止する遷移が存在

(36)

Church-Turingの提唱

「全てのアルゴリズム(計算手順)は、

チューリングマシンで実装できる」

(アルゴリズムと呼べるのは

チューリングマシンで実装できるものだけ)

· · · 「アルゴリズム」の定式化

(37)

Church-Turingの提唱

「全てのアルゴリズム(計算手順)は、

チューリングマシンで実装できる」

(アルゴリズムと呼べるのは

チューリングマシンで実装できるものだけ)

· · · 「アルゴリズム」の定式化

(38)

Church-Turingの提唱

「全てのアルゴリズム(計算手順)は、

チューリングマシンで実装できる」

(アルゴリズムと呼べるのは

チューリングマシンで実装できるものだけ)

· · · 「アルゴリズム」の定式化

(39)

何故「チューリングマシン」なのか?

およそ計算機で実行したいことは模倣可能 (無限のメモリにランダムアクセスできる

計算機モデル)

多少モデルを変更しても強さが同じ

(モデルの頑強性)

? テープが両方に無限に伸びているか

? ヘッドが動かないことがあっても良いか

? 複数テープチューリングマシン

? 決定性/非決定性 などなど

Referensi

Dokumen terkait

創発的計算のためのモデル CCM による 問題解決における局所性の制御 新情報処理開発機構 つくば研究センタ 金田

情報処理学会第49 回全国大会1994.9.28 –30 94.9.1 創発的計算のためのモデル CCM による 制約充足問題などの独立並列処理法* 金田 泰 新情報処理開発機構 RWCP つくば研究センタ * A Method of Independent Parallel Processing of Constraint Satisfaction and

SWoPP ’94 Yasusi Kanada , Real-World Computing Partnership, Tsukuba, Japan 94.7.21 局所最適点をさける方法 ■ 反応規則の動的合成による谷ごえ トンネリング ■ シミュレーテッド・アニーリング SA ■ フラストレーション蓄積法 FAM

微生物創薬支援 微生物が作り出す天然物は人知を超えた構造多様性に 富み,さらに生体親和性が高いことで医薬品,動物薬, 農薬の探索資源として利用されてきた.抗生物質,抗が ん剤,酵素阻害剤,免疫抑制剤,酵素などの探索源とし ての価値は今も維持されている. 1950年代より盛んに微生物の分離,スクリーニング が行われるなか,当社においても1960年代から,土壌

N-2-25 能用複名數的方法處 理量相關的計算問題(不含 除法)。 2.指導學生以小數表示具體物的部分量。 【活動 3】連加的簡便計算 ◎在具體情境中理解連加兩數時,先加前兩項或先加後兩項的結果相同 1.利用課本情境,引導學生解題。 2.指導學生理解在具體情境中理解連加兩數時,先加前兩項或先加後兩項的結果相同。 二十 一 N-2-21

方程式の代数解法 係数から四則演算と冪根とを有限回用いて解を表す公式 の探求について、数学的・歴史的なことを含めて調べて述べよ。

5 上記のように平成 21 年までは上昇傾向にあったが、それ以降減少している。一か月換算をす ると約 3500 円である。これは家族がいる世帯であるので一人暮らしの場合は、数値が変化する と思われる。やはり不況の影響もあり、菓子の消費額は今後も減少傾向にあるのではないかと考 える。 Ⅰ Ⅰ Ⅰ

Σ ={a, b} をalphabetとする次の言語について、a 正規言語でないことを示 せ(正規言語に対するPumping Lemma(注入補題・反復補題)または部屋割り論法を用 いよ)。b 生成規則で表せ。c 受理する(非決定性)プッシュダウンオートマトンを構 成せよ。d 上記のプッシュダウンオートマトンを模倣するプログラムを作成せよ(言語 は何でも可)。 1