Endliche Automaten Akzeptoren

Download Report

Transcript Endliche Automaten Akzeptoren

Endliche Automaten
Akzeptoren
Karin Haenelt
2.5.2010
1
Inhalt
 Endliche Akzeptoren
 Definitionen
 Definitionen: Zustandsübergangsfunktionen
 Varianten endlicher Akzeptoren: DEA, NEA, ε-NEA
 Zustandsübergangsfunktionen für Zeichenfolgen und die von
Akzeptoren akzeptierten Sprachen
 Erkennungsalgorithmen
 Äquivalenzen
 Effizienz
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
2
Automatentheorie:
endliche Automaten haben kein Gedächtnis zum
Speichern von Zwischenergebnissen


Mengen der Zustände, der Eingabesignale, der Ausgabesignale sind
endlich
kein Gedächtnis zur Speicherung durchlaufener Zustände:
 Übergang von Zustand zur Zeit t in Zustand zur Zeit t+1 nur
abhängig von
 Zustand zur Zeit t und
 Eingabe im Zustand zur Zeit t
 Vorhergehende Zustände nur dadurch wirksam, dass
 sie über eine bestimmte Eingabe in den aktuellen Zustand
geführt haben, und
 dieser aktuelle Zustand ein bestimmtes Ergebnis repräsentiert.
Start
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
B
B
u
Bu
c
Buc
h Buch
3
Definition: Endlicher Akzeptor
 Ein endlicher Akzeptor wird formal spezifiziert durch das
Quintupel A = (Q,q0,F,Σ,δ)
 Q
 q0
 F
 Σ
 δ (q, a)
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
endliche Menge von N Zuständen
q0, q1, ... qN-1
Startzustand, q0 Q
Menge der Endzustände, F Q
endliche Menge von M Eingabesymbolen
a1, a2, ... aM
Zustandsübergangsfunktion
4
Formen der Darstellung eines Akzeptors, Beispiele
Transitionsgraph
Start
d
q0
u
q1
r
q2
q3
Startzustand
Tripel
(0,d,1)
(1,u,2)
(2,r,3)
(3,c,4)
(4,h,5)
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
c
Transitionsfunktion
h
q4
q5
Endzustand
Transitionstabelle /
Zustandsübergangsmatrix  : Q    Q
 (q0 , d )  q1
 (q1, u)  q2
 (q2 , r )  q3
 (q3 , c)  q4
 (q4 , h)  q5
c
→q0
q1
q2
q3 q4
q4
*q5
d h r
q1
u
q2
q3
q5
Hopcroft/Motwani/Ullmann 2001:48,49
5
Inhalt
 Endliche Akzeptoren
 Definitionen
 Definitionen: Zustandsübergangsfunktionen
 Varianten endlicher Akzeptoren: DEA, NEA, ε-NEA
 Zustandsübergangsfunktionen für Zeichenfolgen und die von
Akzeptoren akzeptierten Sprachen
 Erkennungsalgorithmen
 Äquivalenzen
 Effizienz
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
6
Definitionen
 Korrespondenz
 Es seien M, N Mengen. Dann wird K eine Korrespondenz
aus M in N (bzw. zwischen M und N) genannt,
wenn K
M × N ist. ■ (Starke, 2000: 20)
 rechtseindeutige Korrespondenz
 Eine Korrespondenz ist rechtseindeutig, wenn zu jedem
Element aus M höchstens ein Element aus N in
Korrespondenz steht. ■
 Funktion
 Eine Funktion ist eine rechtseindeutige Korrespondenz ■
 Relation
 Korrespondenzen aus einer Menge A in diese Menge A
werden als Relationen bezeichnet. ■
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
7
Definitionen: Korrespondenz, Funktion, Relation
 Es seien M, N Mengen. Dann wird K eine Korrespondenz aus M
