Files
zusammenfassungen/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe10.md
David Schirrmeister 3ba9cf09b5 update
2025-07-08 10:21:11 +02:00

4.2 KiB

Übungsblatt 10

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

Aufgabe 1

1a)

Gegeben sei folgende CNF-Grammatik G_1:

G_1:  
S → AB | CD  
C → AB  
D → BA  
A → 0  
B → 1

Nutzen Sie den CYK-Algorithmus, um zu entscheiden, ob das Wort w = 0110 zur Sprache L(G_1) gehört.
Legen Sie dazu eine Tabelle analog zu dem Beispiel aus der Vorlesung (Kapitel 7, Folie 16) an und füllen Sie diese entsprechend aus.

Var(w)_{[i,j]}(G_1) 1 2 3 4
1 \{A\} {S,C} {} \{S\}
2 - \{B\} {} {}
3 - - \{D\}
4 - - - \{A\}

w ∈ L(G_1)

1b)

Gegeben sei folgende CNF-Grammatik G_2:

G_2:  
S → AB  
A → AA | AC | a  
B → BC | b  
C → CC | a | c

Nutzen Sie analog zu Aufgabe 1a den CYK-Algorithmus, um zu entscheiden, ob das Wort w = acb zur Sprache L(G_2) gehört.

Var(w)_{[i,j]}(G_2) 1 2 3
1 \{A,C\} \{A,C\} \{S\}
2 - \{C\} {}
3 - - \{B\}

w ∈ L(G_1)

Aufgabe 2

Gegeben sei folgende CNF-Grammatik G:

G:  
S → AB  
A → AA | AC | a  
B → BC | b  
C → CC | a | c

2a)

Zeichnen Sie zwei verschiedene Syntaxbäume für das Wort w = acacaaabaca \in L(G).

image_961.png

2b)

Finden Sie ein Wort w \in L(G), zu dem ein Ableitungsbaum mit möglichst wenig Knoten existiert, und zeichnen Sie den zugehörigen Ableitungsbaum.

w = ab

image_962.png

Aufgabe 3

Betrachten Sie die folgenden Grammatiken G_1 und G_2. Gibt es zu der jeweiligen Grammatik G_i (i \in \{1, 2\}) ein Wort w \in L(G_i) mit mehr als einem Syntaxbaum? Begründen Sie Ihre Antwort.

3a)

G_1:  
S → 0 1 | 0 S 1

Nein, es gibt kein Wort mit mehreren Syntaxbäumen, da die Regeln jeden Schritt genau vorgeben, da wir nur eine Regel mit Rekursion haben, ist keine Mehrdeutigkeit möglich.

3b)

G_2:  
S → 0 B | 1 A  
A → 0 | 0 S | 1 A A  
B → 1 | 1 S | 0 B B

Nein, es gibt keine Möglichkeit mehrere Syntaxbäume zu bilden, da zwar eine Rekursion möglich ist durch B → 0BB und A→1AA, jedoch durch die 1 und 0 vor den Variablen kein alternativer Pfad gebildet werden kann.

Aufgabe 4

Für eine Sprache L über einem Alphabet \Sigma definieren wir


L^R := \{ w^R \mid w \in L \}

Dabei gilt w^R = w_n w_{n-1} \dots w_1 für w = w_1 w_2 \dots w_n \in L mit w_i \in \Sigma.

Beschreiben Sie ein algorithmisches Verfahren, das aus einer kontextfreien Grammatik G eine kontextfreie Grammatik G^R erzeugt, so dass L(G^R) = L(G)^R gilt. Begründen Sie die Korrektheit Ihres Verfahrens.

Gegeben: G=(Σ, V, S, R)

  • S, V und Σ bleiben gleich
  • Für jede Regel A → X_1X_2...X_n
    • Regel A → X_n, X_{n-1}, ..., X_1 hinzufügen

Da kontextfreie Grammatiken keine Einschränkungen hinsichtlich der Position von (Nicht-)Terminalen in Regeln haben, bleibt die resultierende Grammatik G^R kontextfrei. Die Korrektheit folgt daraus, dass jede Regel in G eine Regel in G^R erzeugt, die das gleiche Wort in umgekehrter Reihenfolge generiert.

Aufgabe 5

Für eine Sprache L über dem Alphabet \Sigma = \{ 0, 1 \} definieren wir


L^{\text{prfx}} := \{ x \in \Sigma^\ast \mid \exists y \in \Sigma^\ast : x \cdot y \in L \}

Beschreiben Sie ein algorithmisches Verfahren, das aus einer regulären Grammatik G eine reguläre Grammatik G_{\text{prfx}} erzeugt, so dass L(G_{\text{prfx}}) = L(G)_{\text{prfx}} gilt. Begründen Sie die Korrektheit Ihres Verfahrens.

Gegeben: G=(Σ, V, S, R)

  • Wandle G in einen NEA N um

  • Markiere alle Zustände als akzeptierend → N_{prfx}

    • Präfix kann beliebig lang sein und muss kein nachfolgendes Symbol haben
  • Wandle N_{prfx} in eine rechtslineare Grammatik G_{prfx} um

  • Oder für jede Nichtterminale die Regel A → ε hinzufügen