Microsoft PowerPoint - 09pda.ppt

Similar documents
オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110,

Microsoft PowerPoint - 3.ppt [互換モード]

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語

Microsoft PowerPoint - 5.ppt [互換モード]

Microsoft PowerPoint - 09re.ppt [互換モード]

日本内科学会雑誌第102巻第4号

オートマトンと言語

Microsoft PowerPoint - 1.ppt [互換モード]

情報数理学

オートマトン 形式言語及び演習 4. 正規言語の性質 酒井正彦 正規言語の性質 反復補題正規言語が満たす性質 ある与えられた言語が正規言語でないことを証明するために その言語が正規言語であると

tnbp59-21_Web:P2/ky132379509610002944

日本内科学会雑誌第98巻第4号

日本内科学会雑誌第97巻第7号


PowerPoint プレゼンテーション

CプログラミングI

2-1 / 語問題 項書換え系 4.0. 準備 (3.1. 項 代入 等価性 ) 定義 3.1.1: - シグネチャ (signature): 関数記号の集合 (Σ と書く ) - それぞれの関数記号は アリティ (arity) と呼ばれる自然数が定められている - Σ (n) : アリ

Ł\”ƒ-2005

Microsoft PowerPoint - 11.pptx

第90回日本感染症学会学術講演会抄録(I)

O1-1 O1-2 O1-3 O1-4 O1-5 O1-6

第2回

Microsoft PowerPoint - 9.pptx

放射線専門医認定試験(2009・20回)/HOHS‐05(基礎二次)

プログラム

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

文法と言語 ー文脈自由文法とLR構文解析2ー

模擬試験問題(第1章~第3章)

Microsoft PowerPoint - tm ppt [互換モード]


Microsoft PowerPoint - 9.pptx

Microsoft Word - Javacc.docx

プログラム

プリント

航空機の運動方程式

y = x x R = 0. 9, R = σ $ = y x w = x y x x w = x y α ε = + β + x x x y α ε = + β + γ x + x x x x' = / x y' = y/ x y' =

An Automated Proof of Equivalence on Quantum Cryptographic Protocols

Microsoft PowerPoint - mp11-02.pptx

本文/目次(裏白)

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Microsoft PowerPoint - Compiler03.pptx

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

講義の進め方 第 1 回イントロダクション ( 第 1 章 ) 第 2 ~ 7 回第 2 章 ~ 第 5 章 第 8 回中間ミニテスト (11 月 15 日 ) 第 9 回第 6 章 ~ 第 回ローム記念館 2Fの実習室で UML によるロボット制御実習 定期試験 2

Microsoft PowerPoint - 5Chap15.ppt

Microsoft PowerPoint - enshu4.ppt [äº™æ‘łã…¢ã…¼ã…›]

オートマトンと言語

Microsoft PowerPoint - qcomp.ppt [互換モード]

抄録/抄録1    (1)V

論理と計算(2)

aaa

Microsoft PowerPoint - ad11-09.pptx

Microsoft PowerPoint - Compiler03note.pptx

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

プレポスト【解説】

s d

経済数学演習問題 2018 年 5 月 29 日 I a, b, c R n に対して a + b + c 2 = a 2 + b 2 + c 2 + 2( a, b) + 2( b, c) + 2( a, c) が成立することを示しましょう.( 線型代数学 教科書 13 ページ 演習 1.17)

Microsoft PowerPoint - prog03.ppt

研修コーナー

Microsoft PowerPoint - 04_01_text_UML_03-Sequence-Com.ppt

Microsoft PowerPoint - アルデIII 02回目10月15日

Microsoft PowerPoint - 13approx.pptx

ビジネス統計 統計基礎とエクセル分析 正誤表

Microsoft PowerPoint - 11Syntax.ppt

パーキンソン病治療ガイドライン2002

< F2D837C E95CF CF68A4A94C5816A2E6A>

PowerPoint プレゼンテーション

