PowerPoint プレゼンテーション

形式言語 と オートマトン
第14回
鳥取大学工学研究科
情報エレクトロニクス専攻
田中美栄子
本日の予定
形式言語とオートマトン
本日の予定
形式言語とオートマトン
試験の考察点(20%)
1.様相変化
2.PDAの7字組
形式言語とオートマトン
状態遷移図
様相?どういうこと?
形式言語とオートマトン
abbaを与えたときの一連
の動作を下記のように簡潔
に表す
(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,ε)
受理状態でない で終了
→拒否
形式言語とオートマトン
試験の考察点(20%)
1.様相変化
2.PDAの7字組
形式言語とオートマトン
状態遷移図
プッシュダウンオートマトンとは?
+
→ プッシュダウンオートマトン(PDA)
(FSAのような単純な装置では扱えない入力の判断を扱える)
試験
DPDA: deterministic pushdown automaton
NPDA: non- deterministic pushdown automaton
形式言語とオートマトン
記憶装置
ポップアップ
後入れ先出し(LIFO:Last-In First-Out)
方式の記憶装置
形式言語とオートマトン
決定性プッシュダウンオートマトン
M  Q, , ,  , q0 , Z0 , F 
Q
状態の有限集合

入力記号の有限集合


7字組
プッシュダウン記号の有限集合
動作関数
 : Q  ( { })  の部分集合  Q  
*
q0
Z0
F
初期状態
ボトムマーカー
受理状態の有限集合
q0  Q
Z0  
F Q
様相の書き方
a
…
x
$
この状態の様相は:
有限制御部
(q,ax,YZ0 )
q
状態
Y
形式言語とオートマトン

Z0
1ステップの動作と様相の書き方
…
a
x
$
有限制御部
状態
(q,ax,Z 0 )
p

形式言語とオートマトン
 (q, a, Y )  ( p, Y )

Z0
M
( p,x,Z0 )
受理条件
動作停止時の様相
(qn ,  , Z0 )
a1 a2 a3
…
qn  F
an $
受理
有限制御部
(q0 , a1a2 ...an , Z0 )
*M
状態
qn
(qn ,  , Z0 )
Z0
形式言語とオートマトン
例題
問1:下図の様相を示してください
…
y
b
有限制御部
状態
形式言語とオートマトン
q
(𝑞, 𝑏𝑦)
$
例題
(𝑞, 𝑏𝑦, 𝑚𝛾𝑍0 )
問2:下図の様相を示してください
…
y
b
$
有限制御部
状態
q
m
形式言語とオートマトン

Z0
問3:次の7字組で表されるDPDAに、入力aabbbbを読み込ませた場
合、様相変化を示せ。受理するかを示すこと
M  Q, , ,  , q0 , Z0 , F 
Q  {q0 , q1 , q2}
  {a, b}
  {A, Z0 }
 : Q  ( { })  の部分集合  Q  *
 (q0 , a, Z 0 )  (q0 , AAZ0 ),
 (q0 , a, A)  (q0 , AAA),
 (q0 , b, A)  (q1 ,  ),
 (q1 , b, A)  (q1 ,  ),
 (q1 ,  , Z 0 )  (q2 , Z 0 )
