Gegeben sei die reguläre Grammatik

´G = ({S, A_1, A_2, A_3}, {a, b, c}, P, S)´

mit

´P = {S -> aA_1, S -> bA_2, A_1 -> aA_2, A_2 -> cA_3, A_3 -> a, A_3 -> b}´

Gib einen (deterministischen) endlichen Automaten an, der ´L(G)´ akzeptiert.

Approach

Zuerst formen wir die Grammatik um, damit wir nur noch die terminierende Regel ´$ -> lambda´ haben. Dies ergibt folgende Regelmenge:

´P = {S -> aA_1, S -> bA_2, A_1 -> aA_2, A_2 -> cA_3, A_3 -> a$, A_3 -> b$, $ -> lambda}´

Wir konstruieren zuerst einen nichtdeterministischen Automaten. Hierfür wird aus jeder Regel ´X -> xY´ ein Übergang ´Y in delta(X, x)´, der Anfangszustand ist ´S´ und die Menge ´F´ der akzeptierenden Zustände ist ´{$}´. Für ´delta´ ergibt sich:

´delta´ ´S´ ´A_1´ ´A_2´ ´A_3´ ´$´
´a´ ´{A_1}´ ´{A_2}´ ´O/´ ´{$}´ ´O/´
´b´ ´{A_2}´ ´O/´ ´O/´ ´{$}´ ´O/´
´c´ ´O/´ ´O/´ ´{A_3}´ ´O/´ ´O/´

Man sieht, dass alle Mengen einelementig, d.h. der Automat ist deterministisch. Formal muss als Zustand aber eine Menge verwendet werden und der erreichbare Zustand der leeren Menge mit betrachtet werden. Dies liefert den endlichen Automaten

´delta´ ´{S}´ ´{A_1}´ ´{A_2}´ ´{A_3}´ ´{$}´ ´O/´
´a´ ´{A_1}´ ´{A_2}´ ´O/´ ´{$}´ ´O/´ ´O/´
´b´ ´{A_2}´ ´O/´ ´O/´ ´{$}´ ´O/´ ´O/´
´c´ ´O/´ ´O/´ ´{A_3}´ ´O/´ ´O/´ ´O/´

Der gleiche Automat entsteht, wenn man mit ´{S}´ anfängt und nun die daraus erreichbaren Zustände ermittelt und von diesen aus analog fortfährt, d.h. die Teilmengen von ´{S, A_1 , A_2 , A_3 , $}´ die mindestens zwei Elemente enthalten sind nicht erreichbar und daher entbehrlich.


Solution
  • ´delta´ ´{S}´ ´{A_1}´ ´{A_2}´ ´{A_3}´ ´{$}´ ´O/´
    ´a´ ´{A_1}´ ´{A_2}´ ´O/´ ´{$}´ ´O/´ ´O/´
    ´b´ ´{A_2}´ ´O/´ ´O/´ ´{$}´ ´O/´ ´O/´
    ´c´ ´O/´ ´O/´ ´{A_3}´ ´O/´ ´O/´ ´O/´
  • URL:
  • Language:
  • Subjects: theoretical computer science
  • Type: Name
  • Duration: 40min
  • Credits: 5
  • Difficulty: 0.5
  • Tags: hpi deterministic finite automaton
  • Note:
    HPI, 2014-04-12, Theoretische Informatik 2, Blatt 2, Aufgabe 4
  • Created By: adius
  • Created At:
    2014-07-21 18:03:36 UTC
  • Last Modified:
    2014-07-21 18:03:36 UTC