7.2 KiB
Übungsblatt 3
Übung 1
Betrachten Sie den nichtdeterministischen Automaten N
aus Abbildung 1 über dem
Alphabet Σ = \{ 0, 1 \}^*
.
Automat N
für Worte aus \{ 0, 1 \}^*
, deren drittletztes Zeichen eine 0
ist.
1(a)
Wie viele Berechnungspfade gibt e
, die das Wort 1111
lesen? Wie viele Berechnungsschritte (Verarbeitungen eines Zeichens) sind insgesamt notwendig, um all diese
Berechnungspfade (deterministisch) zu simulieren? Begründen Sie nachvollziehbar,
wie Sie auf Ihre Antworten gekommen sind.
1(b)
Konstruieren Sie den Potenzautomaten A_N
zu N
. Geben Sie bei der Konstruktion
die Übergangsfunktion δ
des Automaten A_N
in tabellarischer Form an. Machen Sie
nach dem Abarbeiten einer Zeile deutlich, welche neuen Metazustände Sie gefunden
haben.
Zustand | δ(.,0) | δ(.,1) |
---|---|---|
a | {a,b} | a |
{a,b} | {a,b,c} | {a,c} |
{a,b,c} | {a,b,c,d} | {a,c,d} |
{a,c} | {a,b,d} | {a,d} |
{a,b,c,d} [$∈ Q_A$] | {a,b,c,d,ε} | {a,c,d,ε} |
{a,c,d} [$∈ Q_A$] | {a,b,d,ε} | {a,d,ε} |
{a,b,d} [$∈ Q_A$] | {a,b,c,ε} | {a,c,ε} |
{a,d} [$∈ Q_A$] | {a,b,ε} | {a,ε} |
{a,b,c,d,ε} [$∈ Q_A$] | {a,b,c,d,ε} | {a,c,d,ε} |
{a,c,d,ε} [$∈ Q_A$] | {a,b,d,ε} | {a,d,ε} |
{a,b,d,ε} [$∈ Q_A$] | {a,b,c,ε} | {a,c,ε} |
{a,d,ε} [$∈ Q_A$] | {a,b,ε} | {a,ε} |
{a,b,c,ε} | {a,b,c,d,ε} | {a,c,d,ε} |
{a,c,ε} | {a,b,d,ε} | {a,d,ε} |
{a,b,ε} | {a,b,c,ε} | {a,c,ε} |
{a,ε} | {a,b,ε} | {a,ε} |
b | c | c |
c | d | d |
d [$∈ Q_A$] | ε | ε |
ε | ε | ε |
@startuml
scale 0.75
top to bottom direction
skinparam dpi 150
skinparam state {
BackgroundColor #FFFACD
BorderColor black
FontName Helvetica
RoundCorner 30
Shadowing false
LineThickness 0
}
state "d" as d##[bold]
state "a" as a
state "{a,b}" as ab
state "{a,b,c}" as abc
state "{a,c}" as ac
state "{a,b,c,d}" as abcd##[bold]
state "{a,c,d}" as acd##[bold]
state "{a,b,d}" as abd##[bold]
state "{a,d}" as ad##[bold]
state "{a,b,c,d,ε}" as abcde##[bold]
state "{a,c,d,ε}" as acde##[bold]
state "{a,b,d,ε}" as abde##[bold]
state "{a,d,ε}" as ade##[bold]
state "{a,b,c,ε}" as abce
state "{a,c,ε}" as ace
state "{a,b,ε}" as abe
state "{a,ε}" as ae
state "b" as b
state "c" as c
state "ε" as e
[*] --> a
' Übergänge von a
a --> a : 1
a --> ab : 0
' Übergänge von {a,b}
ab --> abc : 0
ab --> ac : 1
' Übergänge von {a,b,c}
abc --> abcd : 0
abc --> acd : 1
' Übergänge von {a,c}
ac --> abd : 0
ac --> ad : 1
' Übergänge von {a,b,c,d}
abcd --> abcde : 0
abcd --> acde : 1
' Übergänge von {a,c,d}
acd --> abde : 0
acd --> ade : 1
' Übergänge von {a,b,d}
abd --> abce : 0
abd --> ace : 1
' Übergänge von {a,d}
ad --> abe : 0
ad --> ae : 1
' Übergänge von {a,b,c,d,ε}
abcde --> abcde : 0
abcde --> acde : 1
' Übergänge von {a,c,d,ε}
acde --> abde : 0
acde --> ade : 1
' Übergänge von {a,b,d,ε}
abde --> abce : 0
abde --> ace : 1
' Übergänge von {a,d,ε}
ade --> abe : 0
ade --> ae : 1
' Übergänge von {a,b,c,ε}
abce --> abcde : 0
abce --> acde : 1
' Übergänge von {a,c,ε}
ace --> abde : 0
ace --> ade : 1
' Übergänge von {a,b,ε}
abe --> abce : 0
abe --> ace : 1
' Übergänge von {a,ε}
ae --> abe : 0
ae --> ae : 1
' Übergänge von b
b --> c : 0
b --> c : 1
' Übergänge von c
c --> d : 0
c --> d : 1
' Übergänge von d (Endzustand Q_A)
d --> e : 0
d --> e : 1
' Schleife auf ε
e --> e : 0
e --> e : 1
@enduml
1(c)
Gibt es einen deterministischen endlichen Automaten mit weniger Zuständen als
A_N
, der L(N)
akzeptiert? Begründen Sie Ihre Antwort.
Um A_N
zu minimieren, könnte man nicht erreichbare Zustände, in diesem Fall
{{b},{c},{d},{ε}}, entfernen.
Ansonsten ist der Automat bereits in minimaler Form, da die Zustände sich alle in ihrer
Erreichbarkeit und/oder ihrem Umgang mit Eingaben unterscheiden.
Übung 2
Betrachten Sie den nichtdeterministischen Automaten N aus Abbildung 2 über dem
Alphabet Σ = \{ x, y, z \}^*
. Weiterhin seien die Zeichenketten s_1 = zzx
, s_2 = xxyz
,
s_3 = yyy
, s_4 = xxz
und s_5 = xxzxxzxxzxxz
definiert.
Automat N
für Worte aus \{x,y,z\}^*
, die kein y
enthalten und die Zeichenkette xxy
beinhalten
2(a)
Geben Sie für jedes s_i (i ∈ \{ 1, 2, . . . , 5 \})
an, ob es eine Berechnung (Bearbeitungspfad) für den Automaten N gibt, welche die Zeichenkette si vollständig liest (also
alle Zeichen abarbeitet bevor entschieden wird, ob s_i
akzeptiert wird oder nicht.)
2(b)
Geben Sie für jedes s_i (i ∈ \{ 1, 2, . . . , 5 \})
die Menge aller Zustände an, die N
durch
die Zeichenkette si erreichen kann
2(c)
Wie viele Berechnungspfade gibt es, die das Wort s_5
vollständig lesen? Begründen
Sie nachvollziehbar, wie Sie auf Ihre Antwort gekommen sind.
2(d)
Beschreiben Sie die Sprache L(N)
aller Worte, die der Automat N
akzeptiert
(formal oder informal, Ihre Wahl). Welche der Zeichenketten s_i (i ∈ \{ 1, 2, . . . , 5 \})
gehören zu L(N )
, welche nicht?
2(e)
Beschreiben Sie die Sprache aller Worte, welche der Automat N
nicht vollständig
bearbeiten kann, unabhängig davon ob N
die Worte akzeptiert oder nicht (formal
oder informal, Ihre Wahl). Also die Worte, für die kein Berechnungspfad existiert
der alle Zeichen liest
Übung 3
3(a)
Gegeben sei ein beliebiger deterministischer endlicher Automat A = (Σ, Q, q_s, Q_a, δ)
.
Konstruieren Sie einen deterministischen endlichen Automaten A
in formaler Tupel-
Darstellung, der genau die Worte akzeptiert die A
nicht akzeptiert. Beweisen Sie
die Korrektheit Ihrer Konstruktion.
3(b)
Gegeben sei ein beliebiger nichtdeterministischer endlicher Automat N = (Σ, Q, q_s, Q_a, δ)
.
Können Sie hier auf ähnliche Weise wie in Punkt (a) einen nichtdeterministischen
endlichen Automaten N
konstruieren, der genau die Worte akzeptiert, die N
nicht
akzeptiert? Falls ja, beweisen Sie die Korrektheit der Konstruktion. Falls nein,
geben Sie ein Beispiel für das die Konstruktion scheitert.
Übung 4
Betrachten Sie die beiden deterministischen endlichen Automaten A_1
und A_2
aus Abbildung 3
4(a)
Beschreiben Sie den Aufbau von Worten w
aus der Sprache L(A_1) ∪ L(A_2)
(formal
oder informal, Ihre Wahl)
4(b)
Konstruieren Sie einen nichtdeterministischen endlichen Automaten N_∪
, der die
Sprache L(A_1) ∪ L(A_2)
akzeptiert
4(c)
Beschreiben Sie den Aufbau von Worten w
aus der Sprache L(A_1) ∩ L(A_2)
(formal
oder informal, Ihre Wahl)
4(d)
Konstruieren Sie einen nichtdeterministischen endlichen Automaten N_∩
, der die
Sprache L(A_1) ∩ L(A_2)
akzeptiert