言語を生成する CFG (コンテキストフリー言語) を定義します。
L={a^nb^mc^n | n,m>=0}
誰でも問題に対処する方法を教えてもらえますか?
私の理解では、L は次のような要素で構成されています: { aabbbcc } (n=2 および m=3 と仮定しました)
前もってありがとうヨアヒム
言語を生成する CFG (コンテキストフリー言語) を定義します。
L={a^nb^mc^n | n,m>=0}
誰でも問題に対処する方法を教えてもらえますか?
私の理解では、L は次のような要素で構成されています: { aabbbcc } (n=2 および m=3 と仮定しました)
前もってありがとうヨアヒム
これは宿題のように聞こえるので、いくつかのヒントを示します。
文脈自由文法で a と c の数を一致させるにはどうすればよいでしょうか?
b のシーケンスを生成するには、どのような種類のプロダクションを使用できますか?
これら 2 つの部分問題を組み合わせて、単一の文脈自由文法にするにはどうすればよいでしょうか?
言語を生成する文脈自由文法を考える
L1 = {a^nc^n : n >= 0}
そのような
G1 = <{S},{a,c},S,{S -> aSc,S-> λ}>
の派生はG1
、次のように特徴付けることができます。
G1 =>1 S (via S)
=>* a^nSc^n (via n >= 0 applications of S -> aSc)
=>1 a^nc^n (via S -> λ)
文法は、言語における「」と「」のG1
数と配置の間に必要な関係を確立し、規則の適用で終了します。a
c
L1
S -> λ
G1
ルール を適用しての導出を終了する方法と、空の文字列の代わりにS -> λ
一連の を生成する方法を検討してください。m >= 0
b
これは、もう少し一般的な問題の解決策です。L2
文法によって生成された言語があるとします
G2 = <V,N,S2,P>
L2
同数の と で囲まれたa
文字列を生成するにはc
、 の規則をG1
次のように拡張して文法を取得しますG1'
。
G1' = <{S} ∪ V,{a,c} ∪ N,S,{S -> aSc,S -> S2} ∪ {P}>
問題を解決するには、それを生成するL2
言語{b}*
とG2
通常の文法を考えてみましょう。