2015/7/15 今日の予定 • 前回の復習 – 文脈自由文法 – プッシュダウンオートマトン 離散システム論 オートマトンと形式言語論(4) 知能システム科学 新田克己 • • • • • 文脈自由文法とプッシュダウンオートマトン(続) 文脈依存文法 チューリングマシン Chomskyの階層 計算量、決定可能性 文脈自由文法 (Context Free Grammar) • A → β A ∈VN, β∈V+ 例) A → aBCBde 前回の復習: 文脈自由文法 プッシュダウンオートマトン プッシュダウンオートマトン (PDA)(その1) • 文脈自由言語を受理する • Chomsky標準形 A→BC あるいは A→a • Greibach標準形 A→aα (αは非終端記号列,空でも良い) プッシュダウンオートマトン (その3) M=<K,Σ,Γ,P,q0,z0,F> K:内部状態の集合 Σ:入力記号の集合 Γ:スタック上に置く記号の集合 q0:初期状態(q0∈K) z0:スタック上の初期記号(z0∈Γ) F:最終状態の集合(F⊂K) P:状態推移関数δの集合 1 2015/7/15 たとえば K={q0,q1,q2} Σ={0,1} Γ={z0,A} F={q2} P: δ(q0,0,z0)={(q0,Az0)} δ(q0,0,A)={(q0,AA)} δ(q0,1,A)={(q1,λ)} δ(q1,1,A)={(q1,λ)} δ(q1, λ, z0)={(q2,λ)} (続き) qo 0,Z0/ AZ0 0,A/AA 1, A/ λ q1 1, A/ λ λ, Z0/ λ • このPDAは{0n1n|n=1,2,…}を受理する. • 一方,00101…のような入力記号列は受理し ない. • ある状態から推移できなくなった時点で,入 力記号列は受理できないとして棄却される. q2 文脈自由文法に対応するPDA (その1) 文脈自由文法 プッシュダウンオートマトン(続) • Greibach標準形( A→aγi )の文脈自由文法に 対応するPDA 文法G=<VN,VT,P,σ> PDA M=<K,VT,VN,P’,q1,σ,φ> K={q1} P’: δ(q1,a, A)={(q1,γ1),‥(q1,γn)} for A→aγi (i=1,…n) ∈ P 文脈自由文法に対応するPDA (その2) • 一般の文脈自由文法( A→α )に対応するPDA 文法G=<VN,VT,P,S> PDA M=<K, VT,Γ,P’,S,Z,F> K={ s, t, f } Γ=VN∪VT∪{Z} F={f} (続き) P’: (1)δ(s, ε, Z)={(t,SZ)} SをPDテープに (2)各A∈VNに対して, δ(t,ε,A)={(t,α)|A→α∈P} AがPDテープにあればαに置き換え (3)各a∈VTに対して, δ(t,a,a)={(t,ε)} 入力記号とPDテープが同じであれば打ち消し (4) δ(t,ε,Z)={(f,Z)} 入力記号がなくなり、PDテープが空なら終わり 2 2015/7/15 たとえば • 文法G=<VN, VT, P, δ> VN={I,E}, VT={a,b,0,1,(,),+,*}, δ=E P: I → a|b|Ia|Ib|I0|I1 E → I | E*E | E+E | (E) { a,b,aa,ab,a0,a1,aaa,aab,....., a*a, a+a, (a), a*b, a+b, ((a)),... } 演習 1.次の文法に対応するプッシュダウンオートマ トンを作成してください。 VT = {a,b} VN= {S,A} s=S P: S → aAA A → aS | bS | a (続き) • PDA M=<K,Σ,Γ,δ,q0,Z0,F> K={s,t,f}, Σ=VT={a,b,0,1,(,),+,*}, Γ=VT∪VN∪{Z0}∪{S}, q0=s, F={f} δ: δ(s,ε,Z0)={(t,EZ0)} δ(t,ε,I) = {(t,a), (t,b), (t,Ia), (t,Ib), (t,I0),(t,I1)} δ(t,ε,E) = {(t,I), (t,E+E), (t,E*E), (t,(E))} δ(t,a,a) = {(t,ε)}, δ(t,b,b)={(t,ε)} δ(t,0,0) = {(t,ε)}, δ(t,1,1)={(t,ε)} δ(t,(,() = {(t,ε)}, δ(t,),))={(t,ε)} δ(t,+,+) = {(t,ε)}, δ(t,*,*)={(t,ε)} δ(t,ε,Z0)={(f,Z0)} PDAに対応する文脈自由文法 (その1) PDA M=<K,Σ,Γ,P,q0,z0,φ> G=<VN,Σ,P’,σ> VN={σ}∪{[p,X,q]|p,q∈K,X∈Γ} P’: (1)σ→[q0,z0,q] for all q∈K PDAに対応する文脈自由文法 (その2) たとえば (2)δ(q,a, A)={…, (q1,B1…Bm), …)のとき [q,A,p]→a[q1,B1,q2] [q2,B2,q3]… [qm‐1,Bm‐1,qm][qm,Bm,p] for all qi, p∈K m=0の場合 δ(q,a, A)={…, (q1,λ), …)であり, [q,A,q1]→a e,Z/ε i,Z/ZZ • PDA P = (K, Σ, Γ, δ, q0,Z,F) K={q}, Σ={i,e}, Γ={Z}, q0=q q δ: δ(q,i,Z)={(q,ZZ)} δ(q,e,Z)={(q,ε)} • 文法G=(VT,VN,P,S) VT= {i,e}, VN={S}, P: S→[qZq] S→A [qZq]→i[qZq][qZq] A→iAA [qZq]→e A→e 3 2015/7/15 たとえば たとえば • PDA P = (K, Σ, Γ, δ, q0,Z,F) K={p,q}, Σ={a,b,c}, Γ={S,A,B}, q0=p, Z=S, F=Φ • PDA P = (K, Σ, Γ, δ, q0,Z,F) K={p,q}, Σ={a,b,c}, Γ={S,A,B}, q0=p, Z=S, F=Φ δ: δ(p,a,S)={(p,A)} δ(p,b,A)={(p,ε)} δ(p,c,A)={(q,ε)} δ(p,a,A)={(p,AB)} Δ: S→[pSp], S→[qSq] δ(p,a,S)={(p,A)} [pSp]→a[pAp], [pSp]→a[pAq] δ(p,b,A)={(p,ε)} [pAp]→b δ(p,c,A)={(q,ε)} [pAq]→c δ(p,a,A)={(p,AB)} [pAp]→a[pAp][pBp],[pAq]→a[pAq][qBq] [pAp]→a[pAq][qBp],[pAq]→a[pAp][pBq] δ(p,b,B)={(p,ε)} [pBp]→b δ(p,c,B)={(q,ε)} [qBq]→c δ(p,b,B)={(p,ε)} δ(p,c,B)={(q,ε)} 言語{anbncn} • 文脈自由文法で記述可能? No • 文脈依存文法 σ VN={σ,B,C}, VT={a,b,c} P: σ→ aσBC σ→aBC aσBC CB→BC aaσBCBC aB→ab bB→bb aaaBCBCBC bC→bc cC→cc aaaBBCCBC ... aaabbbccc 自然言語は? 文脈依存文法 (Context Sensitive Grammar) • α→β |α|≦|β| • α1Aα2→α1βα2 A∈VN,β∈V+,α1,α2∈V* 参考 句構造文法 α→β 置き換え規則の制約は 「αには少なくとも1つの非終端記号を含むこと」 のみ。 チューリング機械(TM) • 自然言語は,文脈自由文法と文脈依存文法 の間に位置すると言われる. • しかし,計算機上での効率を考慮して,文脈 自由文法で記述することが多い. 4 2015/7/15 チューリング機械の形式的定義 • チューリング機械 M:<K,Γ,Σ,q0,F,δ> K:状態の有限集合 Γ:テープ記号の有限集合,空白は# Σ:入力記号の集合,#以外のΓの部分集合 q0:初期状態 F:最終状態集合 δ:K×Γ → K×(Γー{#})×{L,R} チューリングマシン チューリング機械(続き) • テープは無限長で,読み書き可能. • テープヘッドは左右に移動可能. • 入力を認識できない場合停止しないこともあ りうる. • 0型言語に属さない言語を認識しようとした場 合,「属さない」ことを認識してはくれない. 線形拘束オートマトン • テープの長さが入力文の長さに比例(線形) した長さに制限された非決定性のチューリン グ機械. チョムスキーの階層 チョムスキーの階層(続き) 0. チューリング機械(Turing Machine) 句構造文法(Phrase Structure Grammar): 0型言語 1. 線形拘束オートマトン(Linear Bounded Automaton) 文脈依存文法(Context Sensitive Grammar):1型言語 2. プッシュダウンオートマトン(Pushdown Automaton) 文脈自由文法(Context Free Grammar):2型言語 3. 有限オートマトン(Finite Automaton) 正規文法(Regular Grammar):3型言語 • 文法が生成する言語の複雑さにより,文法 (言語)を階層的に分類したもの. • 上ほど緩く,下ほど制約が厳しい. • 下の言語は上の言語にそれぞれ包含される. 5 2015/7/15 万能チューリング機械 万能チューリング機械(続き) • テープを2つの部分に分ける. • 計算機の数学的モデル • 第一の部分には,書き換え規則により引き起 こされる動作の系列をコード化する. • 第二の部分には,(通常どおり)認識する記号 列が書かれている. • 第一の部分に書かれた動作の系列がプログ ラム,第二の部分に書かれた記号列がデー タに対応する. • 第一の部分のコードを解読し,その指示に 沿って第二の部分の記号列を認識する. チューリング機械における 計算量 • 認識するまでにヘッドが動いたテープ上のマ スの総数を,認識に必要な時間計算量(time complexity)という. • 決定性と非決定性では,認識する言語のクラ スに差はない.しかし,認識にかかる計算量 では差がある. 計算量 • 例: ソーティングアルゴリズム 3,6,2,9,4,2,1,... 2 バブルソート o(n ) クイックソート o(n*log n) • オーダーの違い n=10 n=100 n=1000 n=10000 n 2 100 10000 1000000 100000000 n * log n 33.2 664 99600 1328000 2 n 1012 PとNP (多項式時間計算可能性) • 決定性TMで文の長さMの多項式のオーダーの時間 計算量で認識できる言語のクラスの認識問題を「ク ラスP」という. • 非決定性TMで,さらに非決定的な分岐点で正しい 選択をして,Mの多項式のオーダーの時間計算量 で認識できる言語のクラスの認識問題を「クラスNP」 という. • NPの問題は,Mの指数関数に比例する時間計算量 がかかると推測される. 10 301 10 3010 30100 10 NP完全問題 • NP問題の中のあるものは,多項式時間計算不 可能である(P≠NP予想). NP NP完全 P 巡回セールスマン問題 整数線形計画法 ナップザック問題 6 2015/7/15 決定可能性(decidability) 決定可能性(続き) • 手続きによって,言語に属する文を一つずつ もれなく生成できるとき,その言語を「帰納的 可算(recursively enumerable)」という. • 0型言語は帰納的可算な集合. • TMによって決定可能な言語を帰納的という. • すべての入力文が言語に属するかどうかを 決定する(判断し,停止する)手続きが存在す るとき,その言語を認識する問題は「決定可 能」であるという. 決定可能性 (あるいは計算可能性) • あるクラスAに対して,各インスタンスa∈Aが 性質Pを持つかどうか(P(a)が真か偽か)を決 定するアルゴリズムが存在するとき,Aに対す るPの決定問題は「決定可能」という. • TMはアルゴリズムの定義を与える. • 言語に属する記号列が問題をコード化したも のとみなしている. 帰納的可算 帰納的 期末試験 • 7月21日に「オートマトンと言語理論」の試験 を行います。 • 授業中に行った演習問題を復習しておいてく ださい。 • 資料の持ち込みはできません。 • 説明問題も少し出ます。 • 試験結果は7月24日までにWebページで発表 します。落ちた人は7月28日に追試です。 7
© Copyright 2024 ExpyDoc