30
形形形形 形形形形形形 形9形 形形形形形形形形形 形形形形形形形形形形形形 形形形形形

形式言語 と オートマトン

  • 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

Page 1: 形式言語  と オートマトン

形式言語 と オートマトン

第 9 回鳥取大学工学研究科

情報エレクトロニクス専攻田中美栄子

Page 2: 形式言語  と オートマトン

形式言語とオートマトン

前回の授業では 有限オートマトンで受理される

言語を生成する 正規文法と

それより能力の高い、プッシュダウンオートマトンで受理される

言語を生成する文脈自由文法について学んだ

Page 3: 形式言語  と オートマトン

形式言語とオートマトン

本日の予定

文法の問題を多く解く

Page 4: 形式言語  と オートマトン

形式言語とオートマトン

前回の授業では

有限オートマトンよって受理される言語を生成するシステムとして正規文法や文脈自由文法を考えた

Page 5: 形式言語  と オートマトン

形式言語とオートマトン

今回の授業では

さらに,その文法の制限を緩めることにより ,有限オートマトンに比べて能力の高いオートマトンに対応する

Page 6: 形式言語  と オートマトン

文   法G: 文法

N: 非終端記号の有限集合

Σ : 終端 記号の有限集合 ( アルファベット )

P: 書き換え規則

S: 初期記号 ()

0,,, SPNG

形式言語とオートマトン

定義 5.1

Page 7: 形式言語  と オートマトン

形式言語とオートマトン

記号 ξ から書き換えを何回か (0 回も含む )行うことで記号列 η が導出されるとき

ξ⇒∗𝜂 と表す

Page 8: 形式言語  と オートマトン

形式言語とオートマトン

書き換え則について、を左辺、を右辺という

𝑝 :𝛼→ 𝛽

 ⇒ ξ1 𝛽ξ2

適用可能な記号列

適用結果の記号列

書き換え規則の適用

Page 9: 形式言語  と オートマトン

,

形式言語とオートマトン

文法 G で生成される w および生成される言語は次のように定義される

𝐿 (𝐺 )= {𝑤|𝑆⇒∗𝑤 ,𝑤∈Σ∗}

Page 10: 形式言語  と オートマトン

文法例 1( 文脈自由文法 )ノートをとって考えましょう

文法 (grammar)

非終端記号 (nonterminal)

終端記号 (terminal)

生成規則 (production rule)