テンソル ( その ) テンソル ( その ) スカラー ( 階のテンソル ) スカラー ( 階のテンソル ) 階数 ベクトル ( 階のテンソル ) ベクトル ( 階のテンソル ) 行列表現 シンボリック表現 [ ]

() ): (1) f(x) g(x) x = x 0 f(x) + g(x) x = x 0 lim f(x) = f(x 0 ), lim g(x) = g(x 0 ) x x 0 x x0 lim {f(x) + g(x)} = f(x 0 ) + g(x 0 ) x x0 lim x x 0

C8


PowerPoint プレゼンテーション

GJG160842_O.QXD

2007年08月号 022416/0812 会告

ε

_0212_68<5A66><4EBA><79D1>_<6821><4E86><FF08><30C8><30F3><30DC><306A><3057><FF09>.pdf

融合規則 ( もっとも簡単な形, 選言的三段論法 ) ll mm ll mm これについては (ll mm) mmが推論の前提部になり mmであるから mmは常に偽となることがわかり ll mmはllと等しくなることがわかる 機械的には 分配則より (ll mm) mm (ll mm) 0 ll m

Microsoft Word ã‡»ã…«ã‡ªã…¼ã…‹ã…žã…‹ã…³ã†¨åłºæœ›å•¤(佒芤喋çfl�)

Microsoft PowerPoint - H22制御工学I-2回.ppt

Microsoft PowerPoint - mp11-06.pptx

Probit , Mixed logit

03実習2・松井.pptx

zsj2017 (Toyama) program.pdf


_170825_<52D5><7269><5B66><4F1A>_<6821><4E86><5F8C><4FEE><6B63>_<518A><5B50><4F53><FF08><5168><9801><FF09>.pdf

第86回日本感染症学会総会学術集会後抄録(I)

生命情報学

Functional Programming

言語プロセッサ2005 -No.6-

Microsoft PowerPoint - アルデIII 02回目10月14日

2019 年 6 月 4 日演習問題 I α, β > 0, A > 0 を定数として Cobb-Douglas 型関数 Y = F (K, L) = AK α L β (5) と定義します. (1) F KK, F KL, F LK, F LL を求めましょう. (2) 第 1 象限のすべての点

Microsoft PowerPoint - 10.pptx

ファイナンスのための数学基礎 第1回 オリエンテーション、ベクトル

5_motif 公開版.ppt

Microsoft PowerPoint - sakurada3.pptx

スライド 1

文字列 2 前回の授業ではコンピュータ内部での文字の取り扱い 文字型の変数 文字型変数への代入方法などを学習した 今回は 前回に引き続き 文字処理を学習する 内容は 標準入出力 ( キーボード ディスプレイ ) での文字処理 文字のファイル処理 文字を取り扱うライブラリ関数である 標準入出力 Lin

Microsoft PowerPoint - H22制御工学I-10回.ppt

untitled

Transcription:

6. プッシュダウン オートマトン : 6.2. PDAの言語 6.3. PDA と CFG の等価性 (6.4. 決定性プッシュダウン オートマトン ) 1/26

プッシュダウン オートマトン (PDA)= オートマトン + プッシュダウンスタック プッシュダウンスタック 食堂のお盆 ( 最近見ない ) コインケース いわゆる stack 入 出 LIFO: Last In First Out 2/26

6.1.1. 直感的な説明 PDA とは ε-nfa が stack を一つ持った機械モデル 入力 有限状態を持つ制御部分 (ε-nfa) 受理 / 拒否 LIFO 型の記憶装置 ( 記憶領域には限りがない ) 3/26

6.1.1. 直感的な説明 入力 PDA とは ε-nfa が stack を一つ持った機械モデル 有限制御部 LIFO 型 出力 受理条件 : 1. 受理状態 2. スタックが空 動作プロセス : 1. 入力を1 文字読む ε- 動作のときは0 文字 2. 入力 x とスタックの一番上の文字 y に応じて状態遷移する 3. スタックを操作する : 1. 一番上の文字を取り出して捨てる 2. 一番上の文字を書き換える 3. 2に加えて いくつかの文字を記憶 4. 入力が終わって受理条件を満たしていたら受理 入力が残っているならステップ1へ 4/26

