文法をチョムスキー標準形(CNF)に変更したいです。
これは例です
S--> AB | ɛ
A--> aASb | a
B--> bS
私はこれを解決しようとします
S --> [A] [B]
[A] --> [aA] [Sb] | [a]
[aA] --> [a] A
[Sb] --> s [b]
[a] --> a
[b] --> b
答えはわかりません。それが正しいか間違っているか誰か教えてもらえますか?
文法をチョムスキー標準形(CNF)に変更したいです。
これは例です
S--> AB | ɛ
A--> aASb | a
B--> bS
私はこれを解決しようとします
S --> [A] [B]
[A] --> [aA] [Sb] | [a]
[aA] --> [a] A
[Sb] --> s [b]
[a] --> a
[b] --> b
答えはわかりません。それが正しいか間違っているか誰か教えてもらえますか?
1 つの間違いは、S --> ɛ
トランジションを削除したことです。それが必要です (S --> ɛ
は CNF で明確に許可されていますが、許可されていAnyNonTerminalOtherThanS --> ɛ
ません)。
次に、ルール[A] --> [a]
は[A] --> a
、RHS に項目が 1 つしかない場合、それが端末である必要があるためです。
[aA] --> [a] A
[Sb] --> s [b]
これら 2 つはタイプミスのようA
でs
あり、存在しません。あなたはおそらく次のことを意味していました:
[aA] --> [a] [A]
[Sb] --> [S] [b]
それ以外は、あなたが持っているものが正しいです。