形式言語 と オートマトン 第12回 鳥取大学工学研究科 情報エレクトロニクス専攻 田中美栄子 本日の予定 形式言語とオートマトン 正規表現⇒非決定性有限オートマトン a L=a*b* r 形式言語とオートマトン b ε t 正規表現⇒非決定性有限オートマトン a L=a*b*c* r 形式言語とオートマトン b ε s c ε t 正規表現と有限オートマトン(連結) • L=a*b*=L1L2 • L1=a* • L2=b* a b a b 正規表現と有限オートマトン(和) • L=a+b=L1 U L2 a, b • L1=a a • L2=b b 正規表現と有限オートマトン(繰返し) • L=L1+L2 • L1=a* • L2==b* a a b b 正規表現 と 有限オートマトン • L=a*b*=L1L2 • L1=a* • L2=b* a b a b 正規表現 と 有限オートマトン • L=a*b*=L1L2 • L1=a* • L2=b* a b a b 正規言語 : FAの受理する言語,あるいは 正規表現の表す言語のクラス 正規言語は言語の和、連結、*について 閉じている 正規言語は積、補の集合演算についても 閉じている 形式言語とオートマトン 有限状態言語は対応するFSAがある オートマトンで書けば 有限状態言語L1にはそれを識別 できるFSAがある.⇒M1と呼ぶ 有限状態言語L2にはそれを識別 できるFSAがある.⇒M2と呼ぶ 形式言語とオートマトン 有限状態言語が和で閉じること オートマトンで書けば L1+ L2を識別するFSAはM1と M2を並列に繋げたもの 形式言語とオートマトン 有限状態言語が連結で閉じること オートマトンで書けば L1 L2を識別するFSAはM1とM2を直 列に繋げたもの 形式言語とオートマトン 有限状態言語が*積で閉じること L1が有限状態言語ならL1* も有限状態言語 L1が正規表現ならその*積も正 規表現 形式言語とオートマトン 有限状態言語が*積で閉じること オートマトンで書けば L1のFSAをループしたものもFSA になる 形式言語とオートマトン 正規言語の例 𝐿1 = 𝑎𝑎𝑎 𝐿2 = 𝑎𝑏, 𝑏𝑎 = 𝑎𝑏 ∪ 𝑏𝑎 𝐿3 = 𝑎𝑛 𝑛 ≥ 0 = {𝑎}∗ 𝐿4 = {𝑎𝑏, 𝑏𝑎}∗ 𝐿5 = 𝑎2𝑛 𝑛 ≥ 0 ∪ 𝑏 3𝑛 𝑛 ≥ 0 𝐿6 = 𝑎𝑎 {𝑎, 𝑏}∗ {𝑏𝑏𝑏} これらを表す正規表現は 形式言語とオートマトン 𝛼1 = 𝑎 ∙ 𝑎 ∙ 𝑎 = 𝑎𝑎𝑎 = 𝑎3 𝛼2 = 𝑎 ∙ 𝑏 + 𝑏 ∙ 𝑎 = 𝑎𝑏 + 𝑏𝑎 𝛼3 = 𝑎 ∗ 𝛼4 = (𝑎 ∙ 𝑏 + 𝑏 ∙ 𝑎)∗ = (𝑎𝑏 + 𝑏𝑎)∗ 𝛼5 = (𝑎 ∙ 𝑎)∗ + (𝑏 ∙ 𝑏 ∙ 𝑏)∗ = (𝑎𝑎)∗ + (𝑏𝑏𝑏)∗ = (𝑎2 )∗ + (𝑏 3 )∗ 𝛼6 = (𝑎 ∙ 𝑎) ∙ (𝑎 + 𝑏)∗ ∙ 𝑏 ∙ 𝑏 ∙ 𝑏 = 𝑎𝑎(𝑎 + 𝑏)∗ 𝑏𝑏𝑏 = 𝑎2 (𝑎 + 𝑏)∗ 𝑏 3 形式言語とオートマトン 先ほどの例より 語や言語の連接を表すために記号” ∙ ” 言語の和を表すために記号” + ” 言語のスター演算を表すために記号” * ” が用いられる 形式言語とオートマトン (𝑎 + 𝑏)∗ :aとbのどちらかが0回以上繰り返すような 語の集合を表す (𝑎∗ 𝑏 ∗ )∗ :aが0回以上繰り返しその後にbが0回以上 繰り返すような語の集合 同じ言語を表す正規表現は1つとは限らない! 形式言語とオートマトン 形式言語とオートマトン aで始まり、bで終わる語からなる言語を表す 正規表現を求めなさい (必ず和とスター演算を一回以上使用すること) 形式言語とオートマトン aで始まり、bで終わる語からなる言語を表す 正規表現を求めなさい (必ず和とスター演算を一回以上使用すること) 𝑎(𝑎 + 形式言語とオートマトン ∗ 𝑏) 𝑏 長さが奇数の語からなる言語を表す 正規表現を求めよ (必ず和とスター演算を一回以上使用すること) 形式言語とオートマトン 長さが奇数の語からなる言語を表す 正規表現を求めよ (必ず和とスター演算を一回以上使用すること) ((𝑎 + 𝑏)(𝑎 + 形式言語とオートマトン ∗ 𝑏)) (𝑎 + 𝑏)
© Copyright 2024 ExpyDoc