Upload
kawena
View
33
Download
2
Embed Size (px)
DESCRIPTION
形式言語 と オートマトン. 第 9 回 鳥取大学工学研究科 情報エレクトロニクス 専攻 田中美栄子. 1. 本日 の予定 1. 文 法 . 形式言語とオートマトン. 1. 文法. 「有限状態言語=正規言語の生成規則」 としての正規文法. 形式言語とオートマトン. 1. 言語の生成装置としての形式文法. 遷移規則: δ( p,a )=q 状態 r にいて文字 a を読めば状態 s に移る. a. p. q. 状態 r にいて文字 a を出力し、状態 s に移る. S p = それまでの文生成の経過を記憶 - PowerPoint PPT Presentation
Citation preview
形式言語 と オートマトン
第 9 回鳥取大学工学研究科
情報エレクトロニクス専攻田中美栄子
形式言語とオートマトン
前回の授業では 有限オートマトンで受理される
言語を生成する 正規文法と
それより能力の高い、プッシュダウンオートマトンで受理される
言語を生成する文脈自由文法について学んだ
形式言語とオートマトン
本日の予定
文法の問題を多く解く
形式言語とオートマトン
前回の授業では
有限オートマトンよって受理される言語を生成するシステムとして正規文法や文脈自由文法を考えた
形式言語とオートマトン
今回の授業では
さらに,その文法の制限を緩めることにより ,有限オートマトンに比べて能力の高いオートマトンに対応する
文 法G: 文法
N: 非終端記号の有限集合
Σ : 終端 記号の有限集合 ( アルファベット )
P: 書き換え規則
S: 初期記号 ()
0,,, SPNG
形式言語とオートマトン
定義 5.1
形式言語とオートマトン
記号 ξ から書き換えを何回か (0 回も含む )行うことで記号列 η が導出されるとき
ξ⇒∗𝜂 と表す
形式言語とオートマトン
書き換え則について、を左辺、を右辺という
𝑝 :𝛼→ 𝛽
⇒ ξ1 𝛽ξ2
適用可能な記号列
適用結果の記号列
書き換え規則の適用
,
形式言語とオートマトン
文法 G で生成される w および生成される言語は次のように定義される
𝐿 (𝐺 )= {𝑤|𝑆⇒∗𝑤 ,𝑤∈Σ∗}
文法例 1( 文脈自由文法 )ノートをとって考えましょう
文法 (grammar)
非終端記号 (nonterminal)
終端記号 (terminal)
生成規則 (production rule)
初期記号 (initial symbol)
}{SN },{ ba
},{ abSaSbSP
0S,P,,NG
形式言語とオートマトン
SS 0
この文法が生成する言語は?
文法 (grammar)
非終端記号 (nonterminal)
終端記号 (terminal)
生成規則 (production rule)
初期記号 (initial symbol)
}{SN },{ ba
}{ abaSb,SSP
0S,P,,NG
形式言語とオートマトン
SS 0
= 導出 =nnnn baSbaSbaaaSbbaSbS 1133
}1|{ nbaL nn生成される言語:
aSbS
文法例 1( 文脈自由文法 )
文法例 2( 文脈自由文法 )ノートをとって考えましょう
言語
を生成する文脈自由文法を構成しなさい
}1 { 2 nbaL nn
形式言語とオートマトン
ヒント
},{ abSaSbSP
を参考にしてください
文法例 2( 文脈自由文法 )
言語
を生成する文脈自由文法を構成しなさい
}1 { 2 nbaL nn
形式言語とオートマトン
解答 0S,P,,NG}{SN },{ ba
},{ abbSaSbbSP SS 0
先の2例は使えそうだ!
文法例 3( 文脈自由文法 )ノートをとって考えましょう
言語
を生成する文脈自由文法を構成しなさい
}21|{ mnmbaL nm ≦≦≦
形式言語とオートマトン
文法例 3( 文脈自由文法 )
形式言語とオートマトン
01111 ,,, SPNG
}S{ 11 N
},{1 ba}{ 1111 abb,SaSSP
10 SS
}1 {1 nbaL nn }1 { 22 nbaL nn
02222 ,,, SPNG
}S{ 22 N
},{2 ba}{ 2222 abbbb,SaSSP
20 SS
二例の文法の和集合をとる!!
文法例 3( 文脈自由文法 )
言語
を生成する文脈自由文法を構成しなさい
}21|{ mnmbaL nm ≦≦≦
形式言語とオートマトン
解答
}abb→S,abS,aSbb→S,aSb→S{=P →21 GGG
形式言語とオートマトン
導出例
aaabbbbaaSbbbaSbS ⇒⇒⇒
}abb→S,abS,aSbb→S,aSb→S{=P →
}21|{ mnmbaL nm ≦≦≦
aaabbbbbaaSbbbaSbS ⇒⇒⇒
aaabbbaaSbbaSbS ⇒⇒⇒
aaabbbbbbaaSbbbbaSbbS ⇒⇒⇒
形式言語とオートマトン
これまでの例に対しては,一個の N={ S}だけで文法を構成できた
二つ以上の非終端記号を 必要とする場合も考えてみよう
文法例 4( 文脈自由文法 )
言語
を生成する文脈自由文法を構成しなさい.
})()(,1,,|{ kjjikjiabaL kji ≧
形式言語とオートマトン
生成する文字列は二通り
} ,1,,|{1 jikjiabaL kji ≧
形式言語とオートマトン
生成する文字列は二通り
} ,1,,|{2 kjkjiabaL kji ≧
分けて考えましょう,まず L1 を生成する文脈自由文法を構成しなさい
Step 1
形式言語とオートマトン
} ,1,,|{1 jikjiabaL kji ≧
01111 ,,, SPNG
},
,,{},,{},,{:G 1111111
abTaTbT
TaSaSSPbaTSN
を生成する文脈自由文法を構成しなさい
Step 2
形式言語とオートマトン
を生成する文脈自由文法を構成しなさい
Step 3
} ,1,,|{2 kjkjiabaL kji ≧
02222 ,,, SPNG
},
,,{},,{},,{:G 2222222
baBbTaT
aTSaSSPbaTSN
},
,,{},,{},,{:G 1111111
abTaTbT
TaSaSSPbaTSN
形式言語とオートマトン
},
,,{},,{},,{:G 2222222
baTbTaT
aTSaSSPbaTSN
Step 4
このまま,和集合をとるなら。。。
},,,
,,,,{
},,{},,{:G
baTbTaTaTSaSS
abTaTbTTaSSaSP
baTSN
形式言語とオートマトン
Step 4
を構成し
...,, aaabaaabaabaa などの文字列を生成しまう
},
,,{},,{},,{:G 1111111
abAaAbA
AaSaSSPbaASN
形式言語とオートマトン
},
,,{},,{},,{:G 2222222
baBbBaB
aBSaSSPbaBSN
Step 4
よって,二つ以上の非終端記号を必要とする
},
,,{},,{},,{:G 1111111
abAaAbA
AaSaSSPbaASN
形式言語とオートマトン
SPPSSSS
baN
,},{
},,{,N{S}G
2121
215.7
},
,,{},,{},,{:G 2222222
baBbBaB
aBSaSSPbaBSN
Step 4
})()(,1,,|{ kjjikjiabaL kji ≧
形式言語とオートマトン
SPPSSSS
baNNS
,},{
},,{,}{G
2121
215.7
)( ji )( kj また の文字列を生成する
Step 4
})()(,1,,|{ kjjikjiabaL kji ≧
形式言語とオートマトン
SbaBbBaBaBSaSS
abAaAbAAaSaSSSSSS
baS
},,,,
,,,,,,{
},,{,B}A,,S,S,{G
222
11121
215.7
ANSWER
言語
を生成する文脈自由文法は:
形式言語とオートマトン
実際にやってみることが大事です.ゆっくり考えて自分でやってみましょう.
お疲れ様 小テストです。
形式言語とオートマトン