in N (bzw. zwischen M und N) genannt, wenn K  M × N ist. ■1)
L = {(s,f) | die Stadt s
F}
S liegt am Fluss f
 Eine Korrespondenz ist rechtseindeutig, wenn zu jedem
Element aus M höchstens ein Element aus N in Korrespondenz
steht. ■
K = (l,h) | h  H ist die Hauptstadt von l  L.
 Eine Funktion ist eine rechtseindeutige Korrespondenz ■
f(l) = h) | h  H ist die Hauptstadt von l  L.
 Korrespondenzen aus einer Menge A in diese Menge A werden
als Relationen bezeichnet. ■
P = {(p,s) | p,s  S und p ist eine Partnerstadt von s }.
1) Starke, 2000: 20
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
8
Definition: Zustandsübergangsfunktion
 Unter einer Zustandsübergangsfunktion δ (q, a)
versteht man in der Informatik eine mathematische Funktion
oder eine mathematische Relation, die einem Zustand q  Q
eines Automaten bei Eingabe eines Symbols a  Σ keinen,
einen oder mehrere Folgezustände zuweist. ■
 Eine totale Zustandsübergangsfunktion ist für jede Situation
(q,a) definiert. ■
 Eine partielle Zustandsübergangsfunktion ist nicht für jede
Situation (q,a) definiert. ■
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
9
Inhalt
 Endliche Akzeptoren
 Definitionen
 Definitionen: Zustandsübergangsfunktionen
 Varianten endlicher Akzeptoren: DEA, NEA, ε-NEA
 Zustandsübergangsfunktionen für Zeichenfolgen und die von
Akzeptoren akzeptierten Sprachen
 Erkennungsalgorithmen
 Äquivalenzen
 Effizienz
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
10
Varianten endlicher Akzeptoren
A = (Q, q0, F, Σ, δ)
Typ
δ
deterministisch
DEA
totale Funktion
Q×Σ→Q
für jede Situation (q,a)
genau ein Zielzustand
partielle
Funktion
Q×Σ→Q
falls (q,a) definiert
ist
für jede Situation (q,a)
höchstens ein Zielzustand
totale Relation
Q × Σ → 2Q \ 
nicht-deterministisch NEA
partielle R.
nicht-deterministisch ε-NEA totale Relation
mit ε-Übergängen
partielle R.
2Q
für eine Situation (q,a)
- ein oder mehrere
(gilt für totale R.)
Q × Σ → 2Q
- kein, ein oder mehrere
(gilt für partielle R.)
Q × (Σ  ε) → 2Q \  Zielzustände
Q × (Σ  ε) → 2Q
Potenzmenge von Q: Menge aller Teilmengen von Q
Beispiel: Q = {1,2}, 2Q = {{1,2}, {1}, {2},{}}
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
11
Varianten endlicher Akzeptoren: Beispiele
DEA, totale Übergangsfunktion
DEA-t
Q
0
1
2
3F
4
NEA
 :Q   Q

adje
4
2
4
4
dete
1
4
4
4
nomn
3
3
3
3
4
4
4
 : Q    2Q
NEA 
adje dete nomn
Q
0
{1,2} {3}
1
{2}
{3}
2
{3}
3F
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
DEA, partielle Übergangsfunktion
 :Q  Q
DEA-p 
Q
adje dete nomn
0
1
3
1
2
3
2
3
3F
Epsilon-NEA  : Q  (   )  2Q
ε-NEA 
adje dete nomn ε
Q
0
{1}
{2}
1
{2}
{2}
2
{3}
3F
12
L = {(dete,adje,nomn), (dete,nomn),(nomn)}
Varianten endlicher Akzeptoren: Beispiele
DEA, totale Übergangsfunktion
DEA, partielle Übergangsfunktion
dete, adje,nomn
adje
0
dete
dete, adje,nomn
4
dete
1
adje
dete,
adje
nomn
2
3
0
dete
1
adje
2
nomn
3
nomn
nomn
nomn
nomn
NEA
Epsilon-NEA
dete
0
dete
nomn
1
adje
nomn
2
nomn
3
0
dete

