Sie sind auf Seite 1von 7

Formale Systeme, Automaten, Prozesse SS 2023

Prof. Dr. P. Rossmanith


M. Gehnen, N. Lommen, D. Mock
Datum: 14.06.2023

Übungsblatt mit Lösungen 09

Aufgabe T28
Es sei L = { ai bj ck | i = j oder j = k }. Geben Sie einen nichtdeterministischen Kellerautoma-
ten an, der L mit Endzuständen akzeptiert.
Geben Sie jeweils einen akzeptierenden Lauf von A auf ε, abcc und abbcc an.

Lösungsvorschlag
Der Kellerautomat rät erst nichtdeterministisch, ob i = j oder j = k gilt. Danach wird der
Stack zum Zählen der entsprechenden Symbole genutzt.
Idee: Zuerst wird nichtdeterministisch von q0 aus geraten, ob i = j oder j = k gilt, indem
in Zustand q1 bzw. q4 gewechselt wird. In q1 werden für jedes a ein Kellersymbol a auf den
Keller gelegt. Anschließend wird in q2 für jedes b ein Kellersymbol a vom Keller genommen.
Erst wenn man das Kellerbodensymbol Γ0 oben auf dem Keller hat (und damit gleich viele as
wie bs gelesen wurden), wechselt man zum Endzustand q3 . Hier können nur noch weitere cs
eingelesen werden.
Für den Fall i = k funktioniert es analog über den unteren Lauf q4 , q5 , q6 und q7 . In q4 werden
alle as gelesen ohne den Kellerinhalt zu ändern. In q5 werden die bs eingelesen und jeweils ein b
dafür auf den Keller gelegt. In q6 wird für jedes c ein Kellersymbol b vom Keller entfernt. Nur
wenn das Kellerbodensymbol sichtbar ist, wechselt man mit einer ε Transition zum Endzustand.
Hierbei stehe X für ein beliebiges Stacksymbol.

a, X|aX b, a|ε c, Γ0 |Γ0

q1 ε, X|X q2 ε, Γ0 |Γ0 q3

ε, Γ0 |Γ0

q0

a, Γ0 |Γ0 b, X|bX c, b|ε


ε, Γ0 |Γ0

q4 ε, Γ0 |Γ0 q5 ε, X|X q6 ε, Γ0 |Γ0 q7

ε:

(q0 , ε, Γ0 ) ` (q1 , ε, Γ0 )
` (q2 , ε, Γ0 )
` (q3 , ε, Γ0 )

(alternativ gibt es noch den unteren Lauf über q0 , q4 , . . . q7 )

1
abcc:

(q0 , abcc, Γ0 ) ` (q1 , abcc, Γ0 )


` (q1 , bcc, aΓ0 )
` (q2 , bcc, aΓ0 )
` (q2 , cc, Γ0 )
` (q3 , c, Γ0 )
` (q3 , ε, Γ0 )

abbcc:

(q0 , abbcc, Γ0 ) ` (q4 , abbcc, K)


` (q4 , bbcc, K)
` (q5 , bbcc, K)
` (q6 , bcc, bK)
` (q6 , cc, bbK)
` (q6 , cc, bbK)
` (q6 , c, bK)
` (q6 , ε, K)
` (q7 , ε, K)

Aufgabe T29
Welche Sprache L(M ) erkennt der folgende Kellerautomat? Begründen Sie Ihre Behauptung.
Die Transitionsmengen T1 , T2 , T3 sind aus der entsprechenden Spalte der Tabelle zu entnehmen.
T1

q1

ε, Γ0 |Γ0 ε, Γ0 |Γ0
T2
T1 : T2 : T3 :
ε, Γ0 |Γ0 ε, Γ0 |Γ0 a, a|aa b, b|bb a, a|aa
q0 q2 q4
b, b|bb c, c|cc c, c|cc
a, b|ε b, c|ε c, a|ε
b, a|ε c, b|ε a, c|ε
ε, Γ0 |Γ0 T3 ε, Γ0 |Γ0 a, Γ0 |aΓ0 b, Γ0 |bΓ0 c, Γ0 |cΓ0
b, Γ0 |bΓ0 c, Γ0 |cΓ0 a, Γ0 |aΓ0
q3
c, X|X a, X|X b, X|X

