03.09.2013 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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>

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!