形式言語 と オートマト 第2回 鳥取大学工学研究科 情報エレクトロニクス専攻 田中美栄子 復習 復 形式言語とオートマト 習 復習 機械(オートマトン)による仕事 一定の規則を与えられ, その通りに作業する 単純な仕事:単純な規則(例:偶奇判別) 複雑さのレベルを上げると できる仕事のレベルも上がる 複雑な仕事:複雑な規則(例:計算,言語) 形式言語とオートマト 復習 単純な仕事は単純な仕掛けで 2状態だけで判断できるのは ↑ {偶,奇}, 形式言語とオートマト ↓ {点,滅}, {合,否} 復習 単純な仕事は単純な仕掛けで 2状態を二つ使えば、4つを区別できる ↑ ↑ ↓ ↓ {(↑↑),(↑↓),(↓↑),(↓↓)}の4つ 形式言語とオートマト 復習 単純な仕事は単純な仕掛けで 8 2状態を3つ使えば、、 {(↑↑↑),(↑↑↓),(↑↓↑),(↑↓↓), (↓↑↑),(↓↑↓),(↓↓↑),(↓↓↓)} 8つを区別できる 形式言語とオートマト 復習 単純な仕事は単純な仕掛けで 8 2状態をN個使えば、、 {(↑↑…↑↑), (↑↑…↑↓),(↑↑…↓↑), (↑↑…↓↓),…,(↓↓…↑↓),(↓↓…↓↓)} 2N個を区別できる 形式言語とオートマト オートマトンの状態遷移図表現 状態遷移図で表す 有限オートマトン 形式言語とオートマト オートマトンの状態遷移図表現 言語理解の原理 : aとbからなる文字列 規則: bで読み終われば受理する (例abbb,ab) 条件を満す時→「受」で文字列を読み終わる 条件を満さない時→「拒」で文字列を読み終わる a b b 拒 a 形式言語とオートマト 受 オートマトンの状態遷移図表現 例えば,aaを入力してみる a a b b 拒 a 形式言語とオートマト 受 オートマトンの状態遷移図表現 例えば,aaを入力してみる a b b 拒 a a 形式言語とオートマト 受 オートマトンの状態遷移図表現 例えば,abを入力してみる a a b b 拒 a 形式言語とオートマト 受 オートマトンの状態遷移図表現 例えば,abを入力してみる a b b拒 形式言語とオートマト b 1文字読むたびに 受 a 機械の状態が変化 有限オートマトンの5字組み表 現 5字組みで表す 有限オートマト ン 形式言語とオートマト 有限オートマトンの5字組み表 現 5字組み表現 M= <Q,Σ,δ,q0,F> Q⇒状態の有限集合 Σ ⇒入力記号の有限集合 δ ⇒動作関数(δ:Q×Σ→Q) q0⇒初期状態(q0∈ Q) F ⇒受理状態の集合 形式言語とオートマト 有限オートマトンの5字組み表 現 状態の有限集合 Q = {q1 , q2} 状態の集合 a b q1 b a 形式言語とオートマト q2 有限オートマトンの5字組み表 現 入力記号の有限集合 Σ = {a , b} a b q1 b a 形式言語とオートマト q2 有限オートマトンの5字組み表 現 動作関数(δ:Q×Σ→Q) δ (q1 , a) = q1 δ (q1 , b) = q2 δ (q2 , a) = q1 δ (q2 , b) = q2 a b q1 δ (q1,b) = q2 b q2 a 機械が状態q1にいるときに入力bを読むと状態q2に移る 形式言語とオートマト 有限オートマトンの5字組み表 現 初期状態(q0∈ Q) q0 = q 1 a b b q1 q2 a 二重矢印: どの状態が初期状態かを指定する 形式言語とオートマト 有限オートマトンの5字組み表 現 受理状態の集合 F = {q2} a b b q1 q2 a 二重丸: どの状態が終了状態かを指定する 形式言語とオートマト 有限オートマトンの5字組み表 現 5字組み表現 M= <Q,Σ,δ,q0,F> Q = {q1 , q2} Σ = {a , b} δ :Q×Σ→Q δ (q1 , a) = q1 δ (q1 , b) = q2 δ (q2 , a) = q1 δ (q2 , b) = q2 q0 = q 1 F = {q2} 形式言語とオートマト a q1 b q2 a 状態遷移図と 5字組みが等価 b 有限オートマトン (Finite State Automata: FSA) の 5字組による表示 形式言語とオートマト 有限オートマトンの5字組み表 現 問題:下右図の有限オートマトンを5字組みで表せ b r a b s a b t a FSA: M = <Q, Σ, δ,q, F> の5字組 形式言語とオートマト 有限オートマトン (Finite State Automata: FSA) FSA: M = <Q, Σ, d, q, F> の5字組 ・ Q : 状態の集合 ・ Σ : 使用するアルファベット ・ d : 動作関数 ・ q :初期状態 ・ F : 受理状態の集合 形式言語とオートマト M = <Q, Σ, d, q, F> Q {r, s, t} {a, b} :Q Q ( r , a ) s, ( r , b) r , ( s, a ) t , ( s, b) r , (t , a ) t , (t , b) r q0 r F {t} 形式言語とオートマト b r a b s a b t a 有限オートマトン (Finite State Automata: FSA) の変遷を様相を使って見る 様相(configuration)=時点表示 形式言語とオートマト 様相?どういうこと? 先の問題を,abbaが受理されるかどう かを 様相(configuration)を使って調べる 形式言語とオートマト abbaを与えたときの一 連の動作を下記のように 簡潔に表す (r,abba) M (s,bba) M (r,ba) 様相 形式言語とオートマト M (r,a) M (s,ε) 様相の定義: (オートマトンの状態,未読の入力) (r,abba) M (s,bba) M (r,ba) 様相 形式言語とオートマト M (r,a) M (s,ε) 最初と最後の様相だけに 関心があるときは (r,abba) 形式言語とオートマト * M (s,ε) オートマトンの動作に従い、状態 が変化し,未読入力が減ってゆく (r,abba) M (s,bba) 形式言語とオートマト M (r,ba) M (r,a) M (s,ε) 最後に (終状態, 空列)となった ら受理、そうでなければ受理しない (r,abba) M (s,bba) M (r,ba) M (r,a) M (s,ε) 受理状態でない で終了 →拒否 形式言語とオートマト 先の図と同じ5字組みによる表示したMに aaaaを入力してみる M = <Q, Σ, d, q, F> Q {r, s, t} {a, b} :Q Q ( r , a ) s, ( r , b) r , ( s, a ) t , ( s, b) r , (t , a ) t , (t , b) r q0 r F {t} 形式言語とオートマト (r,aaaa) (t,aa) M M (s,aaa) (t,a) 受理状態 で終了 →受理 M M (t,ε) 形式言語とオートマト 非決定性有限オートマトンとは!? 決定性有限オートマトン すべての状態ですべての入力に対して、 遷移先が唯一 a 形式言語とオートマト 非決定性有限オートマトンとは!? 非決定性有限オートマトン 一つの入力に対し、遷移先が唯一でない a a 形式言語とオートマト 非決定性有限オートマトンとは!? 非決定性有限オートマトン 決定性有限オートマトンと同様に五字組みで表す 但し、動作関数σは以下のように表す Q σ:Q×Σ→2 形式言語とオートマト 非決定性FAの様相(=時点表示) 状態rでa を入力すると遷移は2種類 (r,aab) M (r,ab) M (r,b) M (r,ab) M (s,b) 受理状態でないrで入力が尽きるか、 状態sでbを読めない、のどちらにし てもaabは受理されない 形式言語とオートマト M (r,ε) a a r b s a t 非決定性有限オートマトンとは!? 以下のオートマトンを五字組みで表すと・・・ a a r b 形式言語とオートマト s a t 非決定性有限オートマトンとは!? Q {r , s, t} {a, b} Q :Q 2 (r , a) {r , s}, (r , b) {r}, (s, a) {t}, (s, b) , (t , a) , (t , b) q0 r F {t} 形式言語とオートマト a a r b s a t 非決定性有限オートマトンと は!? 動作関数の読み方は・・・ :Q 2 (r , a) {r , s}, (r , b) {r}, (s, a) {t}, (s, b) , (t , a) , (t , b) Q r a a s b 状態がrで入力記号がaである時は、 rとsどちらに遷移しても良い 形式言語とオートマト a t 非決定性有限オートマトンとは!? 動作関数の読み方は・・・ : Q 2Q (r , a) {r , s}, (r , b) {r}, (s, a) {t}, (s, b) , (t , a) , (t , b) a a r b 状態がtで入力記号がaである時は、 遷移先がないという事 形式言語とオートマト s a t 非決定性有限オートマトンとは!? この非決定性FSAにbaaを入力する a a r b 形式言語とオートマト s a t 非決定性有限オートマトンと は!? baaを入力すると、三種類の遷移がある。 a a r b 形式言語とオートマト s a t 非決定性有限オートマトンと は!? baaを入力すると、三種類の遷移がある。 ( r , baa) ( r , aa) ( r , a ) ( r , ) M M × × M ( r , baa) ( r , aa) ( r , a ) ( s, ) M M M ( r , baa) ( r , aa) ( s, a ) (t , ) M M 受理状態であるtで遷移が終わって いるので、baaは受理される 形式言語とオートマト ○ M r a s a t baaを入力すると、三種類の遷移がある。 r a s 複数の遷移に対し,一つ 形式言語とオートマト a ○ t を出れば,受理される 受理されない例 この非決定性FSAにaabを入力する a a r b 形式言語とオートマト s a t 受理されない例 この非決定性FSAにaabを入力する a a a r b 形式言語とオートマト s a t 受理されない例 この非決定性FSAにaabを入力する a a ar b 形式言語とオートマト s a t 受理されない例 この非決定性FSAにaabを入力する a a br b 形式言語とオートマト s a t 入力bで遷移できるのは 最終的にこの遷移のみ お疲れさまでした。 小テストです。 形式言語とオートマト
© Copyright 2024 ExpyDoc