1
adje

2
nomn
3
13
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
Varianten endlicher Akzeptoren: Bedeutung
 die verschiedenen Varianten
 erweitern endliche Automaten
 erweitern nicht die Klasse der Sprachen, die von einem
endlichen Automaten akzeptiert werden
 erweitern den Programmierkomfort
 Achtung! Die Definitionen von Operationen auf Automaten
werden oft für bestimmte Automaten gegeben;
häufig für DEA mit totaler Übergangsfunktion
(Definitionen stets genau betrachten!)
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
14
Varianten endlicher Akzeptoren:
Verwendungsbeispiele
Fall: - Nicht-Determinismus diente dem Spezifikationskomfort
0
dete
1

adje

2
nomn
3
dete
0
dete
nomn
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
1
adje
2
nomn
3
nomn
15
Varianten endlicher Akzeptoren:
Verwendungsbeispiele
Fall: NEA entstanden durch Vereinigung zweier DEA

b
10
a
11
w
h
12
a
15
n
13
l
16
14

d
17
00
01
b

20
a
21
l
22
a
24
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
u
23
c
25
h

26
16
Inhalt
 Endliche Akzeptoren
 Definitionen
 Definitionen: Zustandsübergangsfunktionen
 Varianten endlicher Akzeptoren: DEA, NEA, ε-NEA
 Zustandsübergangsfunktionen für Zeichenfolgen und die von
Akzeptoren akzeptierten Sprachen
 Erkennungsalgorithmen
 Äquivalenzen
 Effizienz
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
17
Zustandsübergangsfunktionen für Zeichenfolgen
 Zweck
 Definition des Akzeptierens einer Eingabezeichenfolge
 Bestimmung der von einem Akzeptor akzeptierten Sprache
 Anwendung
 Traversionsalgorithmen
 Überführung der einzelnen Akzeptorvarianten ineinander
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
18
Zustandsübergangsfunktionen für Zeichenfolgen
Erweiterte Zustandsübergangsfunktion
 Einführung einer Funktion ˆ und Festlegung ihrer Bedeutung
 Es sei A = (Q, Σ, δ) ein beliebiger deterministischer Automat,
dann gilt für alle q  Q, w  Σ*, a  Σ
 Basis
ˆ( q,  ) def q
 Induktion
ˆ( q, wa) def  (ˆ( q, w), a )
ˆ( q, aw) 
es gilt
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
oder 1)
ˆ( ( q, a ), w)
ˆ( q, a )   (ˆ( q,  ), a ))  ˆ( ( q, a ),  )   ( q, a )
Quellen: Hopcroft/Motwani/Ullman (2002: 58f)
Lawson (2004: 16f)
19
1) Beweis der Herleitung: Starke (1969: 23/24)
Zustandsübergangsfunktionen für Zeichenfolgen
Beispiel
Form 1 ˆ( q, wa) def  (ˆ( q, w), a )
(
δ( (
δ(δ( (
δ(δ(δ(
δ(δ(δ(
δ(δ(
δ(
0
dete
1
q0 ,
dete adje nomn ) =
q0 ,
dete adje ) , nomn ) =
q0 ,
dete ) , adje ) , nomn ) =
( q0 , ε ) , dete ) , adje ) , nomn ) =
q0
, dete ) , adje ) , nomn ) =
q1
, adje ) , nomn ) =
q2
, nomn ) =
q3
adje
2
nomn
3
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
Form 2 ˆ( q, aw) 
ˆ( ( q, a ), w)
( q0 , dete adje nomn
)=
( δ ( q0 , dete ) , adje nomn
)=
( δ ( δ ( q0 , dete ) , adje ) , nomn
)=
( δ ( δ ( δ ( q0 , dete ) , adje ) , nomn ) , ε ) =
(δ(δ(
, adje ) , nomn ) , ε ) =
q1
(δ(
, nomn ) , ε ) =
q2
(
,ε)=
q3
q3
ˆ(q0 , (dete, adje, nomn))  ˆ( (q0 , dete), (adje, nomn))  ˆ(q1, (adje, nomn))
ˆ( q1 , (adje, nomn))  ˆ( ( q1 , adje), nomn)  ˆ( q2 , (nomn))
ˆ(q2 , (nomn))  ˆ( (q2 , nomn),  )  ˆ(q3 ,  )
Form 2
ˆ(q3 ,  )  q3
20
Sprache eines deterministischen endlichen
Automaten
 Sei DEA A = (Q, q0,F,Σ,δ), dann ist L(A), die Sprache, die durch
