Äquivalenz links- bzw. rechtslinearer Sprachen und endlicher Automaten

Aus Informatik
Wechseln zu: Navigation, Suche

Es gilt:
Zu jeder linksregulären Grammatik gibt es nur einen endlichen Automaten mit nur einem Endzustand und umgekehrt. Dies gilt auch für rechtsreguläre Grammatiken wegen der Äquivalenz.

Folgende Größen der linksregulären Grammatik und dem Automaten entsprechen einander:

Grammatik Automat
T <=> X
N <=> Z\s0
P <=>  \delta
S <=> se (Endzustand)

Beim Vergleich von rechtsregulärer Grammatik und Automat ändert sich dabei:

Grammatik Automat
N <=> Z\se
S <=> s0 (Anfangszustand)

Für linksreguläre Grammatiken ergibt sich folgende Zuordnung:

A --> Ba
<=> B a A.jpg
A --> a
<=> S0 a A.jpg
S --> Ba
<=> B a S.jpg
(A --> Aa
<=> A a.jpg)

Für rechtsreguläre Grammatiken ändert sich dabei:

B --> aA
<=> B a A.jpg
A --> a
<=> A a Se.jpg
B --> aS
<=> B a S.jpg
(A --> aA
<=> A a.jpg)

Einfaches Beispiel:

Rechtsreguläre Grammatik:
G={N,T,P,S}
N={a,1}
T={S,S2,Se}
S=S
P={(S --> aS2), (S2 --> a| 1 | aS2 | 1S2 | ε )}
Es entsteht ein ε-NEA:
Bsp1 Aufgabe7.jpg
Es zeigt sich, dass diese Grammtik nicht ideal ist, da ein ε-NEA entsteht.

Ändert man P zu P= {(S --> a | Sea | Se1)} erhält man eine linksreguläre Grammatik, die das gleiche Problem löst und zugleich ideal ist.
Bsp1 Aufgabe7 2.jpg