Lösungen zum Aufgabenblatt 6 Formale Sprachen und Automaten

Lösungen zum Aufgabenblatt 6
Formale Sprachen und Automaten
Universität München, CIS, WS 2015/16
Hans Leiß
Ausgabe: Do 26.11.2015
Abgabe: Do 3.12.2015
Aufgabe 6.1
Sei Σ = {a, b} und A der im folgenden dargestellte Automat:
a
A=
2
b
b
b
1
a
3
Eine Relation R ⊆ Q × Q ist (links-)total, wenn es zu jedem p ∈ Q ein q ∈ Q mit (p, q) ∈ R
gibt, und R heißt funktional, wenn es zu jedem p ∈ Q höchstens ein q ∈ Q mit (p, q) ∈ R gibt.
(a) Warum ist der Automat A nicht determinstisch?
a
b
a
b
(b) Sind die Relationen −→ und −→ von A auf Q = {1, 2, 3} total?
(c) Sind die Relationen −→ und −→ von A auf Q = {1, 2, 3} funktional?
a
(d) Stelle die Relationen −→

a1,1
A =  a2,1
a3,1
b
und −→ als 3 × 3-Matrizen


b1,1
a1,2 a1,3
und
B =  b2,1
a2,2 a2,3 
b3,1
a3,2 a3,3
b1,2
b2,2
b3,2

b1,3
b2,3 
b3,3
mit Einträgen ai,j , bi,j ∈ B dar und berechne A + B und A · B nach den Formeln der
Vorlesungsfolien.
(e) Gib für das Wort aba eine akzeptierende und eine nicht akzeptierende Berechnung (Konfigurationsfolge) an!
(f) Erweitere den Automaten um einen Zustand 4 (eine Senke“) und einige Kanten zu einem
”
a
b
vollständigen Automaten A′ (d.h. mit totalen Relationen −→ und −→ ) mit L(A′ ) =
L(A).
1
Lösung von Aufgabe 6.1
(a) Weil vom Zustand 2 zwei b-Kanten zu verschiedenen Zuständen (1 und 3) führen.
a
b
(b) −→ ist nicht total, weil vom Zustand 2 keine a-Kante ausgeht, und −→ ist nicht total,
weil vom Zustand 1 keine b-Kante ausgeht.
a
(c) Die Relation −→ ist funktional und entspricht der partiellen Funktion

falls i = 1,
 2,
falls i = 3,
fa (i) := 1,

undefiniert, sonst.
b
Die Relation −→ ist nicht funktional, da von Zustand 2 ja b-Kanten zu verschiedenen
Zuständen ausgehen.
a
(d) Wir haben nach der Definition ai,j = 1 ⇐⇒ i −→ j usw.:




0 1 0
0 0 0
A = 0 0 0
und
B = 1 0 1
1 0 0
0 0 1
P
Nach der Definition von A · B = ( c )i,j mit ci,j = 3k=1 ai,k bk,j = ai,1 b1,j + ai,2 b2,j + ai,3 b3,j
ist

 

0·0+1·1+0·0 0·0+1·0+0·0 0·0+1·1+0·1
1 0 1
A · B = 0 · 0 + 0 · 1 + 0 · 0 0 · 0 + 0 · 0 + 0 · 0 0 · 0 + 0 · 1 + 0 · 1 = 0 0 0,
1·0+0·1+0·0 1·0+0·0+0·0 1·0+0·1+0·1
0 0 0
und in der Tat kommt man mit ab in A von Zustand 1 nach 1 und von Zustand 1 nach 3,
ab
ab
was sozusagen 1 −→ 1 und 1 −→ 3 entspricht.
(e) Eine akzeptierende Berechung zu aba ist
(1, aba) ⊢ (2, ba) ⊢ (1, a) ⊢ (2, ǫ),
eine nicht akzeptierende Berechnung zu aba ist
(1, aba) ⊢ (2, ba) ⊢ (3, a) ⊢ (1, ǫ).
(f) Ergänze einen neuen Zustand 4 und die Kanten
a
2 −→ 4,
a
4 −→ 4,
a
b
1 −→ 4,
b
b
4 −→ 4.
Dann sind die neuen Relationen −→ und −→ total, und es wird kein weiteres Wort
akzeptiert, da jeder vorher nicht vorhandene Weg zum Zustand 4 führt und im NichtEndzustand 4 endet.
2
Aufgabe 6.2
Sei Σ = {a, b} und A der Automat aus Aufgabe 6.1:
a
A=
b
2
b
b
1
3
a
(a) Berechne einen (vollständigen) deterministischen Automaten Adet mit L(Adet ) = L(A)
(nach der Potenzmengenkonstruktion“).
(3 Punkte)
”
(b) Gib zwei verschiedene Berechnungen für ababa mit dem nichtdeterministischen Automaten
A an und vergleiche sie mit der einzigen Berechung mit dem deterministischen Automaten
Adet .
(2 Punkte)
(c) Gib A in Matrixform huI , A, vF i an.
(2 Punkte)
(d) Berechne die Iterierte A∗ von A nach der Rekursionsformel für A∗ .
(3 Punkte)
(e) Berechne einen regulären Ausdruck für L(A) durch uTI · A∗ · vF , wobei
T