A erkannt wird, und diese Sprache wird wie folgt definiert:

L( A)  {w | ˆ(q , w)  F}
0
 die Sprache L(A), die von A akzeptiert wird, ist die Menge der
Zeichenfolgen w, die vom Startzustand q0 zu einem
akzeptierenden Zustand führen.
 Die leere Zeichenfolge wird dann von einem Automaten
akzeptiert, wenn der Startzustand ein akzeptierender Zustand
ist.
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
21
Erweiterte Zustandsübergangsfunktion im nichtdeterministischen Automaten
 Basis
ˆ(q,  )  q
ˆ( q, a )   ( q, a )
 Induktion
ˆ( q, wa)    (ˆ( q, w), a )
oder
qQ
ˆ( q, aw)   ˆ( ( q, a ), w)
qQ
 Erläuterung

ˆ( ( q, a ), w)
qQ
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
angenommen  (q, a)  {q1 , q2 , q3 } ,
dann ist
ˆ(q, aw)  ˆ(q1 , w)  ˆ(q2 , w)  ˆ(q3 , w)
22
Sprache eines nicht-deterministischen endlichen
Automaten
L( A)  {w | ˆ(q0 , w)  F  }
 ein NEA akzeptiert alle Zeichenfolgen, die mindestens einem
Pfad durch den Automaten entsprechen, der am Ende der
Zeichenfolge einen akzeptierenden Zustand erreicht
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
23
Übergangsfunktion im NEA mit ε-Transitionen




schließt ε-Transitionen ein
ist also eine Funktion über Zeichenfolgen
Berechnung über ε-Hüllen
Beispiel: ˆ(q 0, nomn)  {q 3, q 5}
adje
q0
dete
q1
advb
nomn
q3
prpo


© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
q2
q4
temp
q5

das
richtig gutes Beispiel von
heute
dete
advb
temp
adje
nomn
prpo
24
ε-Hülle

ˆ( q,  )
ε-Hülle(q), d.h. alle von q aus rekursiv
durch Eingabe von ε erreichbaren Zustände
 Basis
q    Hülle (q)
 Induktion
p    Hülle (q) und r   ( p,  )

r    Hülle (q)
Grahne, 2002: 46
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
25
ε-Hülle
  Hülle (q0 )  {q0 , q1 , q2 }
  Hülle (q3 )  {q3 , q5 }
  Hülle (q1 )  {q1 , q2 }
  Hülle (q4 )  {q4 }
  Hülle (q2 )  {q2 }
  Hülle (q5 )  {q5 }
adje
q0
dete
q1
advb
q2
nomn
q3
prpo


q4
temp

das
richtig gute
Beispiel von
heute
dete
advb
nomn
temp
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
q5
adje
prpo
26
Erweiterte Zustandsübergangsfunktion im nichtdeterministischen Automaten mit ε-Transitionen
 Basis
ˆ(q,  )    Hülle (q)
ˆ(q, a)    Hülle ( (  Hülle (q), a))
 Induktion
ˆ( q, aw) 
ˆ( p, w)

 
p  Hülle( (  Hülle( q ),a ))
adje
 Erläuterung
q0
dete
q1
advb
nomn
q3
prpo


© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
q2
q4
temp
q5

