形式言語 と オートマト 第8回 鳥取大学工学研究科 情報エレクトロニクス専攻 田中美栄子 本日の予定1 形式言語とオートマト 有限状態オートマトン(FSA) M=<Q, Σ, δ, q0, F> Q :状態(state)の有限集合 Σ:入力記号(input symbol)の有限集合 δ :動作関数(move function) (δ:Q×Σ→Q) q0:初期状態(initial state) (q0∈Q) F :受理状態(accepting state)の有限集号(F∈Q) 形式言語とオートマト 例: M=<Q, Σ, δ, q0, F> Q={r,s,t} Σ={a} δ:Q×Σ→Q δ(r,a)=s δ(s,a)=t δ(t,a)=r q0=r F={r} 形式言語とオートマト 動作例 a 状態 a a r 状態rからスタート (最初のaを読む) $ 例: M=<Q, Σ, δ, q0, F> Q={r,s,t} Σ={a} δ:Q×Σ→Q δ(r,a)=s δ(s,a)=t δ(t,a)=r q0=r F={r} 形式言語とオートマト 動作例 a a 状態 a $ s 最初のaを読み終わったら 状態sに移る 例: M=<Q, Σ, δ, q0, F> Q={r,s,t} Σ={a} δ:Q×Σ→Q δ(r,a)=s δ(s,a)=t δ(t,a)=r q0=r F={r} 形式言語とオートマト 動作例 a a $ a 状態 t 最初のaを読み終わったら 状態tに移る 例: M=<Q, Σ, δ, q0, F> Q={r,s,t} Σ={a} δ:Q×Σ→Q 動作例 a a a $ δ(r,a)=s δ(s,a)=t δ(t,a)= q0=r F={ } 形式言語とオートマト 3つ目のa3を読み終わったら状態が なので受理! 有限状態オートマトンの瞬時表 現 a 状態 x $ s a 状態 x r 文字aを読んで状態sからrに移る (q,ax) (p,x) M 形式言語とオートマト $ 有限状態オートマトンの瞬時表 現 a1 状態 x $ an a1 q0 x 状態 an $ qn (q 0 , a1a 2 ...a n ) (q1 , a 2 ...a n ) ....(q n , ) M M * (q0 , a1a2 ...an ) (qn , ) M 形式言語とオートマト M 有限状態言語 * L( M) {w | w , (q0 , w) (qf , )} * M 例 ( r , baa ) ( r , aa ) (s, a ) ( t, ) M M * (r, baa ) ( t, ) M 形式言語とオートマト M 有限状態オートマトンの状態遷移 図 r a s a 形式言語とオートマト a t 本日の予定2 形式言語とオートマト 「有限状態言語=正規言語の生成規則」 としての正規文法 形式言語とオートマト 言語の生成装置としての形式文法 P1 S0 aS1 P 2 S1 aS2 q0 a P3 S2 aS0 P4 S2 a L={a3n}を生成する文法 q1 a a q2 L={a3n0}を受理するFSA S0 aS1 aaS2 aaaS0 aaaaS1 aaaaaS2 aaaaaa 形式言語とオートマト 文 法 文法(grammar) G N, , P, S0 非終端記号(nonterminal) N {S0 , S1 , S2 } 終端記号(terminal) {a} 生成規則(production rule) P { p1 , p2 , p3 , p4} 初期記号(initial symbol) S0 形式言語とオートマト 言語の生成装置としての形式文法 • 変数A,B,…,S,…の置き換え規則: 変数1個で生成できる言語の例:変数はSのみ,文字 は{a,b} 置き換え規則は S→ab, S→aSbの文法 生成できる文字列は 長さ1の文字列は生成できない 長さ2の文字列はabのみ生成できる S ab 長さ3bは生成不可, S aSb aabb 長さ4はaabbのみ 形式言語とオートマト 文 文法(grammar) 法 G N, , P, S0 N {S} 非終端記号(nonterminal) 終端記号(terminal) {a, b} 生成規則(production rule) P {S ab, S aSb} 初期記号(initial symbol) 形式言語とオートマト S 対応:文法~言語~オートマト ン オートマトン(左)と文法(右)の対応する階層性 FSA 正規文法 PDA 文脈自由文法 LBA 文脈依存文法 TM 句構造文法 形式言語とオートマト 文法例1(文脈自由文法) 文法(grammar) 非終端記号(nonterminal) 終端記号(terminal) 生成規則(production rule) 初期記号(initial symbol) G N, , P, S0 N {S} {a, b} P {S aSb, S ab} S0 S =導出= S aSb aaSbb aaaSbbb aaaaSbbbb .....a nb n L {a b } n n 形式言語とオートマト 文法例2(文脈自由文法) 文法(grammar) 非終端記号(nonterminal) 終端記号(terminal) 生成規則(production rule) 初期記号(initial symbol) G N, , P, S0 N {S} {a, b, c} P {S aSb, S ab, S c} S0 S =導出= S aSa abSba abaSaba abaaSaacaa ba L {wcw | w {a, b} } R 形式言語とオートマト * 文法例3(文脈自由文法) 文法(grammar) 非終端記号(nonterminal) 終端記号(terminal) 生成規則(production rule) 初期記号(initial symbol) G N, , P, S0 N {S} {a, b} P {S aSa, S bSb, S aa, S bb} S0 S =導出= S aSa aaSaa aabSbaa aabaabaa L {ww | w {a, b} } R 形式言語とオートマト * については 次回も詳しく説明します。 小テストで文法に慣れましょ う! 形式言語とオートマト
© Copyright 2024 ExpyDoc