初期記号 (initial symbol)

}{SN },{ ba

},{ abSaSbSP

0S,P,,NG

形式言語とオートマトン

SS 0

この文法が生成する言語は?

Page 11: 形式言語  と オートマトン

文法 (grammar)

非終端記号 (nonterminal)

終端記号 (terminal)

生成規則 (production rule)

初期記号 (initial symbol)

}{SN },{ ba

}{ abaSb,SSP

0S,P,,NG

形式言語とオートマトン

SS 0

= 導出 =nnnn baSbaSbaaaSbbaSbS 1133

}1|{ nbaL nn生成される言語:

aSbS

文法例 1( 文脈自由文法 )

Page 12: 形式言語  と オートマトン

文法例 2( 文脈自由文法 )ノートをとって考えましょう

言語

     を生成する文脈自由文法を構成しなさい

}1 { 2 nbaL nn

形式言語とオートマトン

ヒント

},{ abSaSbSP

を参考にしてください

Page 13: 形式言語  と オートマトン

文法例 2( 文脈自由文法 )

言語

     を生成する文脈自由文法を構成しなさい

}1 { 2 nbaL nn

形式言語とオートマトン

解答 0S,P,,NG}{SN },{ ba

},{ abbSaSbbSP SS 0

Page 14: 形式言語  と オートマトン

先の2例は使えそうだ!

文法例 3( 文脈自由文法 )ノートをとって考えましょう

言語

     を生成する文脈自由文法を構成しなさい

}21|{ mnmbaL nm ≦≦≦ 

形式言語とオートマトン

Page 15: 形式言語  と オートマトン

文法例 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

二例の文法の和集合をとる!!

Page 16: 形式言語  と オートマトン

文法例 3( 文脈自由文法 )

言語

     を生成する文脈自由文法を構成しなさい

}21|{ mnmbaL nm ≦≦≦ 

形式言語とオートマトン

解答

}abb→S,abS,aSbb→S,aSb→S{=P →21 GGG

Page 17: 形式言語  と オートマトン

形式言語とオートマトン

導出例

aaabbbbaaSbbbaSbS ⇒⇒⇒

}abb→S,abS,aSbb→S,aSb→S{=P →

}21|{ mnmbaL nm ≦≦≦ 

aaabbbbbaaSbbbaSbS ⇒⇒⇒

aaabbbaaSbbaSbS ⇒⇒⇒

aaabbbbbbaaSbbbbaSbbS ⇒⇒⇒

Page 18: 形式言語  と オートマトン

形式言語とオートマトン

これまでの例に対しては,一個の N={ S}だけで文法を構成できた

二つ以上の非終端記号を 必要とする場合も考えてみよう

Page 19: 形式言語  と オートマトン

文法例 4( 文脈自由文法 )

言語

を生成する文脈自由文法を構成しなさい.

})()(,1,,|{ kjjikjiabaL kji ≧

形式言語とオートマトン

生成する文字列は二通り

Page 20: 形式言語  と オートマトン

} ,1,,|{1 jikjiabaL kji ≧

形式言語とオートマトン

生成する文字列は二通り

} ,1,,|{2 kjkjiabaL kji ≧

分けて考えましょう,まず L1 を生成する文脈自由文法を構成しなさい

Step 1

Page 21: 形式言語  と オートマトン

形式言語とオートマトン

} ,1,,|{1 jikjiabaL kji ≧

01111 ,,, SPNG

},

,,{},,{},,{:G 1111111

abTaTbT

TaSaSSPbaTSN

を生成する文脈自由文法を構成しなさい

Step 2

Page 22: 形式言語  と オートマトン

形式言語とオートマトン

を生成する文脈自由文法を構成しなさい

Step 3

} ,1,,|{2 kjkjiabaL kji ≧

02222 ,,, SPNG

},

,,{},,{},,{:G 2222222

baBbTaT

aTSaSSPbaTSN

Page 23: 形式言語  と オートマトン

},

,,{},,{},,{:G 1111111

abTaTbT

TaSaSSPbaTSN

形式言語とオートマトン

},

,,{},,{},,{:G 2222222

baTbTaT

aTSaSSPbaTSN

Step 4

このまま,和集合をとるなら。。。

Page 24: 形式言語  と オートマトン

},,,

,,,,{

},,{},,{:G

baTbTaTaTSaSS

abTaTbTTaSSaSP

baTSN

形式言語とオートマトン

Step 4

を構成し

...,, aaabaaabaabaa などの文字列を生成しまう

Page 25: 形式言語  と オートマトン

},

,,{},,{},,{:G 1111111

abAaAbA

AaSaSSPbaASN

形式言語とオートマトン

},

,,{},,{},,{:G 2222222

baBbBaB

aBSaSSPbaBSN

Step 4

よって,二つ以上の非終端記号を必要とする

Page 26: 形式言語  と オートマトン

},

,,{},,{},,{:G 1111111

abAaAbA

AaSaSSPbaASN

形式言語とオートマトン

SPPSSSS

baN

,},{

},,{,N{S}G

2121

215.7

},

,,{},,{},,{:G 2222222

baBbBaB

aBSaSSPbaBSN

Step 4

Page 27: 形式言語  と オートマトン

})()(,1,,|{ kjjikjiabaL kji ≧

形式言語とオートマトン

SPPSSSS

baNNS

,},{

},,{,}{G

2121

215.7

)( ji )( kj また      の文字列を生成する

Step 4

Page 28: 形式言語  と オートマトン

})()(,1,,|{ kjjikjiabaL kji ≧

形式言語とオートマトン

SbaBbBaBaBSaSS

abAaAbAAaSaSSSSSS

baS

},,,,

,,,,,,{

},,{,B}A,,S,S,{G

222

11121

215.7

ANSWER

言語

  を生成する文脈自由文法は:

Page 29: 形式言語  と オートマトン

形式言語とオートマトン

実際にやってみることが大事です.ゆっくり考えて自分でやってみましょう.

Page 30: 形式言語  と オートマトン

 お疲れ様         小テストです。

形式言語とオートマトン