6.1.1. 直感的な説明 例 ) L = { ww R w {0,1}* } を受理する PDA 入力 ε q 0 q 1 ε q 2 0,1 0,1 入力が終了し 同時にスタックが空なら受理 入力文字をスタックに積む 入力文字とスタックの先頭の文字が同じなら 先頭の文字をスタックから破棄 5/26

6.1.1. 直感的な説明 例 ) L = { ww R w {0,1}* } を受理する PDA 101101 入力 ε ε 入力が終わり q 0 q 1 q 2 スタックも空になるので受理 101101 10110 1011 101 101 1 01 ε 0,1 0,1 L の要素なら 受理条件を満たす状態遷移が存在する L の要素でないなら どんな遷移をしても受理条件を満たせない 6/26

6.1.2. PDA の形式的定義 PDA P=(Q, Σ, Γ, δ, q 0, Z 0, F) 有限制御部 Q: 状態の有限集合 Σ: 入力アルファベット Γ Z 0 q 0 : q 0 Q を満たす初期状態 F: F Q を満たす受理状態 Γ: スタックアルファベット ; スタックに記憶する文字集合 Z 0 : Z 0 Γを満たす開始記号 ; スタックには最初にこの文字が1つ入っているとする ( スタックの [ 底 ] を判定するための便宜上の文字 ) Σ 7/26

6.1.2. PDA の形式的定義 PDA P = ( Q, Σ, Γ, δ, q 0, Z 0, F ) 関数 δ: Q Σ Γ 2 Q Γ* δは 現在の状態 入力 1 文字 スタックのトップの文字 X が与えられ 次の状態 Xを置き換える文字列 Y を返す 関数 入力 1 文字 はεも可 Yは右が可 : Σ δは非決定的なので 同じ入力に対する行き先が複数ありえる 有限制御部 Z 0 Γ Y =ε; X の破棄 Y が 1 文字 ; X の置換 Y が 2 文字以上 ; 置換 + 追加 8/26

6.1.2. PDA の形式的な定義 例 ) L = { ww R w {0,1}* } を受理する PDA P 入力 ε q 0 q 1 ε q 2 0,1 0,1 Z 0 P = ({q 0,q 1,q 2 }, {0,1}, {0,1,Z 0 }, δ, q 0, Z 0, {q 2 }) 9/26

6.1.2. PDA の形式的な定義 例 ) L = { ww R w {0,1}* } を受理する PDA P ε q 0 q 1 0,1 0,1 Z 0 ε q 2 q 0 に関する δ 入力をスタックに積む δ ( q0,0, Z0) = {( q0,0 Z0)}, δ ( q0,1, Z0) = {( q0,1 Z0)} δ( q0,0,0) = {( q0,00)}, δ( q0,1,0) = {( q0,10)} δ( q, 0,1) = {( q, 01)}, δ( q,1,1) = {( q,11)} 0 0 0 0 ε 動作で q 1 に遷移 δ ( q, ε, Z ) = {( q, Z )}, δ( q, ε,0) = {( q,0)}, δ( q, ε,1) = {( q,1)} 0 0 1 0 0 1 0 1 P = ({q 0,q 1,q 2 }, {0,1}, {0,1,Z 0 }, δ, q 0, Z 0, {q 2 }) 10/26

6.1.2. PDA の形式的な定義 例 ) L = { ww R w {0,1}* } を受理する PDA P ε q 0 q 1 0,1 0,1 Z 0 ε q 2 q 1 に関するδ 入力とスタックのトップを比較 δ ( q1,0,0) = {( q1, ε )} δ ( q,1,1) = {( q, ε )} 1 1 入力とスタックのトップがどちらも空になったらε 動作でq 2 に遷移 δ ( q, ε, Z ) = {( q, Z )} 1 0 2 0 P = ({q 0,q 1,q 2 }, {0,1}, {0,1,Z 0 }, δ, q 0, Z 0, {q 2 }) 11/26

