David Schirrmeister ee10c126a9 update
2025-05-18 15:33:18 +02:00

8.4 KiB
Raw Blame History

Übungsblatt 5

Wenzel Schwan (1125033), Paul Kneidl (1125219), David Schirrmeister (1125746), Michelle Klein (1126422)

Übung 1

Bestimmen Sie den Nerode-Index der folgenden Sprachen und begründen Sie Ihre Antwort.
Ist der Nerode-Index endlich, so geben Sie alle Nerode-Klassen der Sprache an.
Ist der Nerode-Index unendlich, so geben Sie 5 selbst gewählte Nerode-Klassen der Sprache an.

  • L_2 = \{ w \in \{ a, b \}^* \mid \#a(w) \equiv \#b(w) \mod 3 \} über dem Alphabet \Sigma_2 = \{ a, b \}

    • Nerode-Index = 3
      • N_0 = N(ε) = \{w ∈ \{a,b\}^*\space|\space 0 = \#_a(w) = \#b(w) \}
      • N_1 = N(a) = \{w ∈ \{a,b\}^*\space|\space 1 ≡ \#_a(w) ≡ \#b(w) \mod 3\}
      • N_2 = N(aa) = \{w ∈ \{a,b\}^*\space|\space 2 ≡ \#_a(w) ≡ \#b(w) \mod 3\}
      • N_3 = N(aaa) = \{w ∈ \{a,b\}^*\space|\space 0 ≡ \#_a(w) ≡ \#b(w) \mod 3\}
  • L_3 = \{ w \in \Sigma^* \mid w \text{ enthält eine ungerade Anzahl von Nullen} \} über dem Alphabet \Sigma_3 = \{ 0, 1 \}

    • Nerode-Index = 2
      • N_1 = N(1) = \{w ∈ {0,1}^*\space|\space 0 ≡ \#_1(w) \mod 2\}
      • N_2 = N(0) = \{w ∈ {0,1}^*\space|\space 1 ≡ \#_1(w) \mod 2\}
  • L_4 = \{ w \cdot w^{\text{rev}} \mid w \in \{ 0, 1 \}^* \} über dem Alphabet \Sigma_3 = \{ 0, 1 \} Dabei ist w^{\text{rev}} die Umkehrung von w, also: w = w_1w_2\ldots w_n \Rightarrow w^{\text{rev}} = w_nw_{n-1}\ldots w_1 für n \in \mathbb{N},\ w_i \in \{ 0, 1 \}

    • Nerode-Index = ∞
      • Man müsste unendlich viele Zustände speichern, um diese dann umgekehrt wieder einzufügen, daher unendlicher Nerode-Index
      • Beispiel Nerode-Klassen:
        • N_0 = N(\varepsilon) = \{ w \in \{0,1\}^* \mid \exists u \in \{0,1\}^* : w = u \cdot u^{\text{rev}} \}
        • N_1 = N(0) = \{ w \in \{0,1\}^* \mid w \text{ beginnt mit } 0 \text{ und es existiert kein } u : w = u \cdot u^{\text{rev}} \}
        • N_2 = N(00) = \{ w \in \{0,1\}^* \mid w = 00 \cdot v \text{ mit } v \neq 00, \text{ sodass } w \notin L_4 \}
        • N_3 = N(1) = \{ w \in \{0,1\}^* \mid w \text{ beginnt mit } 1 \text{ und ist kein Palindrom der Form } u \cdot u^{\text{rev}} \}
        • N_4 = N(000) = \{ w \in \{0,1\}^* \mid w = 000 \cdot v, \text{ aber kein } u : w = u \cdot u^{\text{rev}} \}

Übung 2

Betrachten Sie die Sprache
L = \{ s \in \Sigma^* \mid \#0(s) = \#1(s) \}
über dem Alphabet \Sigma = \{ 0, 1 \}.

Welche der folgenden Mengen kann genutzt werden, um zu zeigen, dass L einen unendlichen Nerode-Index hat? Begründen Sie Ihre Antwort.

  • (a) X_1 = \{ 0^{2i}1^i \mid i \in \mathbb{N} \}

  • (b) X_2 = \{ 0 1^i 0^i 0 \mid i \in \mathbb{N} \}

Antwort:

  • (a)
    • besteht aus mehr Nullen als Einsen
    • Für zwei verschiedene Worte w_i und w_j
      • durch Anhängen eines Suffixes z, der gleichviele Nullen und Einsen hat
        • weiterhin nicht ∈ L
      • → Wörter lassen sich unterscheiden → nicht Nerode-Äquivalent
  • darum nicht (b):
    • Unterschied immer genau zwei Nullen mehr als Einsen
      • Nicht sicher, dass sie alle Nerode-ungleich sind

Übung 3

Betrachten Sie den Automaten A aus Abbildung 1 über dem Alphabet \Sigma = \{ 0, 1 \}.
Lesen Sie sich nochmals Definition 4.8 aus den Vorlesungsfolien sowie die Definition der $k$-Äquivalenz (\equiv_k^A) durch.

image_842.png

3(a)

Beantworten Sie die folgenden Fragen und begründen Sie Ihre Antwort mit Hilfe der Definition von $k$-Äquivalenz.

  • (i) Sind a und g 1-äquivalent?
    • nein, da man von q mithilfe vom Wort 1 in einen akzeptierenden Zustand kommt und von a aus nicht.
  • (ii) Sind a und g 2-äquivalent?
    • nein, da sie auch nicht 1 äquivalent sind
  • (iii) Sind d und e 2-äquivalent?
    • nein, da man mit dem Wort ε in unterschiedlich akzeptierenden Zuständen landet.
  • (iv) Sind d und f 1-äquivalent?
    • ja, sie kommen für 1 bzw. 0 gleichermaßen in einen (nicht) akzeptierenden Zustand.
  • (v) Sind d und f 2-äquivalent?
    • ja, da sie 1-äquivalent sind und für Wörter der Länge 2 ebenfalls gleich reagieren.

3(b)

Beschreiben Sie, was Sie tun müssen, um über die Definition von 6-Äquivalenz zu überprüfen, ob d und f 6-äquivalent sind. Wie aufwendig wäre dieses Vorgehen?

  • ich müsste alle Wörter der Länge ≤ 6 überprüfen in beiden Zuständen.
  • es gibt 2^7-1 verschiedene Wörter, die ich je zweimal einsetzen müsste.

3(c)

Die Zustände d und f sind 5-äquivalent (dies müssen Sie nicht selbst begründen).
Nutzen Sie dies aus, um mit möglichst wenig Aufwand zu überprüfen, ob d und f 6-äquivalent sind. Begründen Sie Ihre Antwort.

  • die beiden Zustände
    • bleiben bei Eingabe von beliebig vielen Einsen im gleichen (akzeptierenden) Zustand.
    • gehen bei Eingabe von einer 0 in den Zustand c
      • ab da gleiches Verhalten, da gleicher Zustand nach gleicher Eingabe
  • daher verhalten sie sich bei beliebiger Wortlänge identisch

3(d)

Bestimmen Sie für i \in \{0, 1, 2\} nachvollziehbar die $i$-äquivalenten Zustände von A.

  • i = 0
    • \{\{d,f\},\{a,c,e,g\}\}
    • akzeptierende, nicht akzeptierende Zustände
  • i = 1
    • \{\{d,f\},\{c,e,g\},\{a\}\}
    • d, f führen für
      • 0 in einen nicht akzeptierenden Zustand
      • 1 in einen akzeptierenden Zustand
    • c, e, g führen für
      • 0 in einen nicht akzeptierenden Zustand
      • 1 in einen akzeptierenden Zustand
    • a führt für
      • 0,1 in einen nicht akzeptierenden Zustand
  • i = 2
    • \{\{d,f\},\{c,e,g\},\{a\}\}
    • alle Übergänge bleiben wie bei i = 1
    • Wörter 00, 01, 10, 11 führen in gleiche Akzeptanzklassen

Übung 4

4(a)

Gegeben sei eine Sprache L über dem Alphabet \Sigma. Sei i der Nerode-Index von L.
Was ist der Nerode-Index der Sprache \Sigma^* \setminus L? Begründen Sie Ihre Antwort.

  • da für alle Wörter u ∈ L gilt u \not ∈ L'
  • und alle akzeptierenden Zustände in L in L' nicht akzeptierend sind (und umgekehrt)
  • ist der Nerode-Index ebenfalls i

4(b)

Gegeben seien die Sprachen

  • L_1 = \{ a^n \mid n \in \mathbb{N} \}
  • L_2 = \{ b^n \mid n \in \mathbb{N} \}

über dem Alphabet \Sigma = \{ a, b \}.

Bestimmen Sie die Nerode-Indizes der Sprachen L_1, L_2 und L_1 \cup L_2 und begründen Sie jeweils Ihre Antwort.

  • N(L_1)
    • = 3
      • kein Zeichen eingegeben
      • b eingegeben
        • danach schleife auf sich selbst mit a,b
      • a eingegeben (akzeptierend)
        • Schleife auf sich selbst mit a
        • Übergang zu b eingegeben mit b
  • N(L_2)
    • = 3
      • kein Zeichen eingegeben
      • a eingegeben
        • danach schleife auf sich selbst mit a,b
      • b eingegeben (akzeptierend)
        • Schleife auf sich selbst mit b
        • Übergang zu a eingegeben mit a
  • N(L_1 L_2)
    • = 4
      • kein Zeichen eingegeben
      • a eingegeben (akzeptierend)
        • danach schleife auf sich selbst mit a
        • Übergang zu müllzustand mit b
      • b eingegeben (akzeptierend)
        • Schleife auf sich selbst mit b
        • Übergang zu müllzustand mit a
      • müllzustand

4(c)

Gegeben seien die Sprachen

  • L_1 = \{ a^n \mid n \in \mathbb{N}_0 \}
  • L_2 = \{ b^n \mid n \in \mathbb{N}_0 \}
    über dem Alphabet \Sigma = \{ a, b \}.

Bestimmen Sie die Nerode-Indizes der Sprachen L_1, L_2 und L_1 \cup L_2 und begründen Sie jeweils Ihre Antwort.

  • N(L_1)
    • = 2
      • Startzustand (akzeptierend)
        • schleife auf sich selbst mit a
        • Übergang zu b eingegeben mit b
        • b eingegeben
          • Schleife auf sich selbst mit a,b
  • N(L_2)
    • = 2
      • Startzustand (akzeptierend)
        • schleife auf sich selbst mit b
        • Übergang zu a eingegeben mit a
      • a eingegeben
        • Schleife auf sich selbst mit a,b
  • N(L_1 L_2)
    • = 4
      • Startzustand (akzeptierend)
      • a eingegeben (akzeptierend)
        • danach schleife auf sich selbst mit a
        • Übergang zu müllzustand mit b
      • b eingegeben (akzeptierend)
        • Schleife auf sich selbst mit b
        • Übergang zu müllzustand mit a
      • müllzustand

4(d)

Gegeben sei eine Sprache L_1 über einem Alphabet \Sigma.
Wählen Sie eine Sprache L_2 über demselben Alphabet \Sigma, so dass der Nerode-Index der Sprache L_1 \cup L_2 möglichst klein wird. Begründen Sie Ihre Wahl.

  • Kleinstmöglicher N(L_1 L_2) wenn L_2=L_1'
    • Alles wird akzeptiert
  • Nerode-Index = 1