das
richtig gute
Beispiel von
heute
dete
advb
nomn
temp
adje
prpo
27
Sprache eines nicht-deterministischen endlichen
Automaten mit ε-Transitionen
L( A)  {w | ˆ(q0 , w)  F  }
 ein ε-NEA akzeptiert alle Zeichenfolgen, die mindestens einem
Pfad durch den Automaten entsprechen, der am Ende der
Zeichenfolge einen akzeptierenden Zustand erreicht
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
28
Inhalt
 Endliche Akzeptoren
 Definitionen
 Definitionen: Zustandsübergangsfunktionen
 Varianten endlicher Akzeptoren: DEA, NEA, ε-NEA
 Zustandsübergangsfunktionen für Zeichenfolgen und die von
Akzeptoren akzeptierten Sprachen
 Erkennungsalgorithmen
 Äquivalenzen
 Effizienz
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
29
Erkennung mit einem DEA
current
state
q0 q 1 q2
tape
index
d a s
0 1 2
function D-RECOGNIZE(tape, machine) returns accept
or reject
current-state  initial state of machine
Zustand Eingabesymbol
index  beginning of tape
a
d
s
loop
0 start
1
if end of input has been reached then
1
2
if current-state is an accept state then return accept
2 final
else return reject
elseif transition-table[current-state,tape[index]] is empty then
return reject
else
current-state  transition-table[current-state,tape[index]]
Ergänzung
index  index + 1
für partielle
end
Übergangsfunktion
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
Jurafsky/Martin 2000:37
30
Algorithmus zur Erkennung mit einem NEA mit
Agenda
1/3
function ND-RECOGNIZE(tape, machine) returns accept or reject
agenda  {(Initial state of machine, beginning of tape)}
current-search-state  NEXT(agenda)
loop
if ACCEPT-STATE?(current-search-state) returns true then
return accept
else
agenda  agenda  GENERATE-NEW-STATES(currentsearch-state)
if agenda is empty then
return reject
else
current-search-state  NEXT(agenda)
end
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
31
Algorithmus zur Erkennung mit einem NEA mit
Agenda
2/3
function GENERATE-NEW-STATES(current-state) returns a set
of search-states
current-node  the node the current search-state is in
index  the point on the tape the current search-state is looking at
return a list of search-states from transition table as follows:
//für -Transitionen
(transition-table[current-node,  ],index) 
(transition-table[current-node,tape[index]], index+1)
NEA

