Bestimme für den regulären Ausdruck ´(((a + b)^(**) * (b * b)) + a^(**))´ eine reguläre Grammatik ´G´ mit ´L(G) = M(R)´.
Die Grammatiken mit den Regeln ´S_1 -> a´ und ´S_1 -> b´ bzw. ´S_2 -> b´ erzeugen die Sprachen ´{a, b}´ und ´{b}´. Ferner erzeugt die Grammatik mit
´S_1^' -> lambda´, ´S_1^' -> S_1´, ´S_1 -> aS_1´, ´S_1 -> bS_1´, ´S_1 -> a´, ´S_1 -> b´
und Startsymbol ´S_1^'´ die Sprache ´{a, b}^(**)´. Für ´{a, b}^(**) {b}´ ergibt sich
´S_1^' -> lambda´, ´S_1^' -> S_1´, ´S_1 -> aS_1´, ´S_1 -> bS_1´, ´S_1 -> aS_2´, ´S_1 -> bS_2´, ´S_2 -> b´
Für ´{a, b}^(**){b}{b}´ ergibt sich (mit ´S_3 -> b´ für die Erzeugung des zweiten ´{b}´)
´S_1^' -> lambda´, ´S_1^' -> S_1´, ´S_1 -> aS_1´, ´S_1 -> bS_1´, ´S_1 -> aS_2´, ´S_1 -> bS_2´, ´S_2 -> bS_3´, ´S_3 -> b´.
Da ´{a}^(**)´ durch die Regeln ´S_4^' -> S_4´, ´S_4^' -> lambda´, ´S_4 -> aS_4´, ´S_4 -> a´ aus dem Startsymbol ´S_4^'´ erzeugt wird, erhält man insgesamt folgendes als Regelmenge: (Benutzung von S als Startsymbol)
´S -> S_1^'´, ´S -> S_4^'´, ´S_1^' -> lambda´, ´S_1^' -> S_1´, ´S_1 -> aS_1´, ´S_1 -> bS_1´, ´S_1 -> aS_2´, ´S_1 -> bS_2´, ´S_2 -> bS_3´, ´S_3 -> b´, ´S_4^' -> S_4´, ´S_4^' -> lambda´, ´S_4 -> aS_4´, ´S_4 -> a´
(Es ist klar, dass man zu den Regeln der gegebenen Grammatik ´(N, T, P, S)´ im regulären Fall nur ´A -> wS´ für ´A -> w´ in ´P´ und ´S -> lambda´ hinzunehmen muss. Dadurch vereinfacht sich obige Konstruktion etwas.)
´S -> S_1^'´, ´S -> S_4^'´, ´S_1^' -> lambda´, ´S_1^' -> S_1´, ´S_1 -> aS_1´, ´S_1 -> bS_1´, ´S_1 -> aS_2´, ´S_1 -> bS_2´, ´S_2 -> bS_3´, ´S_3 -> b´, ´S_4^' -> S_4´, ´S_4^' -> lambda´, ´S_4 -> aS_4´, ´S_4 -> a´
HPI, 2014-05-13, Theoretische Informatik 2, Blatt 6, Aufgabe 3
2014-07-22 16:49:42 UTC
2014-07-22 16:49:42 UTC