Lösungsvorschlag
Am Anfang entscheidet sich der Kellerautomat nichtdeterministisch für einen von drei Folge-
zuständen q1 , q2 , q3 , die sich bis auf Vertauschung von a, b, c zueinander symmetrisch verhalten.
Betrachten wir exemplarisch den Zustand q1 : Hier haben offenbar nur die Zeichen a und b einen
Effekt. Wann immer ein a gelesen wird, wird entweder ein a auf den Keller gelegt oder ein b vom
Keller entfernt. Duales gilt für b. Folglich entspricht die Differenz der Vorkommen von a und b
auf dem Keller der Differenz der Vorkommen von a und b im bisherigen Wort. Andererseits sieht

2
man, dass auf dem Keller niemals gleichzeitig die Zeichen a und b vorkommen können. Folglich
ist der Keller genau dann leer, wenn das bisher gelesene Wort gleich viele a wie b enthält.
Weiterhin ist bei leerem Keller ein ε-Übergang in den akzeptierenden Zustand möglich. Für
ein Wort w und ein Zeichen a bezeichne |w|a dabei die Anzahl von a in w. Der gegebene
Kellerautomat erkennt also die Sprache aller Wörter w über {a, b, c}, die mindestens eine der
folgenden Bedingungen erfüllen:

• |w|a = |w|b ,

• |w|b = |w|c ,

• |w|a = |w|c

Aufgabe T30
Betrachten Sie folgende Aufgabe.

Aufgabe I1
Beweisen oder widerlegen Sie:
Die Sprache L3 = {z = xyxR | x, y ∈ Σ∗ }, mit Σ = {a, b, c} ist kontextfrei.

Die Studenten Nico Kommen, Mats Nenheg und David Rock geben zusammen ihre Hausauf-
gaben in FoSAP ab, und haben eine Lösung zu Aufgabe I1 eingereicht.
Sie sind nun ein FoSAP-Tutor und müssen die Abgabe der drei korrigieren. Wieviele Punkte
würden sie vergeben? Seien Sie dabei genauso streng wie ihr eigener Tutor.

z = an bn an , dann gibt’s Zerlegung z = uvwxy mit |vwx| ≤ n und | vx| > 0.


Sei uvwxy so gewählt, dass der vwx-Part im ersten drittel liegt, also nur die ersten
as enthält. Nach dem Pump-Lemma muss auch uv i wxi y ∈ L für alle i kann aber
trivialistischerweise nicht sein da die Anzahl der a am Anfang sich ändert und am
Ende des Wortes gleich bleibt. ⇒ L3 nicht konteckstfrei und die Ausage widerlegt.

Lösungsvorschlag
Wir zeigen, welche Fehler die Studenten gemacht haben:
Dieser Beweis ist aus mehreren Gründen falsch. Wieder wurde eine Zerlegung uvwxy, mit
|vwx| ≤ n und |vx| > 0 gewählt. Man hätte jedoch alle Zerlegungen dieser Form betrachten
müssen. Außerdem wurde angenommen, dass das Wort am bn an mit m 6= n nicht in der Sprache
ist. Tatsächlich ist jedoch jedes Wort w ∈ Σ∗ in der Sprache (mit x =  und y = w). Daher ist
die Sprache sogar regulär.

3
Aufgabe H24 (5+5 Punkte)
Für ein Wort w und ein Zeichen a ∈ Σ bezeichne |w|a dabei die Anzahl von a in w.

L := { w ∈ {a, b}∗ | |w|a 6= |w|b ∨ 3|w|b = |w|a } ⊆ {a, b}∗

a) Geben Sie einen Kellerautomaten A für L an.

b) Beweisen Sie die Korrektheit (L(A) ⊆ L) und Vollständigkeit (L(A) ⊇ L) des Automaten.
Argumentieren Sie hierfür über die Konfigurationsfolge des Kellerautomaten.