Q
adje dete nomn
0
1
2
{1,2}
{2}
0
1
2
dete adje nomn
{3}
{3}
{3}
Jurafsky/Martin 2000:44
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
3f
32
Algorithmus zur Erkennung mit einem NEA mit
Agenda
3/3
function ACCEPT-STATES?(search-state) returns true or false
current-node  the node the current search-state is in
index  the point on the tape the current search-state is looking
at
if index is at the end of the tape and current-node is an accept
state of machine
then return true
else return false
Jurafsky/Martin 2000:44
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
33
Behandlung alternativer Erkennungspfade im NEA
 Klassische Suchverfahren
 Lookahead (nicht geeignet für Mehrfach-Lösungen)
 Verfolgen der Alternativen mit Agenda
 Paralleles Verfolgen (Agenda als queue, breadth-first)
 Sequentielles Verfolgen / Backtracking (Agenda als stack,
depth-first)
Erkennungswege
Transitionen
dete
Eingabebeispiel „dete,adje,nomn“
0
dete
nomn
1
adje
nomn
2
nomn
3
0
dete
1
adje
2
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
nomn
3
2
nicht
fortsetzbar
34
0
d
n
a
1n
d
2
n
3
NEA: Erkennung mit Agenda:
Queue: paralleles Verfolgen Aufgaben werden
- hinten angefügt
- vorne entfernt
Agenda
- Queue - parallel - breadth first
remove task
Eingabe- add task
# Zustand Eingabe- zeichen #
Zielnächste
q
Position
zustand Eingabeq’
Position
init 0
0
dete
#1
1
1
#2
2
1
#1 1
1
adje
#3
2
2
#2 2
1
adje
#3 2
2
nomn
#4
3
3
#4 3
3
-
erkannte
Eingabezeichenkette
dete
dete
dete, adje
dete, adje,
nomn
accept
Aufgabe: ein Paar aus
[Zielzustand, nächste Eingabeposition]
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
35
0
NEA: Erkennung mit Agenda:
Stack: sequentiell / backtracking
3
-
n
a
1n
d
2
n
3
Aufgaben werden
- oben angefügt
- oben entfernt
Agenda
- Stack - sequentiell - depth-first
pop task
Eingabe- push task
# Zustand Eingabe- zeichen #
Zielq
Position
zustand
q’
init 0
0
dete
#1
1
#2
2
#2 2
1
adje
#1 1
1
adje
#3
2
#3 2
2
nomn
#4
3
#4 3
d
erkannte
nächste EingabeEingabe- zeichenkette
Position
1
dete
1
dete
2
dete, adje
3
dete, adje,
nomn
accept
Aufgabe: ein Paar aus
[Zielzustand, nächste Eingabeposition]
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
36
Inhalt
 Endliche Akzeptoren
 Definitionen
 Definitionen: Zustandsübergangsfunktionen
 Varianten endlicher Akzeptoren: DEA, NEA, ε-NEA
 Zustandsübergangsfunktionen für Zeichenfolgen und die von
Akzeptoren akzeptierten Sprachen
 Erkennungsalgorithmen
 Äquivalenzen
 Effizienz
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
37
Vervollständigung eines DEA mit partieller
Übergangsfunktion
 ein DEA mit partieller Zustandsübergangsfunktion kann
vervollständigt werden
 Ergebnis dieser Konstruktion: zusätzlicher „Fangzustand“
DEA -t 
Q
adje
0
4
1
2
2
4
3 F 4
4
4
dete, adje,nomn
dete
1
4
4
4
4
nomn
3
3
3
3
4
adje
0
dete
nomn
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
4
1
dete, adje,nomn
dete
adje
dete,
adje
nomn
2
3
nomn
38
Äquivalenz von DEA und NEA
 Für jeden NEA lässt sich ein äquivalenter DEA konstruieren
(d.h. einer, der dieselbe Sprache akzeptiert)
 Beweis durch Konstruktion eines äquivalenten Automaten
 DEA → NEA: Verfahren: Potenzmengenkonstruktion (auch
Teilmengenkonstruktion)
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
39
Äquivalenz von DEA und NEA
Sei M  (Q, ,  , q 0, F )
wir definieren
ein NEA, der L akzeptiert
M '  (Q' , ,  ' , q'0, F ' ) ein DEA:
Q
Potenzmenge von Q, Menge aller Teilmengen
Q'  2
[q1,q2, … , qi]
q'0
 ' ([ q1, q 2,..., qi ], a)
von Q
- Repräsentant eines Zustandes aus Q ' ,
wobei q1, q2, …, qi aus Q sind.
- ein einziger Zustand des DEA,
der einer Menge von Zuständen des NEA
entspricht
 [ q 0]
 [ p1, p 2,... pi ] , genau dann, wenn
 ({q1, q 2,..., qi}, a)  { p1, p 2,..., pi}
F'
- Anwendung von  auf jeden Zustand aus Q,
der durch [q1,q2, … , qi] dargestellt wird
- Vereinigung der Ergebnismenge
Menge aller Zustände aus Q ' , die einen
Endzustand aus M enthalten.
Hopcroft/Ullmann 1988:22
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
40
Äquivalenz von DEA und NEA: Beispiel
Q

NEA a
b
0
{1}
1
{1,2}
2 fs
Q’
DEA
[q0,q1,q2]
[q0,q1 ]
[q0, q2]
[q0
]
[ q1,q2]
[ q1 ]
[
q2]
[ø
]
a
b
q0