6.1.3. PDA の図による表現 関数 δ を辺のラベルで表現する a, X/α q 0 q 1 δ( q 0,a, X ) = {, ( q 1,α ), } の図示 12/26

6.1.3. PDA の図による表現 例 ) L = { ww R w {0,1}* } を受理する PDA P の δ ε, Z 0 /Z 0 ε, 0/0 q 0 ε, 1/1 q 1 ε, Z 0 /Z 0 q 2 0,Z 0 /0Z 0 1,Z 0 /1Z 0 0,0/00 1,0/10 0,1/01 1,1/11 0,0/ε 1,1/ε 13/26

6.1.4. PDA の状況の関係 オートマトンは 状態 だけで特定できた PDAでは 状態 + スタックの文字列 でないと状態が特定できない δ ^記法は適切でない PDAの状況とは (q,w,γ) ただし q Q: 状態 w Σ*: 残りの入力 γ Γ*: スタックの文字列 この 3 つにより PDA の状態を特定できる 状況は時点表示,ID(Instantaneous Description) とも言う 14/26

6.1.4. PDA の状況の関係 PDA P = ( Q, Σ, Γ, δ, q 0, Z 0, F ) において δ(q,a,x) が (p,α) を含むなら w Σ*, β Γ* に対して ( q, aw, Xβ) (p,w,αβ) P PDA の 1 ステップを表現 と書く (Pがわかっているなら と書く) 0ステップ以上の一般の動作を表現するときは * を使う : 1. 状況 I に対し I * I 2. 状況 I,J,Kに対し I J & J K * なら I K * 15/26

6.1.4. PDA の状況の関係 例 ) L = { ww R w {0,1}* } を受理する PDA ε q 0 q 1 0,1 0,1 ε q 2 入力 101101 に対する状況の遷移 : (q 0, 101101, Z 0 ) (q 0, 01101, 1Z 0 ) (q 0, 101101, Z 0 ) (q 1, 101101, Z 0 ) Z 0 (q 0, 101101, Z 0 ) (q 0, 01101, 1Z 0 ) (q 1, 101101, Z 0 ) 16/26

ε q 0 q 1 ε q 2 6.1.4. PDA の状況の関係 例 ) L = { ww R w {0,1}* } を受理する PDA 入力 101101 に対する状況の遷移 : (q 0, 101101, Z 0 ) (q 1, 101, 101Z 0 ) (q 1, 101101, Z 0 ) (q 0, 01101, 1Z 0 ) (q 1, 01, 01Z 0 ) 0,1 0,1 Z 0 (q 0, 01, 1101Z 0 ) (q 1, 01, 1101Z 0 ) (q 0, 1, 01101Z 0 ) (q 1, 01101, 1Z 0 ) (q 0, 1101, 01Z 0 ) (q 1, 1, 1Z 0 ) (q 1, 1, 01101Z 0 ) (q 1, 1101, 01Z 0 ) (q 0, 101, 101Z 0 ) (q 1, ε, Z 0 ) (q 0, ε, 101101Z 0 ) (q 2, ε, Z 0 ) (q 1, ε, 101101Z 0 ) 17/26

6.1.4. PDA の状況の関係 [ 定理 ] PDA P の計算プロセスを考えると (q,x,α) *(p,y,β) なら (q,xw,αγ) *(p,yw,βγ) [ 定理 ] PDA P の計算プロセスを考えると (q,xw,α) * (p,yw,β) なら (q,x,αγ) *(p,y,βγ) * * (q,x,αγ) (p,y,βγ) なら (q,x,α) (p,y,β) ではない 18/26

6.2. PDA の言語 PDA の受理状態 : 1. 入力を読み終わったときに受理状態にある 2. 入力を読み終わったときにスタックが空与えられたPDA P = ( Q, Σ, Γ, δ, q 0, Z 0, F ) に対して L (P) = { w ある q f F に対し (q 0,w,Z 0 ) (q * f,ε,α)} N(P) = { w ある q Q に対し (q 0,w,Z 0 ) (q,ε,ε)} * N(P) を考えるときは F は関係ないので 6つ組 (Q,Σ,Γ,δ,q 0,Z 0 ) で記述することもある 日本語テキストのN(P) の定義では q F となっているが間違い (258ページ) 19/26