Lösungsvorschlag
(a) Zuerst bemerken wir, dass L = {w ∈ {a, b}∗ | |w|a 6= |w|b ∨ w = ε}. Mit q0 wird das leere
Wort akzeptiert.
Die Zustände q1 , q2 und q3 bedeuten, dass es gleich/mehr/weniger as als bs gibt. Die Höhe des
Kellers (minus Kellerbodensymbol) drückt die Differenz zwischen der Anzahl der as und bs aus.
Entsprechend ist q1 kein Endzustand, aber q2 und q3 sind es schon.
Anmerkung: Dieser PDA könnte auch deterministisch konstruiert werden, wenn man die Tran-
sition von q0 zu q1 passend durch Transitionen von q0 nach q1 und q2 ersetzt.
a, X|aX; b, a|ε

q2

b, A|ε
a, Γ0 |AΓ0
ε, Γ0 |Γ0
q0 q1

a, B|ε
b, Γ0 |BΓ0
q3

b, X|bX; a, b|ε
Hierbei steht X in jeder Transposition anstelle von a, A, b, B.
(b) Sei w ∈ L. Wenn w = ε, dann wird das Wort mit der Startkonfiguration (q0 , , Γ0 ) akzeptiert.
Ansonsten wechselt der Automat in die Konfiguration (q1 , w, Γ0 ). Wir zeigen per Induktion
über u, dass für w = uv der Automat in der Konfiguration (q0 , w, Γ0 ) `∗ (qk , v, αΓ0 ), mit
d = |u|a − |u|b , i = |d| und

(1, ε),
 if d = 0
i−1
(k, α) = (2, a A), wenn d > 0

(3, bi−1 B), wenn d < 0.

. Bevor wir diese Aussage zeigen, bemerken wir, dass dann direkt (für u = w) folgt, dass w ∈ L,
dann w akzeptiert wird, da q2 und q3 Endzustände sind.
Induktionsanfang: Für u = ε gilt direkt, dass der Automat in (q1 , w, Γ0 ) ist. Für den Induktions-
schritt, betrachte nun obdA u = u0 a (statt auch u0 b) für u0 ∈ Σ∗ . Nach Induktionsvoraussetzung
für u0 gilt, (q0 , w, Γ0 ) ` (q1 , w, Γ0 ) `∗ (qk , av, αΓ0 ) für k und α wie oben. Betrachten wir nun

4
wie wir von u0 zu u kommen:
(q1 , av, Γ0 ) ` (q2 , v, AΓ0 )
0 0
(q2 , av, ai −1 AΓ0 ) ` (q2 , v, ai AΓ0 )
(q3 , av, BΓ0 ) ` (q0 , v, Γ0 )
0 0
(q3 , av, bi −1 Γ0 ) ` (q3 ), v, bi −2 BΓ0
Jeder der vier Fälle erfüllt die Induktionshypothese für u. Beachten wir hierbei, dass |u|a −|u|b =
|u0 |a − |u0 |b und damit i = i0 + 1 in Fall 2 bzw i = i0 − 1 in Fall 4 ist.
Sei w ein von A akzeptiertes Wort. Dann kann man mit analog zu oben argumentiernen.

Aufgabe H25 (9 Punkte)


In der Vorlesung haben wir PDAs wie folgt definiert:
Ein Kellerautomat (PDA) M = (Q, Σ, Γ, δ, q0 , Γ0 , F ) ist ein 7-Tupel, wobei
• Q die endliche Menge der Zustände,
• Σ das Eingabealphabet,
• Γ das Kelleralphabet

• δ : Q × (Σ ∪ {}) × Γ → 2Q×Γ , wobei jedes Bild eine endliche Menge von Paaren ist, die
Übergangsfunktion
• q0 ∈ Q der Startzustand
• Γ0 ∈ Γ das Kellerbodensymbol
• F ⊆ Q die Menge der Endzustände.
Wenn wir die Zustandsübergangsfunktion wie untenstehend verändern, ändert sich dann die
Menge der Sprachen, die von solchen Automaten akzeptiert werden, wenn das Akzeptanzkri-
terium ein leerer Keller ist? Falls ja, geben Sie eine möglichst präzise Charakterisierung dieser
Menge an Sprachen an.

δ : Q × Σ × Γ → 2Q×Γ , wobei jedes Bild eine endliche Menge von Paaren ist, die
Übergangsfunktion

Lösungsvorschlag
Das Akzeptanzverhalten ändert sich genau dann wenn ε ∈ N (M ).

Jeder Kellerautomat M 0 mit einer Übergangsfunktion δ : Q×Σ×Γ → 2Q×Γ kann ε nicht akzep-
tieren. Denn dazu müsste er mindestens einen Schritt gehen um das Kellerboden-Symbol Γ0 vom
Keller zu nehmen. Da die Eingabe jedoch ε kann M 0 mit der modifizierten Übergangsfunktion
jedoch kein Schritt tätigen.
Es bleibt also der Fall zu betrachten, dass ε ∈
/ N (M ). Betrachten wir die äquivalente CFG G
mit L(G) = N (M ). Da ε ∈ / L(G), gibt es eine äuivalente Grammatik G0 mit L(G0 ) = L(G)
in Greibach-Normalform, daher G0 hat Regeln der Form N → T N ∗ , insbesondere ohne ε-
Produktionen. Nun können wir diese analog zur Vorlesung wieder in einen Kellerautomat M 0
umwandeln, wobei unsere Übergangsfunktion δ 0 immer ein Zeichen liest. Dazu passen wir die
Übergangsfunktion wie folgt an:
δ(q, a, A) = {(q, α) | A → aα ∈ P }, für alle a ∈ T, A ∈ N.
Für alle Wörter w ∈ Σ∗ gilt (q, w, S) `∗ (q, ε, ε) genau dann wenn S ⇒∗ w, analog wie in der
Vorlesung. Damit haben wir einen Kellerautomat M 0 konstruiert mit angepasster Übergangsfunktion
und mit L(M ) = L(M 0 ).