F  {q2 }
問3のAnswer
(q0 , aabbbb, Z 0 )
M (q0 , abbbb, AAZ0 )
M
(q1, bbb, AAAZ0 )
M
(q1 ,  , Z0 )
M (q1 , bb, AAZ0 )
M
(q0 , bbbb, AAAAZ0 )
M
(q1 , b, AZ0 )
M (q2 ,  , Z 0 )
受理状態
読み終えた
空
よって,受理する
𝑍0 を忘れずに,最後に𝜀を忘れずに!!!
形式言語とオートマトン
本日の予定
形式言語とオートマトン
1.言語の階層構造:言語とオートマトンの対応関係など
例
L  {a b | 1
≦ m ≦ n ≦ 2m}
m n
は文脈自由言語に属し,文脈自由文法で生成でき,
プッシュダウン オートマトンで識別できる.
形式言語とオートマトン
正規表現
2.有限状態オートマトン
例:
q0
c
b
a
ε
q1
c
q2
図示のNFAが受理する言語の正規表現を求めてください
a*b*cc*
形式言語とオートマトン
3.文脈自由文法のCHOMSKY標準形及び言語導出(2分木)
文法G=<V,T,P,S>, V={A}, T={a,b}, P={A→aAb, A→AA, A→ab},
S={A}によって、abaabb という語が導出される過程はどのようになる
か、空白を埋めよ
A ⇒
AA
⇒
AaAb ⇒ abaAb ⇒
abaabb
これと同じ言語を生成する上のGと同等で文法G’をChomsky標準形
といい、G’=<V’,T’,P’,S’>を構成し、abaabbの導出木を作れ
形式言語とオートマトン
G’=<V’,T’,P’,S’> abaabbの導出木は:
S
V’={A,B,C},
A
T’={a,b},
P' {A  BC, A  AA,
C  AC, B  a, C  b}
B
A
C B
A C
S’={A}
B
a
形式言語とオートマトン
C
ba a
C
b b
4.NFAをDFAに書き換えること: アルゴリズム2.1/2.2
例:
q0
c
b
a
ε
q1
c
q2
図示のNFAと同等なDFAの状態遷移図を描け.
形式言語とオートマトン
ANSWER
c
c
a
{q0,q1}
b
{q2}
a,b
b
{q1}
c
a,b,c
a
形式言語とオートマトン
Φ
5.状態遷移図
5字組及び状態遷移表の書き方
例1:
q0
c
b
a
ε
q1
c
q2
図示のNFAと同等なDFAを5字組で表せ.また、NFAとDFAの状
態遷移表を描け.
形式言語とオートマトン
図示のNFAと同等なDFAを5字組で表せ.また、NFAとDFAの状
態遷移表を描け.
M=<Q, Σ, δ, S, F>
Q={{q0, q1}, {q1}, {q2},  }, Σ={a,b,c}, S={q0, q1}, F={{q2}}
δ({q0, q1},a)= {q0, q1}, δ({q0, q1},b)= {q1},
δ({q0, q1},c)= {q2},
δ({q1},a)= ,
δ({q1},b)= {q1},
δ({q1},c)= {q2},
δ({q2},a)=  , δ({q2},b)=  , δ({q2},c)= {q2},
δ(  , a)=  , δ(  ,b)=  , δ(  ,c)= 
形式言語とオートマトン
図示のNFAと同等なDFAを5字組で表せ.また、NFAとDFAの状
態遷移表を描け.
NFA
a
b
𝑞0 {𝑞0 , 𝑞1 } {𝑞1 }
DFA
{𝑞2 }
𝑞1

{𝑞1 }
{𝑞2 }
𝑞2


{𝑞2 }
形式言語とオートマトン
a
c
b
{𝑞0 , 𝑞1 } {𝑞0 , 𝑞1 } {𝑞1 }
c
{𝑞2 }
{𝑞1 }
{𝑞2 }
{𝑞2 }



{𝑞2 }




{𝑞1 }
5.状態遷移図
5字組及び状態遷移表の書き方
例2:
正規表現b*a(a+b)*bbについてNFAとそれに同等な
DFAの状態遷移表と状態遷移図を作れ.
形式言語とオートマトン
正規表現b*a(a+b)*bbについてNFAとそれに同等な
DFAの状態遷移表と状態遷移図を作れ.
NFA
q0
DFA
a,b
b
b
a
q1
状態遷移表(略)
b
q2
b
b
a
{q 0 } a {q1}
b
a
b
{q1,q 2 }
a
形式言語とオートマトン
q32
{q1 , q2 , q3}