3.7 KiB
Übungsblatt 6
Wenzel Schwan (1125033), Paul Kneidl (1125219), David Schirrmeister (1125746), Michelle Klein (1126422)
Übung 1
Betrachten Sie folgendes algorithmisches Problem:
Bestimmung des Nerode-Index
- Eingabe: ein (vollständiger) NEA
N
- Ausgabe: der Nerode-Index der Sprache
L(N)
Beschreiben Sie eine algorithmische Lösung dieses Problems (stichpunktartig oder als Pseudocode).
Nutzen Sie dazu das in der Vorlesung gesammelte Wissen und begründen Sie damit die Durchführbarkeit und Korrektheit Ihrer Lösung.
Lösung:
- Potenzautomat bilden
- DEA minimieren
- Zustände zählen
Übung 2
Betrachten Sie den Automaten A
aus Abbildung 1 über dem Alphabet \Sigma = \{0,1\}
.
2(a)
Wenden Sie das in den Vorlesungsfolien beschriebene Verfahren zur Minimierung des Automaten A
an, um die Zustands-Äquivalenzklassen des Automaten A
zu bestimmen.
Stellen Sie Ihr Vorgehen nachvollziehbar dar (orientieren Sie sich dazu an dem finalen Beispiel des Foliensatzes 4).
-
Äquivalenzklassen finden
- {a,b,c,d,h,f}, {e,g}
- Zeuge: ε
- {a,c,d,f}, {b,h}, {e,g}
- Zeuge: 1
- {a,d,c}, {f}, {b,h}, {e,g}
- Zeuge: 01
- {a,c}, {d}, {f}, {b,h}, {e,g}
- Zeuge: 11
- {a,c}, {d}, {f}, {b}, {h}, {e,g}
- Zeuge: 001
- {a,b,c,d,h,f}, {e,g}
-
Zustandsübergänge
≡_{a,c}
- 1 →
≡_{d}
- 0 →
≡_{b}
- 1 →
≡_{d}
- 0,1 →
≡_{b}
- 0,1 →
≡_{b}
- 0 →
≡_{a,c}
- 1 →
≡_{e,g}
- 0 →
≡_{e,g}
- 0 →
≡_{f}
- 1 →
≡_{h}
- 0 →
≡_{h}
- 0 →
≡_{f}
- 1 →
≡_{e,g}
- 0 →
≡_{f}
- 0, 1 →
≡_{f}
- 0, 1 →
2(b)
Konstruieren Sie den Quotientenautomaten zu A
mit Hilfe der von Ihnen bestimmten Zustands-Äquivalenzklassen (in der Graphdarstellung).
@startuml
scale 0.50
left to right direction
skinparam dpi 150
skinparam state {
BackgroundColor #FFFACD
BorderColor black
FontName Helvetica
RoundCorner 30
Shadowing false
LineThickness 0
}
state eg##[bold]
[*] --> ac
ac --> d: 1
ac --> b: 0
d --> b: 0,1
b --> ac: 0
b --> eg: 1
eg --> h: 1
eg --> f: 0
h --> eg: 1
h --> f: 0
f --> f: 0,1
@enduml
2(c)
Welche Sprache akzeptiert der Automat A
?
Übung 3
Betrachten Sie die beiden deterministischen endlichen Automaten A_1
und A_2
aus Abbildung 2.
Lesen Sie Kapitel 2.3.3 über das Äquivalenzproblem für endliche Automaten aus dem Skript.
Nutzen Sie das dort beschriebene Vorgehen, um nachvollziehbar zu überprüfen, ob die Automaten A_1
und A_2
die gleiche Sprache akzeptieren.
Übung 4
4(a)
Geben Sie die folgende Grammatik G_1
in formaler Tupel-Darstellung an.
Leiten Sie außerdem 5 Wörter der Sprache L(G_1)
ab und beschreiben Sie anschließend L(G_1)
in formaler Mengenschreibweise.
Grammatik G_1
:
S \Rightarrow aSa\ |\ bSb\ |\ X
X \Rightarrow 0\ |\ 1
4(b)
Geben Sie die folgende Grammatik G_2
in formaler Tupel-Darstellung an.
Leiten Sie außerdem 5 Wörter der Sprache L(G_2)
ab und beschreiben Sie anschließend L(G_2)
in formaler Mengenschreibweise.
Grammatik G_2
:
S \Rightarrow A00A
A \Rightarrow 0A\ |\ 1A\ |\ 0\ |\ 1
4(c)
Geben Sie alle möglichen Ableitungen mit Regeln aus der Grammatik G_2
für das Wort 10001
an.
Übung 5
Betrachten Sie folgende Grammatik G
:
S \Rightarrow x\ |\ yS
xy \Rightarrow yx
yx \Rightarrow xy
5(a)
Können Sie mit G
das Wort xxy
ableiten?
Können Sie mit G
das Wort xyy
ableiten?
Begründen Sie jeweils Ihre Antwort.
5(b)
Beschreiben Sie die von G
erzeugte Sprache in formaler Mengenschreibweise.
5(c)
Gibt es eine Grammatik G'
mit L(G') = L(G)
, sodass G'
weniger als vier Regeln hat?