5
Aufgabe H26 (3+7+1 Punkte)
Geben sie (falls möglich) Läufe zu den Worten aba, abba und abab an und beantworten Sie,
welche Sprache der folgende Kellerautomat erkennt? Begründen Sie ihre Behauptung.
A C b, X|X A

a, X|X ε, Γ0 |Γ0
q3 q4 qf q7

ε, Γ0 |Γ0 a, Γ0 |Γ0 D b, Γ0 |Γ0 ε, Γ0 |Γ0


B B
q2 q1 q0 q5 q6
b, X|X B B a, X|X

C A start A C
b, Γ0 |Γ0 a, Γ0 |Γ0
Dabei sind die Transitionsmengen A = {a, X|XX; b, X|XX}, B = {a, Γ0 |XΓ0 ; b, Γ0 |XΓ0 },
C = {a, X|ε; b, X|ε} und D = {a, Γ0 |Γ0 ; b, Γ0 |Γ0 }.
Existiert ein Kellerautomat, der das Komplement der Sprache erkennt? Begründen Sie ihre
Antwort.

Lösungsvorschlag
Hinweis: Der Automat in der Aufgabenstellung passt nicht zu der Fragestellung, die geplant war.
In Zustand q3 und q7 kann mit der Schleife kein Zeichen gelesen werden, wenn der Automat aus
q2 bzw. q6 kommt und das Startsymbol Γ0 oben auf dem Stapel liegt. Hier habe ich vergessen,
zu erlauben, dass man auch ein a oder b lesen kann, und ein X auf dem Keller hinzufügen kann,
wenn aktuell Γ0 auf dem Stapel liegt.
Der angegebene Automat erkennt alle Worte mit ungerader Länge, sowie alle Worte gerader
Länge 2n, wobei das nte und das 2nte Zeichen verschieden sind. Das Komplement dieser Sprache
(alle Worte mit gerader Länge, bei der das nte und 2nte Zeichen dasselbe sind, ist auch mit
einem PDA erkennbar: Dies sieht man leicht am PDA in der Aufgabenstellung, wenn man im
wesentlichen q3 und q7 entfernt und bei den Transitionen von q2 nach q4 das a in ein b umwandelt
(analog von q6 nach q4 ).
Hier die Lösung, die geplant war ( mit dem gedachten Automaten):
Das Wort aba kann durch (q0 , aba, Γ0 ) ` (q7 , ba, XΓ0 ) ` (q4 , a, XΓ0 ) ` (q4 , ε, Γ0 ) ` (qf , ε, Γ0 ) er-
kannt werden, das Wort abba (beispielsweise) durch (q0 , abba, Γ0 ) ` (q1 , bba, XΓ0 ) ` (q2 , ba, XΓ0 ) `
(q2 , a, Γ0 ) ` (q2 , a, Γ0 ). Das Wort abab kann nicht gebildet werden, wie wir jetzt sehen:
Der Automat erkennt genau das Komplement der Sprache L = {ww|w ∈ {a, b}}; also jedes
Wort, was nicht aus genau zwei identischen Teilworten besteht. Begründung: Ein Wort besteht
genau dann nicht aus zwei gleichen Teilworten, wenn es entweder eine ungerade Anzahl an
Zeichen: oder eine gerade Anzahl an Zeichen hat bei der ak 6= ak+n ist, wenn das Wort 2n viele
Zeichen hat und ai das Zeichen an der i-ten Position ist.
Hat ein Wort ungerade viele Zeichen, so gibt es einen mittleren Buchstaben, der entweder a
oder b ist. Ist der mittlere Buchstabe ein a und gibt es zuvor n Buchstaben, so werden zunächst
n beliebige Zeichen gelesen und n xe auf den Stapel gelegt (Zustand q3 ). Anschließend wird das
mittlere a gelesen und zu q4 gegangen, wo dann schließlich n beliebige Zeichen gelesen werden
und die entsprechenden xe vom Stapel genommen werden. Nach genau n Zeichen ist der Stapel
leer und es geht zum Endzustand. Ist der mittlere Buchstabe ein b, so funktioniert der Automat
analog mit dem Zustand q7 . Besteht das Wort nur aus einem Zeichen, so kann mit der als D
bezeichneten Zustandsmenge direkt nach q4 gegangen werden.

6
Hat ein Wort gerade viele Zeichen, ist es etwas komplizierter aber von der Idee das selbe. Hier
teilen wir das Wort in zwei Teilworter T1 , T2 auf, die jeweils eine ungerade Zeichenanzahl haben
(nicht zwingend gleich viele). Das erste Wort wird mit den q1 , q2 bzw q5 , q6 genauso behandelt
wie die Worte ungerader Länge. Anschließend wird das zweite Teilwort mit der oberen Hälfte
behandelt wie bereits gesehen. Dabei wird jedoch darauf geachtet, dass der mittlere Buchstabe
der beiden Teilworte unterschiedlich ist (in der linken Hälfte erst b, dann a; in der rechten erst
a dann b).
Hat ein Wort also 2n viele Zeichen mit einem k sodass ak 6= ak+n gilt, so kann man das erste
Teilwort mit der Länge 2k + 1 wählen: Das zweite hat dann 2n − 2k − 1 Zeichen, die Mitte des
zweiten Wortes ist also 2k + 1 + (2n − 2k − 2)/2 = n + k. Da ak+n genau ein anderes Zeichen
ist als ak , aktualisiert der Kellerautomat das Wort.
Andersrum gilt das selbe Argument: Die Mitte des ersten Teilwortes ist genau n Zeichen von
der Mitte des zweiten Teilwortes entfernt (egal welche Länge sie haben) - existiert also kein k
mit ak 6= ak+n , so kann das Wort auch nicht durch den Automaten akzeptiert werden.
Ein PDA, der das Komplement der Sprache erkennt, existiert nicht, da die Sprache nicht kon-
textfrei ist. Dies haben wir bereits letzte Woche bei den Tutoraufgaben gesehen.

Das könnte Ihnen auch gefallen