a
b
[q1,q2] [q1]
[q1,q2] [q1]
[q1]
[q1]
[q1,q2]
[q1,q2]
b
a
q1
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
q2
q0
a
q1
a
 ([ q1, q 2], a)

 (q1, a)   (q2, a) 
{q1, q2}   
{q1, q2}
q1 q2
41
Äquivalenz von DEA und NEA
in der Praxis oft viele Zustände
vom Anfangszustand [q0] aus
nicht erreichbar
Abhilfe:


lazy implementation
Konstruktion mit Zustand [q0] beginnen
Nur dann Zustände hinzufügen, wenn sie
Ergebnis einer Transition sind, die von
einem bereits hinzugefügten Zustand
ausgeht
Q’
DEA
[q0,q1,q2]
[q0,q1 ]
[q0, q2]
[q0
]
[ q1,q2]
[ q1 ]
[
q2]
[ø
]

a
b
[q1,q2] [q1]
[q1,q2] [q1]
[q1]
[q1]
[q1,q2]
[q1,q2]
a
b
q0
a
q1
q1,2
Hopcroft/Ullmann 1988:24
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
42
Äquivalenz von DEA und NEA
Umbenennung der resultierenden Zustände
Q’
DEA
[q0,q1,q2]
[q0,q1 ]
[q0, q2]
[q0
]
[ q1,q2]
[ q1 ]
[
q2]
[ø
]

a
b
[q1,q2] [q1]
[q1,q2] [q1]
[q1]
[q1]
[q1,q2]
[q1,q2]

Q’
DEA
a
b
qC
qA
qB
qC
qB
qB
a
b
q0
a
a
q1
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
b
q1,2
qA
a
qB
qC
43
Äquivalenz von NEA mit und ohne ε- Transitionen
bzw. Eliminierung von ε-Transitionen
Sei M  (Q, ,  , q 0, F )
wir definieren
ein NEA mit  -Transitionen, der L
akzeptiert
M '  (Q, ,  ' , q 0, F ' )
ein NEA ohne  -Transitionen, der L
akzeptiert:
 F  {q 0}


F

 ' (q, a )  ˆ(q, a)
falls die   HÜLLE(q0) einen Zustand
aus F enthält
sonst
F'
für q  Q und a  
Hopcroft/Ullmann 1988:26
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
44
Äquivalenz von NEA mit und ohne ε- Transitionen
bzw. Eliminierung von ε -Transitionen

adj adv det nom 
NEA a
x
d
n
0
{1}
{1}
1
{2} {2}
{2}
2
{2}
{3}
3 fs
Q
Q’

NEA adj adv det
0
1
2
3 fs
{2}
{2}
{2}
{2}
{2}
det,a,x a
nom
{1,2} {3}
{3}
{3}
0
d
1
a,x
2
n
n
n
 ' (q, a)  ˆ(q, a)
