Endliche Automaten - Fachbereich 4: HTW Berlin - Hochschule für ...
Endliche Automaten - Fachbereich 4: HTW Berlin - Hochschule für ...
Endliche Automaten - Fachbereich 4: HTW Berlin - Hochschule für ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Endliche</strong> <strong>Automaten</strong><br />
<strong>Endliche</strong> <strong>Automaten</strong><br />
Horst Hansen<br />
<strong>Hochschule</strong> <strong>für</strong> Technik und Wirtschaft <strong>Berlin</strong><br />
Studiengang Angewandte Informatik<br />
Wintersemester 2011/12<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Man unterscheidet zwei Arten von endlichen <strong>Automaten</strong>:<br />
Nichtdeterministische endliche <strong>Automaten</strong> (NFA)<br />
An verschiedenen Kanten, die vom gleichen Zustand<br />
ausgehen, kann das gleiche Eingabesymbol auftreten. Auch<br />
das Symbol ɛ ist erlaubt.<br />
Deterministische endliche <strong>Automaten</strong> (DFA)<br />
Sie besitzen <strong>für</strong> jeden Zustand und jedes Eingabesymbol<br />
genau eine von hier ausgehende Kante. Das Symbol ɛ ist<br />
nicht erlaubt.<br />
Nichtdeterministische und deterministische endliche <strong>Automaten</strong><br />
besitzen die gleiche Ausdruckskraft: Sie sind in der Lage, die<br />
gleiche Menge von Sprachen, die regulären Sprachen zu<br />
erkennen, d.h. genau die Sprachen, die durch reguläre Ausdrücke<br />
beschrieben werden können.<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
<strong>Endliche</strong> <strong>Automaten</strong><br />
<strong>Endliche</strong> <strong>Automaten</strong> dienen zum Erkennen von Zeichenketten. Ihre<br />
Eingabe besteht i.a. aus einer Zeichenkette. Sie gilt als erkannt,<br />
wenn die Abarbeitung der Eingabe durch den <strong>Automaten</strong> in einem<br />
Endzustand endet. Andernfalls gilt die Eingabe als nicht erkannt.<br />
<strong>Endliche</strong> <strong>Automaten</strong><br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Man unterscheidet zwei Arten von endlichen <strong>Automaten</strong>:<br />
Nichtdeterministische endliche <strong>Automaten</strong> (NFA)<br />
An verschiedenen Kanten, die vom gleichen Zustand<br />
ausgehen, kann das gleiche Eingabesymbol auftreten. Auch<br />
das Symbol ɛ ist erlaubt.<br />
Deterministische endliche <strong>Automaten</strong> (DFA)<br />
Sie besitzen <strong>für</strong> jeden Zustand und jedes Eingabesymbol<br />
genau eine von hier ausgehende Kante. Das Symbol ɛ ist<br />
nicht erlaubt.<br />
Nichtdeterministische und deterministische endliche <strong>Automaten</strong><br />
besitzen die gleiche Ausdruckskraft: Sie sind in der Lage, die<br />
gleiche Menge von Sprachen, die regulären Sprachen zu<br />
erkennen, d.h. genau die Sprachen, die durch reguläre Ausdrücke<br />
beschrieben werden können.<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong>
<strong>Endliche</strong> <strong>Automaten</strong><br />
Man unterscheidet zwei Arten von endlichen <strong>Automaten</strong>:<br />
Nichtdeterministische endliche <strong>Automaten</strong> (NFA)<br />
An verschiedenen Kanten, die vom gleichen Zustand<br />
ausgehen, kann das gleiche Eingabesymbol auftreten. Auch<br />
das Symbol ɛ ist erlaubt.<br />
Deterministische endliche <strong>Automaten</strong> (DFA)<br />
Sie besitzen <strong>für</strong> jeden Zustand und jedes Eingabesymbol<br />
genau eine von hier ausgehende Kante. Das Symbol ɛ ist<br />
nicht erlaubt.<br />
Nichtdeterministische und deterministische endliche <strong>Automaten</strong><br />
besitzen die gleiche Ausdruckskraft: Sie sind in der Lage, die<br />
gleiche Menge von Sprachen, die regulären Sprachen zu<br />
erkennen, d.h. genau die Sprachen, die durch reguläre Ausdrücke<br />
beschrieben werden können.<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Definition endlicher <strong>Automaten</strong><br />
Definition<br />
Ein endlicher Automat A ist gegeben durch ein<br />
Fünftupel (S, Σ, λ, s0, F ), mit<br />
S ist eine endliche Menge von Zuständen<br />
Σ ist eine endliche Menge von Eingabesymbolen, das<br />
Eingabealphabet<br />
λ ist eine Zustandsübergangsfunktion, die <strong>für</strong> jedes<br />
Symbol in Σ ∪ ɛ eine Menge von Folgezuständen<br />
angibt<br />
s0 ∈ S ist der Startzustand des <strong>Automaten</strong><br />
F ⊂ S ist die Menge der (akzeptierenden, erkennenden)<br />
Zustände oder Endzustände<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Definition endlicher <strong>Automaten</strong><br />
Definition<br />
Ein endlicher Automat A ist gegeben durch ein<br />
Fünftupel (S, Σ, λ, s0, F ), mit<br />
S ist eine endliche Menge von Zuständen<br />
Σ ist eine endliche Menge von Eingabesymbolen, das<br />
Eingabealphabet<br />
λ ist eine Zustandsübergangsfunktion, die <strong>für</strong> jedes<br />
Symbol in Σ ∪ ɛ eine Menge von Folgezuständen<br />
angibt<br />
s0 ∈ S ist der Startzustand des <strong>Automaten</strong><br />
F ⊂ S ist die Menge der (akzeptierenden, erkennenden)<br />
Zustände oder Endzustände<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Definition endlicher <strong>Automaten</strong><br />
Definition<br />
Ein endlicher Automat A ist gegeben durch ein<br />
Fünftupel (S, Σ, λ, s0, F ), mit<br />
S ist eine endliche Menge von Zuständen<br />
Σ ist eine endliche Menge von Eingabesymbolen, das<br />
Eingabealphabet<br />
λ ist eine Zustandsübergangsfunktion, die <strong>für</strong> jedes<br />
Symbol in Σ ∪ ɛ eine Menge von Folgezuständen<br />
angibt<br />
s0 ∈ S ist der Startzustand des <strong>Automaten</strong><br />
F ⊂ S ist die Menge der (akzeptierenden, erkennenden)<br />
Zustände oder Endzustände<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong>
Definition endlicher <strong>Automaten</strong><br />
Definition<br />
Ein endlicher Automat A ist gegeben durch ein<br />
Fünftupel (S, Σ, λ, s0, F ), mit<br />
S ist eine endliche Menge von Zuständen<br />
Σ ist eine endliche Menge von Eingabesymbolen, das<br />
Eingabealphabet<br />
λ ist eine Zustandsübergangsfunktion, die <strong>für</strong> jedes<br />
Symbol in Σ ∪ ɛ eine Menge von Folgezuständen<br />
angibt<br />
s0 ∈ S ist der Startzustand des <strong>Automaten</strong><br />
F ⊂ S ist die Menge der (akzeptierenden, erkennenden)<br />
Zustände oder Endzustände<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Darstellung durch gerichtete Graphen<br />
<strong>Endliche</strong> <strong>Automaten</strong> werden häufig mittels gerichteten Graphen<br />
veranschaulicht, deren Knoten die Zustände des <strong>Automaten</strong> und<br />
deren bezeichnete Kanten die Zustandsübergangsfunktion<br />
beschreiben.<br />
Der folgende Graph<br />
a<br />
s0 s1 s2 s3<br />
b<br />
a b b<br />
stellt einen nichtdeterministischen endlichen <strong>Automaten</strong> dar, der<br />
die durch den regulären Ausdruck (a | b) ∗ abb definierte Sprache<br />
erkennt.<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Definition endlicher <strong>Automaten</strong><br />
Definition<br />
Ein endlicher Automat A ist gegeben durch ein<br />
Fünftupel (S, Σ, λ, s0, F ), mit<br />
S ist eine endliche Menge von Zuständen<br />
Σ ist eine endliche Menge von Eingabesymbolen, das<br />
Eingabealphabet<br />
λ ist eine Zustandsübergangsfunktion, die <strong>für</strong> jedes<br />
Symbol in Σ ∪ ɛ eine Menge von Folgezuständen<br />
angibt<br />
s0 ∈ S ist der Startzustand des <strong>Automaten</strong><br />
F ⊂ S ist die Menge der (akzeptierenden, erkennenden)<br />
Zustände oder Endzustände<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Darstellung durch gerichtete Graphen<br />
<strong>Endliche</strong> <strong>Automaten</strong> werden häufig mittels gerichteten Graphen<br />
veranschaulicht, deren Knoten die Zustände des <strong>Automaten</strong> und<br />
deren bezeichnete Kanten die Zustandsübergangsfunktion<br />
beschreiben.<br />
Der folgende Graph<br />
a<br />
s0 s1 s2 s3<br />
b<br />
a b b<br />
stellt einen nichtdeterministischen endlichen <strong>Automaten</strong> dar, der<br />
die durch den regulären Ausdruck (a | b) ∗ abb definierte Sprache<br />
erkennt.<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong>
Darstellung durch gerichtete Graphen<br />
<strong>Endliche</strong> <strong>Automaten</strong> werden häufig mittels gerichteten Graphen<br />
veranschaulicht, deren Knoten die Zustände des <strong>Automaten</strong> und<br />
deren bezeichnete Kanten die Zustandsübergangsfunktion<br />
beschreiben.<br />
Der folgende Graph<br />
a<br />
s0 s1 s2 s3<br />
b<br />
a b b<br />
stellt einen nichtdeterministischen endlichen <strong>Automaten</strong> dar, der<br />
die durch den regulären Ausdruck (a | b) ∗ abb definierte Sprache<br />
erkennt.<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Akzeptieren von Eingabestrings durch <strong>Automaten</strong><br />
Definition<br />
Ein endlicher Automat akzeptiert einen Eingabestring genau<br />
dann, wenn es im zugehörigen gerichteten Graphen einen Pfad vom<br />
Startzustand zu einem akzeptierenden Zustand (Endzustand) gibt.<br />
An dem folgenden Bild sehen wir, daß unser Beispielautomat den<br />
Eingabestring aabb akzeptiert:<br />
a a b b<br />
s0 s0 s1 s2 s3<br />
Man beachte, daß verschiedene mit dem gleichen Eingabestring<br />
bezeichnete Pfade zu unterschiedlichen Zuständen führen können:<br />
a a b b<br />
s0 s0 s0 s0 s0<br />
Bei einem nichtdeterministischen endlichen <strong>Automaten</strong> reicht es,<br />
wenn es einen Pfad gibt, der in einem Endzustand endet!<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Darstellung durch Zustandsübergangstabellen<br />
Eine andere Form der Darstellung von endlichen <strong>Automaten</strong> sind<br />
Zustandsübergangstabellen. Der nichtdeterministische endliche<br />
Automat von der vorherigen Folie würde so angegeben werden:<br />
Zustand a b ɛ<br />
s0 {s0, s1} {s0} φ<br />
s1 φ {s2} φ<br />
s2 φ {s3} φ<br />
s3 φ φ φ<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Akzeptieren von Eingabestrings durch <strong>Automaten</strong><br />
Definition<br />
Ein endlicher Automat akzeptiert einen Eingabestring genau<br />
dann, wenn es im zugehörigen gerichteten Graphen einen Pfad vom<br />
Startzustand zu einem akzeptierenden Zustand (Endzustand) gibt.<br />
An dem folgenden Bild sehen wir, daß unser Beispielautomat den<br />
Eingabestring aabb akzeptiert:<br />
a a b b<br />
s0 s0 s1 s2 s3<br />
Man beachte, daß verschiedene mit dem gleichen Eingabestring<br />
bezeichnete Pfade zu unterschiedlichen Zuständen führen können:<br />
a a b b<br />
s0 s0 s0 s0 s0<br />
Bei einem nichtdeterministischen endlichen <strong>Automaten</strong> reicht es,<br />
wenn es einen Pfad gibt, der in einem Endzustand endet!<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong>
Akzeptieren von Eingabestrings durch <strong>Automaten</strong><br />
Definition<br />
Ein endlicher Automat akzeptiert einen Eingabestring genau<br />
dann, wenn es im zugehörigen gerichteten Graphen einen Pfad vom<br />
Startzustand zu einem akzeptierenden Zustand (Endzustand) gibt.<br />
An dem folgenden Bild sehen wir, daß unser Beispielautomat den<br />
Eingabestring aabb akzeptiert:<br />
a a b b<br />
s0 s0 s1 s2 s3<br />
Man beachte, daß verschiedene mit dem gleichen Eingabestring<br />
bezeichnete Pfade zu unterschiedlichen Zuständen führen können:<br />
a a b b<br />
s0 s0 s0 s0 s0<br />
Bei einem nichtdeterministischen endlichen <strong>Automaten</strong> reicht es,<br />
wenn es einen Pfad gibt, der in einem Endzustand endet!<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Akzeptieren von Eingabestrings durch <strong>Automaten</strong><br />
Definition<br />
Ein endlicher Automat akzeptiert einen Eingabestring genau<br />
dann, wenn es im zugehörigen gerichteten Graphen einen Pfad vom<br />
Startzustand zu einem akzeptierenden Zustand (Endzustand) gibt.<br />
An dem folgenden Bild sehen wir, daß unser Beispielautomat den<br />
Eingabestring aabb akzeptiert:<br />
a a b b<br />
s0 s0 s1 s2 s3<br />
Man beachte, daß verschiedene mit dem gleichen Eingabestring<br />
bezeichnete Pfade zu unterschiedlichen Zuständen führen können:<br />
a a b b<br />
s0 s0 s0 s0 s0<br />
Bei einem nichtdeterministischen endlichen <strong>Automaten</strong> reicht es,<br />
wenn es einen Pfad gibt, der in einem Endzustand endet!<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Akzeptieren von Eingabestrings durch <strong>Automaten</strong><br />
Definition<br />
Ein endlicher Automat akzeptiert einen Eingabestring genau<br />
dann, wenn es im zugehörigen gerichteten Graphen einen Pfad vom<br />
Startzustand zu einem akzeptierenden Zustand (Endzustand) gibt.<br />
An dem folgenden Bild sehen wir, daß unser Beispielautomat den<br />
Eingabestring aabb akzeptiert:<br />
a a b b<br />
s0 s0 s1 s2 s3<br />
Man beachte, daß verschiedene mit dem gleichen Eingabestring<br />
bezeichnete Pfade zu unterschiedlichen Zuständen führen können:<br />
a a b b<br />
s0 s0 s0 s0 s0<br />
Bei einem nichtdeterministischen endlichen <strong>Automaten</strong> reicht es,<br />
wenn es einen Pfad gibt, der in einem Endzustand endet!<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Deterministischer endlicher Automat<br />
Definition<br />
Ein deterministischer endlicher Automat ist ein endlicher<br />
Automat, bei dem folgende zusätzlichen Bedingungen gelten:<br />
Bei der Eingabe von ɛ erfolgen keine Zustandsübergänge.<br />
Für jeden Zustand s ∈ S und jedes Eingabesymbol a ∈ Σ gibt<br />
es genau einen Folgezustand λ(s, a) ∈ S.<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong>
Deterministischer endlicher Automat<br />
Satz<br />
Zu jedem regulären Ausdruck R läßt sich ein nichtdeterministischer<br />
endlicher Automat A konstruieren, der genau die durch R erzeugte<br />
reguläre Sprache L(R) erkennt.<br />
Satz<br />
Zu jedem nichtdeterministischen endlichen <strong>Automaten</strong> A läßt sich<br />
ein deterministischer endlicher Automat B konstruieren, der die<br />
gleiche Sprache erkennt wie A, d.h. so daß gilt: L(A) = L(B)<br />
Lexikalische Analyse<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Die heute gebräuchlichen Programme zum Erzeugen von Lexern,<br />
deren Token durch reguläre Ausdrücke beschrieben werden,<br />
arbeiten intern entlang den Konstruktionen, die in den<br />
mathematischen Beweisen der obigen Sätze gemacht werden.<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong><br />
Deterministischer endlicher Automat<br />
Satz<br />
Zu jedem regulären Ausdruck R läßt sich ein nichtdeterministischer<br />
endlicher Automat A konstruieren, der genau die durch R erzeugte<br />
reguläre Sprache L(R) erkennt.<br />
Satz<br />
Zu jedem nichtdeterministischen endlichen <strong>Automaten</strong> A läßt sich<br />
ein deterministischer endlicher Automat B konstruieren, der die<br />
gleiche Sprache erkennt wie A, d.h. so daß gilt: L(A) = L(B)<br />
Horst Hansen <strong>Endliche</strong> <strong>Automaten</strong>