u1,1
uT =  u2,1  := ( u1,1 u2,1 u3,1 )
u3,1
die transponierte“ Matrix zu u ist.
(2 Punkte)
”
(f) Gib A durch ein Ungleichungssystem an wie im Beweis des Satzes von Kleene. (2 Punkte)
Benutze bei (c) bis (e) die Definitionen der Vorlesungsfolien zu Matrizen, Matrixmultiplikation
und die Rekursionsformel zur Berechnung der iterierten Matrix A∗ .
Bem. Wenn Ihnen die Rekursionsformel für A∗ zu kompliziert ist, können Sie den regulären
Ausdruck für L(A) auch durch Lösen des Gleichungssystems aus (f) bestimmen.
Lösung von Aufgabe 6.2
(a) Der durch die Potenzmengenkonstruktion aus A berechnete (vollständige) deterministische
Automat ist
b
a
{}
b
a
{1}
A
det
a
{2}
=
a
b
b
a
{1,3}
{1,2}
a
b
b
{3}
3
(b) Mit A gibt es zu ababa eine akzeptierende Berechnung,
(1, ababa) ⊢ (2, baba) ⊢ (1, aba) ⊢ (2, ba) ⊢ (1, a) ⊢ (2, ǫ),
und eine nicht-akzeptierende:
(1, ababa) ⊢ (2, baba) ⊢ (1, aba) ⊢ (2, ba) ⊢ (3, a) ⊢ (1, ǫ).
Mit Adet gibt es nur eine Berechnung, und diese ist akzeptierend:
({1}, ababa) ⊢ ({2}, baba) ⊢ ({1, 3}, aba) ⊢ ({1, 2}, ba) ⊢ ({1, 3}, a) ⊢ ({1, 2}, ǫ).
Wie man sieht, enthalten die durchlaufenen Zustände von Adet mindestens die Zustände
von A, die A bei der akzeptierenden Berechnung durchläuft.
(c)
  
1
0
A = hu, M, vi = h 0  ,  b
0
a
  
a 0
0
0 b  ,  1 i.
0 b
0
(d) Zerlege M (zum Beispiel) gemäß


0 a 0
A


b 0 b
M=
=
C
a 0 b
B
D
und benutze die Rekursionsformel
F∗
F ∗ BD∗
∗
M =
mit F = A + BD∗ C,
D∗ CF ∗ D∗ + D∗ CF ∗ BD∗
analog zur Berechnung von F ∗ . Das ergibt wegen D∗ = (b)∗ = (b∗ ) und
0 ˙ ∗
0
und D∗ C = (b∗ ) · ( a 0 ) = ( b∗ a
BD∗ =
(b ) =
b
bb∗
0)
zunächst
∗
F = A + BD C =
0 a
b 0
0
+
·( a
bb∗
0) =
0 a
b 0
0
+
bb∗ a
0
0
=
0
b + bb∗ a
a
0
und dann mit der Rekursionsformel für F ∗ und f = 0 + a0∗ (b + bb∗ a) = a(b + bb∗ a):
f∗
f ∗ a0∗
f∗
f ∗a
F∗ =
=
.
0∗ (b + bb∗ a)f ∗ 0∗ + 0∗ (b + bb∗ a)f ∗ a0∗
(b + bb∗ a)f ∗ 1 + (b + bb∗ a)f ∗ a
Also wird
∗
∗
∗
F BD = F ·
0
bb∗
=
f ∗ abb∗
(1 + (b + bb∗ a)f ∗ a)bb∗
und
D∗ CF ∗ = ( b∗ a 0 ) · F ∗ = ( b∗ af ∗
4
b∗ af ∗ a )
sowie
∗
∗
∗
D CF BD =
( b∗ af ∗
b∗ af ∗ a )
·
0
bb∗
= (b∗ af ∗ abb∗ )
schließlich

f∗
∗
M =  (b + bb∗ a)f ∗
b∗ af ∗
f ∗a
1 + (b + bb∗ a)f ∗ a
b∗ af ∗ a

f ∗ abb∗
(1 + (b + bb∗ a)f ∗ a)bb∗  .
b∗ + b∗ af ∗ abb∗
(e) Mit dem vorigen Teil der Aufgabe erhalten wir
uT · M ∗ · v = ( 1
0 0 ) · M∗ · v = ( f∗
f ∗a
f ∗ abb∗ ) · v = (f ∗ a) = ((a(b + bb∗ a))∗ a).
Der Ausdruck f ∗ a beschreibt alle Wege vom Anfangszustand 1 zum Endzustand 2.
(f) Das am Bild abgelesene Ungleichungssystem ist
x0 ≥ x1
x1 ≥ ax2
x2 ≥ bx1 + bx3 + 1
x3 ≥ ax1 + bx3 .
Durch Variablenelimination erhalten wir aus der letzten Ungleichung
x3 ≥ b∗ ax1 ,
setzen das in die Ungleichung für x2 ein und erhalten die bezüglich x2 schon gelöste Ungleichung
x2 ≥ bx1 + bx3 + 1 ≥ bx1 + bb∗ ax1 + 1 = (b + bb∗ a)x1 + 1.
Einsetzen in die Ungleichung für x1 ergibt
x1 ≥ a((b + bb∗ a)x1 + 1) = a(b + bb∗ a)x1 + a ≥ (a(b + bb∗ a))∗ a.
Das ergibt für x0 ≥ x1 denselben Ausdruck f ∗ a wie in Teil (e) der Aufgabe.
5