,
0
det
,
1
x
a
2
n
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
3
ˆ( q0, det ) 
 - HÜLLE( ( - HÜLLE(q0), det ))
 - Hülle ( (ˆ(q 0,  ), det) 
 - Hülle ( ({q 0, q1, q 2}, det) 
 - Hülle ( (q 0, det)   (q1, det)   (q 2, det)) 
 - Hülle ({q1}    ) 
{q1, q 2}
45
3
Äquivalenzen NEA mit und ohne ε- Transitionen
und DEA

a
Q
-
d
n
x

NEA
0
{1}
{1}
1
{2}
{2} {2}
2
{2}
{3}
3 fs
,
0
d
,
1
x
Q’

NEA a
0
1
2
3 fs
d,a,x
n
3
0
n
x
{2} {1,2} {3} {2}
{2}
{3} {2}
{2}
{3}
a
2
d
d
1
a,x
0
12
2
3 fs
2
2
2
2
d
n
x
12
3
3
3
2
2
a,x
a
n
n
n
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
Q’’

DEA a
3
0
d
12
a
a,x
2
n
n
n
46
3
Inhalt
 Endliche Akzeptoren
 Definitionen
 Definitionen: Zustandsübergangsfunktionen
 Varianten endlicher Akzeptoren: DEA, NEA, ε-NEA
 Zustandsübergangsfunktionen für Zeichenfolgen und die von
Akzeptoren akzeptierten Sprachen
 Erkennungsalgorithmen
 Äquivalenzen
 Effizienz
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
47
Effizienz endlicher Automaten
 Zeit
 Am besten: deterministische Automaten
 Allgemein: linear
 Platz
 schlechtester Fall eines DEA, der zu einem NEA mit n
Zuständen äquivalent ist: 2n Zustände
 optimierbar mit klassischen Minimierungsalgorithmen
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
48
Vielen Dank
 Für das Aufspüren von Fehlern in früheren Versionen und für
Verbesserungsvorschläge danke ich
 Hamdiye Arslan
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
49
Literatur






Grahne, Gosta (2002): Introduction to Theoretical Computer Science. Course Slides.
http://www.cs.concordia.ca/~teaching/comp335/2002F
Hopcroft, John E. Rajeev Motwani und Jeffrey D. Ullman (2001). Einführung in die
Automatentheorie, Formale Sprachen und Komplexität. Pearson Studium
engl. Original: Introduction to Automata Theory, Languages and Computation. AddisonWesley.
Hopcroft, John E. und Jeffrey D. Ullman (1988). Einführung in die Automatentheorie,
formale Sprachen und Komplexitätstheorie. Bonn u. a.: Addison-Wesley, 1988 (engl.
Original Introduction to automata theory, languages and computation)
Lawson, Mark V. (2004). Finite Automata. Boca Raton, London, New York, Washington
D.C.: Chapman&Hall/CRC.
Starke, Peter H. (2000). Logische Grundlagen der Informatik. Skript zur Vorlesung
Theoretische Informatik I. Humboldt Universität zu Berlin.
http://www2.informatik.huberlin.de/lehrstuehle/automaten/logik/skript.pdf
Starke, Peter H. (1969). Abstrakte Automaten. VEB Deutscher Verlag der Wissenschaften:
Berlin (ältere, aber sehr gute mathematische Darstellung)
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
50
Versionen





Haenelt_FSA_Akzeptoren 3.1 2.5.2010, 3.0 21.04.2009
Haenelt_FSA-Basis 2.6 27.04.2008, 2.5 05.05.2007, 2.4: 29.04.2007, 2.3: 28.04.2007, 2.2:
23.05.2006, 2.1: 19.05.2006; 2.0: 13.05.2006
24.08.,04.05.,30.04.,24.04.,26.03.2005
04.05.2004
15.01.2003
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
51
Copyright







© 2009 Karin Haenelt.
All rights reserved. The German Urheberrecht shall be applied to these slides. In
accordance with these laws these slides are a publication which may be quoted and used
for non-commercial purposes, if the bibliographic data is included as described below.
Please quote correctly. If you use the presentation or parts of it for educational and scientific
purposes, please include the bibliographic data (author, title, date, page, URL) in your
publication (book, paper, course slides, etc.).
Deletion or omission of the footer (with name, data and copyright sign) is not permitted
Bibliographic data. Karin Haenelt (20089. Endliche Automaten. Einführung in den
Themenbereich. Kursfolien 30.03.2009
http://kontext.fraunhofer.de/haenelt/kurs/folien/Haenelt_FSA-Akzeptoren.pdf
Any further use requires the prior permission in writing from the author.
For commercial use: No commercial use is allowed without written permission from the
author. In case you are interested in commercial use please contact the author.
Court of Jurisdiction is Darmstadt.
© Karin Haenelt,
Endliche Automaten, Akzeptoren,
2.5.2010
52