6.2. PDA の言語 PDA P によって定義される 2 種類の言語 : 1. L(P): 入力を読み終わったときに受理状態 2. N(P): 入力を読み終わったときにスタックが空 P を固定すると一般に L(P) N(P) 例 ) スタックに最後に Z 0 がいつでも残る P に対しては N(P) = Φ [ 定理 ] PDA Q に対して N(Q) = L(P) を満たす PDA P が存在 PDA P に対して L(P) = N(Q) を満たす PDA Q が存在 20/26

[ 定理 ] 6.2. PDA の言語 1. PDA Q に対して N(Q) = L(P) を満たす PDA P が存在 2. PDA P に対して L(P) = N(Q) を満たす PDA Q が存在 [ 略証 ] 与えられた Q から条件を満たす P を以下の通り構成 アイデア : 最初にスタックの底に特別な記号 X 0 をつむ Q の計算でスタックが空 = Pの計算でスタックのトップがX 0 Q のスタックの底 :Z 0 P のスタックの底 :X 0 ε,x 0 /Z 0 X 0 Q Q の入力が終了かつスタックが空のときのみ P が受理状態でかつ入力が終了 P Q ε,x 0 /ε 21/26

[ 定理 ] 6.2. PDA の言語 1. PDA Q に対して N(Q) = L(P) を満たす PDA P が存在 2. PDA P に対して L(P) = N(Q) を満たす PDA Q が存在 [ 略証 ] 与えられた P から条件を満たす Q を以下の通り構成 アイデア1: 最初にスタックの底に特別な記号 X 0 をつむ P の計算の模倣中に スタックが空になることはないアイデア2: Pの受理状態からQの受理状態にε 動作で遷移する 入力を消費しないことに注意アイデア3: Qの受理状態ではスタックの中身をすべて破棄 22/26

[ 定理 ] 6.2. PDA の言語 1. PDA Q に対して N(Q) = L(P) を満たす PDA P が存在 2. PDA P に対して L(P) = N(Q) を満たす PDA Q が存在 [ 略証 ] 与えられた P から条件を満たす Q を以下の通り構成 アイデア1: 最初にスタックの底に特別な記号 X 0 をつむ P の計算の模倣中に スタックが空になることはないアイデア2: Pの受理状態からQの受理状態にε 動作で遷移する 入力を消費しないことに注意アイデア3: Qの受理状態ではスタックの中身をすべて破棄 Pのスタックの底 :Z 0 Qのスタックの底 :X 0 ε, 任意 /ε ε,x 0 /Z 0 X 0 P Q P P が受理状態でかつ入力が終了のときのみ Q の入力が終了かつスタックが空 23/26

6.3. PDA と CFG の等価性 [ 結論 ] PDAで受理できる言語 =CFGで生成できる言語 定理 1. 任意のCFG Gに対し L(G)=N(P) を満たす PDA Pが存在する 2. 任意の PDA P に対し N(P)=L(G) を満たす CFG Gが存在する 証明は省略 ( 難しくはないが 複雑 ) 24/26

6.4. 決定性 PDA( 概要 ) 決定性 PDA: PDA において 非決定性を取り除いたもの 次の状態 が一意的に決まる 正則言語 DPDA の言語 PDA の言語の関係 : 正則言語 L={ww R w {0,1}*} L={wcw R w {0,1}*} DPDA PDA=CFL DPDA のクラスは実用的クラス ( 例 ;LR(k),YACC) 25/26

6. プッシュダウン オートマトン : 演習問題 (8) [ 問 1] 正則言語は文脈自由言語に真に含まれることを証明せよ ( 集合 A が集合 B に真に含まれるとは A B かつ A B が成立するときを言う ) 26/26