EndlicheAutomaten - thi.informatik.uni-frankfurt.de Automaten Folien.pdf · EinKaffeeautomat...

Post on 05-Aug-2019

220 views 0 download

Transcript of EndlicheAutomaten - thi.informatik.uni-frankfurt.de Automaten Folien.pdf · EinKaffeeautomat...

Endliche Automaten

Endliche Automaten 1 / 108

Endliche Automaten

Endliche Automaten erlauben eine Beschreibung von Handlungsabläufen:Wie ändert sich ein Systemzustand in Abhängigkeit vonveränderten Umgebungsbedingungen?

Vielfältiges Einsatzgebiet, nämlich:- in der Definition der regulären Sprachen

also der Menge aller Folgen von Ereignissen,die von einem Startzustand in einen gewünschten Zustand führen,

- in der Entwicklung digitaler Schaltungen- in der Softwaretechnik (z. B. in der Modellierung desApplikationsverhaltens)

- in der Compilierung: Lexikalische Analyse- im Algorithmenentwurf für String Probleme- in der Abstraktion tatsächlicher Automaten (wie Bank- undGetränkeautomaten, Fahrstühle etc.)

Endliche Automaten 2 / 108

Das Problem der Flußüberquerung

W K ZM

M W K Z

W M K Z

KM W Z

K M W Z

M Z K W

Z M W K

M Z W K

Z M ZM

M

W

M

M

M

K

KW

M

M Z ZM M MZ Z

M

M

K

K M W

WM

M M

ZM

M KZW

M

ZM

MW KZ"akzeptierender Zustand"

"Startzustand"

Dieser endliche Automat „akzeptiert“ genau diejenigen Folgen von einzelnenFlussüberquerungen, die vom Startzustand in den akzeptierenden Zustand führen.

Endliche Automaten Beispiele 3 / 108

Ein Kaffeeautomat

Der Automat erlaubt das Einwerfen von 1 oder 2 e-Münzen, sowie das Drückender Tasten „Geldrückgabe“ und „Kaffee kaufen“. (Der Kaffee kostet 2 e.)

Und hier ist die Spezifikation des Automaten:

Einwerfen einer2 e-Münze

Drücken der„Geld Rückgabe“-Taste

Drücken der Taste„Kaffee kaufen“

Drücken der„Geld Rückgabe“-Taste

Einwerfen einer1 e-Münze 1 e-Münze

Einwerfen einerZustand 1

Grundzustand Zustand 2

Dieser Automat „akzeptiert“ genau diejenigen Folgen von Bedienoperationen, die vom Grund-zustand aus wieder in den Grundzustand führen.

Endliche Automaten Beispiele 4 / 108

Freischaltung eines Fernsehers (1/2)

Um die Kindersicherung des Fernsehers über die Fernbedienung freizuschalten, mussein dreistelliger Code korrekt eingegeben werden. Dabei sind die folgenden Tastenrelevant:

- Die Tasten 0, . . . , 9,- die Taste CODE sowie- die Taste BACK.

Die Taste CODE muss vor Eingabe des Codes gedrückt werden.Wird CODE während der Codeeingabe nochmals gedrückt, so wird die Eingabe neubegonnen.Wird BACK gedrückt, so wird die zuletzt eingegebene Zahl zurückgenommen.

Der Code zum Entsperren ist 999.

Endliche Automaten Beispiele 5 / 108

Freischaltung eines Fernsehers (2/2)

9

x

9

BACKCODE

0,...,8

CODE

0,...,8

9

CODE

0,...,8

0,...,9

BACKCODE

BACK

CODE

0,...,9

CODE

0,...,9

CODE

0,...,9

BACK

9

BACK

BACK

BACKxx OFF

9x

99 ONready

Der Automat „akzeptiert“ alle Folgen von Bedienoperationen,die vom Zustand „ready“ in den Zustand „ON“ führen.

Endliche Automaten Beispiele 6 / 108

Was ist ein endlicher Automat?

Ein deterministischer endlicher Automat (engl. deterministic finite automaton,kurz DFA)

A = (Σ, Q, δ, q0, F )

besteht aus:einer endlichen Menge Σ, dem Eingabealphabet,einer endlichen Menge Q, der Zustandsmenge (die Elemente aus Q werdenZustände genannt),einer partiellen Funktion δ von Q × Σ nach Q,der Übergangsfunktion (oder Überführungsfunktion),einem Zustand q0 ∈ Q, dem Startzustand,sowie einer Menge F ⊆ Q von Endzuständen bzw. akzeptierendenZuständen. (Der Buchstabe F steht für „final states“, also „Endzustände“).

Endliche Automaten DFAs: Die formale Definition 7 / 108

Der Kaffeautomat als DFA A = (Σ,Q, δ, q0,F )

Σ = Einwerfen einer 1 e-Münze, Einwerfen einer 2 e-Münze,Drücken der „Geld Rückgabe“-Taste,Drücken der Taste „Kaffee kaufen“

Q = Grundzustand, Zustand 1, Zustand 2q0 = GrundzustandF = Grundzustanddie Funktion δ : Q × Σ→ Q ist partiell und besitzt die „Automatentabelle“

δ(Grundzustand,Einwerfen einer 1 e-Münze) = Zustand 1,δ(Grundzustand,Einwerfen einer 2 e-Münze) = Zustand 2,

δ(Zustand 1,Einwerfen einer 1 e-Münze) = Zustand 2,δ(Zustand 1,Drücken der „Geld Rückgabe“-Taste) = Grundzustand,δ(Zustand 2,Drücken der „Geld Rückgabe“-Taste) = Grundzustand,δ(Zustand 2,Drücken der Taste „Kaffee kaufen“) = Grundzustand.

Endliche Automaten DFAs: Die formale Definition 8 / 108

Der Automatengraph,die grafische Darstellung eines DFA

Endliche Automaten Der Automatengraph 9 / 108

Grafische Darstellung: Der Automatengraph

A = (Σ,Q, δ, q0,F ) sei ein DFA.

Für jeden Zustand q ∈ Q gibt es einen durch q dargestellten Knoten.

Der Startzustand q0 wird durch einen in ihn hinein führenden Pfeil markiert,d.h.:

q0

Jeder akzeptierende Zustand q ∈ F wird durch eine doppelte Umrandungmarkiert, d.h.:

q

Seien p, q ∈ Q Zustände und a ∈ Σ ein Symbol des Alphabets mitδ(q, a) = p. Dann füge einen mit dem Symbol a beschrifteten Pfeil vonKnoten q zu Knoten p ein, d.h.:

q pa

Endliche Automaten Der Automatengraph 10 / 108

Wie arbeitet ein DFA?Die erweiterte Übergangsfunktion

Endliche Automaten Die erweiterte Übergangsfunktion 11 / 108

Wie arbeitet ein DFA A = (Σ,Q, δ, q0,F )? (1/2)

Ein DFA A = (Σ,Q, δ, q0,F ) erhält als Eingabe ein Wort w ∈ Σ∗,das eine Folge von „Aktionen“ oder „Bedienoperationen“ repräsentiert.

A wird im Startzustand q0 gestartet. Falls w das leere Wort ist, d.h. w = ε, dannverbleibt A im Zustand q0.

Also gelte w = a1 · · · an mit n ∈ N>0 und a1, . . . , an ∈ Σ.1. Der Automat liest den ersten Buchstaben a1 von w .

I Wenn δ nicht für das Paar (q0, a1) definiert ist, dann stürzt A ab I Ansonsten wechselt A in den Zustand q1 := δ(q0, a1).

In der grafischen Darstellung von A wird der Zustand

q0

durch die mit a1 beschriftete Kante verlassen, und q1 ist der Endknoten dieserKante, d.h.

q0 q1a1

Endliche Automaten Die erweiterte Übergangsfunktion 12 / 108

Wie arbeitet ein DFA A = (Σ,Q, δ, q0,F )? (2/2)

2. Durch Lesen von a2, dem zweiten Symbol von w , wechselt A in den Zustandq2 := δ(q1, a2), bzw. „stürzt ab“, falls δ nicht für (q1, a2) definiert ist.In der grafischen Darstellung von A wird

q1

durch die mit a2 beschriftete Kante verlassen (falls diese Kante existiert)

q1 q2a2

und der Automat landet in Zustand q2 = δ(q1, a2).n. Auf diese Weise wird das gesamte Eingabewort w = a1 · · · an abgearbeitet.

I Ausgehend vom Startzustand q0 erreicht A nacheinander Zustände q1, . . . , qn.I In der grafischen Darstellung von A entspricht diese Zustandsfolge einem Weg

der Länge n, der im Knoten

q0

startet und dessen Kanten mit den Buchstaben a1, . . . , an beschriftet sind.I Schreibe δ(q0,w) := qn, bzw. δ(q0,w) := ⊥, wenn A zwischenzeitlich abstürzt.

Endliche Automaten Die erweiterte Übergangsfunktion 13 / 108

Was genau ist δ(q,w)? (1/2)

Sei A := (Σ,Q, δ, q0,F ) ein DFA. Sei ⊥ ein Symbol, das nicht in derZustandsmenge Q liegt, und sei Q⊥ := Q ∪ ⊥. Die Funktion

δ : Q⊥ × Σ∗ → Q⊥

ist rekursiv wie folgt definiert:F.a. w ∈ Σ∗ ist δ(⊥,w) := ⊥. (Einmal abgestürzt, immer abgestürzt.)Der Rekursionsanfang: f.a. q ∈ Q ist δ(q, ε) := q.Und der Rekursionsschritt?

Endliche Automaten Die erweiterte Übergangsfunktion 14 / 108

Was genau ist δ(q,w)? (2/2)

Der Rekursionsschritt: F.a. q ∈ Q, w ∈ Σ∗ und a ∈ Σ gilt für q′ := δ(q,w):

δ(q,wa) :=

⊥ falls δ nicht für (q′, a) definiert ist,δ(q′, a) falls δ für (q′, a) definiert ist.

Grafische Darstellung:

δ(q,w) δ(δ(q,w), a)q w a

wa

Insgesamt gilt:- Falls δ(q0,w) 6= ⊥, so ist δ(q0,w) der Zustand, der durch Verarbeiten desWorts w erreicht wird.

- Falls δ(q0,w) = ⊥, so stürzt der Automat beim Verarbeiten des Worts w ab.

Endliche Automaten Die erweiterte Übergangsfunktion 15 / 108

DFAs: Die Maschinensichtweise

Verarbeitung eines Eingabewortsdurch einen DFA A:

· · ·a1 a3a2

aktuellerq0 Zustand

w = an

Lesekopf

Wir können uns einen DFA als eine Maschine vorstellen, die∗ ihre Eingabe w = a1a2a3 · · · an

von links-nach-rechts mit Hilfe eines Lesekopfes durchläuft∗ und dabei Zustandsübergänge durchführt.

Endliche Automaten DFAs: Die Maschinensichtweise 16 / 108

Können wir heutige Rechner durch DFAs modellieren?

Endliche Automaten DFAs: Die Maschinensichtweise 17 / 108

Die akzeptierte Sprache eines DFA

DFAs und ihre Sprachen 18 / 108

Wann akzeptiert A = (Σ,Q, δ, q0,F ) ein Wort w?

Das Eingabewort w wird vom DFA A akzeptiert, falls

δ(q0,w) ∈ F ,

d.h., A stürzt bei Eingabe von w nicht ab, und der nach Verarbeiten von werreichte Zustand gehört zur Menge F der akzeptierenden Zustände.

Wie „übersetzt“ sich

Akzeptanz von w = a1 · · · an

in der grafischen Darstellung von A? Es gibt einen in

q0

startenden Weg der Länge n,- dessen Kanten mit den Symbolen a1, . . . , an beschriftet sind,

- und der in einem akzeptierenden Zustand endet.

DFAs und ihre Sprachen 19 / 108

Die akzeptierte Sprache L(A)

Die von einem DFA A = (Σ,Q, δ, q0,F ) akzeptierte Sprache L(A) ist

L(A) := w ∈ Σ∗ : δ(q0,w) ∈ F .

Ein Wort w ∈ Σ∗ gehört also genau dann zur Sprache L(A),wenn w vom DFA A akzeptiert wird.

DFAs und ihre Sprachen 20 / 108

Der Automat A1

Wir betrachten das Eingabealphabet Σ := a, b.

Sei A1 ein DFA mit folgender graphischer Darstellung:

ba

b

A1 akzeptiert z.B. folgende Worte: ε, a, b, aaa, aaab, aaaabbbb, bbb, . . .A1 „stürzt ab“ z.B. bei Eingabe von ba, aabbba.

Insgesamt gilt:

L(A1) = anbm : n ∈ N, m ∈ N .

anbm bezeichnet das Wort a · · · ab · · · b der Länge n + m,das aus n a’s gefolgt von m b’s besteht, z.B. ist a3b4 das Wort aaabbbb.

DFAs und ihre Sprachen Beispiele 21 / 108

Der Automat A2

Der DFA A2 hat den Automatengraphen

a

b

a

b

A2 akzeptiert die Sprache

L(A2) = w ∈ a, b∗ : der letzte Buchstabe von w ist ein a

DFAs und ihre Sprachen Beispiele 22 / 108

Der Automat A3

Die graphische Darstellung eines DFA A3 mit

L(A3) = w ∈ a, b∗ : der vorletzte Buchstabe von w ist ein a

ist

a

b

a

aa

b

b

b

qbb qba

qab

qaa

DFAs und ihre Sprachen Beispiele 23 / 108

Ein ParitätscheckBei der Speicherung von Daten auf einem Speichermedium eines Computerswerden Informationen durch binäre Worte über dem Alphabet 0, 1 kodiert.

Um Fehler bei der Datenübertragung zu erkennen, wird oft ein „Paritätsbitangehängt, so dass die Summe der Einsen im resultierenden Wort w gerade ist.

Für ein beliebiges Wort w ∈ 0, 1∗ sagen wir

w „besteht den Paritätscheck“,

falls die Anzahl der Einsen in w gerade ist.Der folgende DFA A führt einen Paritätscheck durch:

q0 q1

01

1

0

Für A gilt: L(A) = w ∈ 0, 1∗ : w besteht den Paritätscheck .DFAs und ihre Sprachen Beispiele 24 / 108

Das Murmelspiel

(L, L,−) (L, L,C)

(R, L,C)

(L,R,C)

(R,R,C)

(L,R,D)

(L, L,D)

(R, L,D)

(R,R,D)

A

B

A

B

A

B

A

BA B

A

B

A

B

A

B

A

B

Wir interessieren uns für alle Folgen von Einwürfen von Murmeln in die EingängeA oder B, so dass die letzte Murmel am Ausgang D herausrollt:

Uns interessiert also die Sprache aller Worte w ∈ A,B∗, so dass derAutomat vom Startzustand (L, L,−) aus einen Zustand (∗, ∗,D) erreicht!

DFAs und ihre Sprachen Beispiele 25 / 108

Endliche Automaten in der technischen Informatik

Endliche Automaten in der technischen Informatik 26 / 108

Schaltnetze

Mit einem Schaltnetz wird ein Tupel boolescher Funktionen berechnet, also eineFunktion der Form

f : 0, 1n → 0, 1m.

Schaltnetze können z.B. arithmetische Funktionen berechnen wie etwa dieAddition oder Multiplikation von Zahlen, deren Binärdarstellung n/2 Bits lang ist.

Endliche Automaten in der technischen Informatik 27 / 108

Boolesche Funktionen und endliche AutomatenSei f : 0, 1n → 0, 1 eine boolesche Funktion.

Wie berechnet man f mit einem endlichen Automaten Af = (Σ,Q, δ, q0,F )?

1. Af besitzt das Eingabealphabet Σ = 0, 1n,2. die Zustandsmenge Q = ε , 0 , 1 mit Startzustand q0 = ε,3. die partielle Übergangsfunktion δ : Q × Σ→ Q mit

δ(ε, x) = f (x)

4. und die Menge F = 1 akzeptierender Zustände.

Aber endliche Automaten können kein Tupel g boolescher Funktionen mit

g : 0, 1n → 0, 1m

für m > 1 berechnen!Endliche Automaten in der technischen Informatik 28 / 108

Moore Automaten und Mealy Automaten:DFAs mit Ausgaben

Endliche Automaten in der technischen Informatik Moore Automaten und Mealy Automaten 29 / 108

Moore Automaten

Endliche Automaten können „nur“ akzeptieren oder verwerfen,Moore Automaten können beliebige Ausgaben ausgeben.

Ein Moore Automat (Σ,Q, δ, q0, λ,Ω,F ) ist wie ein DFA aufgebaut,besitzt aber zusätzlich

- ein Ausgabealphabet Ω und- eine Ausgabefunktion λ : Q → Ω.

Ein Moore Automat produziert für jeden Zustand eine Ausgabe.

Endliche Automaten in der technischen Informatik Moore Automaten und Mealy Automaten 30 / 108

Moore Automaten und Tupel boolescher Funktionen

Das Tupelf : 0, 1n → 0, 1m

boolescher Funktionen sei vorgegeben.

f wird von dem folgenden Moore Automaten (Σ,Q, δ, q0, λ,Ω,F ) berechnet:- Σ = 0, 1n ist das Eingabealphabet,- Q = ε ∪ 0, 1m ist die Zustandsmenge und q0 = ε der Startzustand,- δ : Q × Σ→ Q mit

δ(ε, x) = f (x)

ist die partielle Übergangsfunktion (δ ist nur für von ε ausgehendeÜbergänge definiert),

- Ω = 0, 1m ist das Ausgabealphabet und- λ : Q → Ω mit λ(q) = q ist die Ausgabefunktion.

Endliche Automaten in der technischen Informatik Moore Automaten und Mealy Automaten 31 / 108

SchaltwerkeIn einem Schaltwerk wird Rückkopplung erlaubt: In „einem Schritt“ wird eineAusgabefunktion gA und eine Rückkopplungsfunktion gR berechnet mit

gA : 0, 1n × 0, 1r → 0, 1m und gR : 0, 1n × 0, 1r → 0, 1r

Erscheinen nacheinander die Eingaben x1, . . . , xk ∈ 0, 1n, dann werden

Ausgaben y1, . . . , yk ∈ 0, 1m und Rückkopplungen r0 = 0r , r1, . . . , rk−1

berechnet, wobeiyi = gA(xi , ri−1) und ri = gR(xi , ri−1).

Beispielsweise kann ein Steuerwerk durch ein Schaltwerk berechnet werden.1. Ein Steuerwerk lädt den nächsten Befehl und interpretiert ihn.2. Operanden, auf die sich der Befehl bezieht, werden geladen und Steuersignale

an andere Funktionseinheiten (wie etwa das Rechenwerk) erstellt.

Endliche Automaten in der technischen Informatik Moore Automaten und Mealy Automaten 32 / 108

Mealy Automaten

Auch Mealy Automaten sind wie DFAs aufgebaut, besitzen aber zusätzlich- ein Ausgabealphabet Ω und- eine Ausgabefunktion λ : Q × Σ→ Ω.

Ein Mealy Automat produziert eine vom Zustand undvom Eingabesymbol abhängige Ausgabe.

Warum können wir einen Moore Automaten mit Ausgabefunktion

λ : Q → Ω

auch als Mealy Automaten mit Ausgabefunktion

λ′ : Q × Σ→ Ω

auffassen? Wie sollten wir λ′(q, a) definieren?

Endliche Automaten in der technischen Informatik Moore Automaten und Mealy Automaten 33 / 108

Ein Mealy Automat für die Addition

Die Binärzahlen x = 0xn · · · x0 und y = 0yn · · · y0 sind zu addieren.Die Eingabe ist [x0y0][x1y1] · · · [xnyn][00].

Das i-te Ausgabe-Bit hängt nur ab von xi−1, yi−1 und dem im vorherigen Schrittevtl. erzeugten Übertrag.

9

01, 10/0

y

11/1

q1

z

00/0

:

01, 10/1

q011/0 1

00/1)

Endliche Automaten in der technischen Informatik Moore Automaten und Mealy Automaten 34 / 108

Mealy Automaten und Schaltwerke

Schaltwerke lassen sich durch (Moore Automaten oder) Mealy Automatenmodellieren.

1. Angenommen, das Schaltwerk berechnet

die Ausgabefunktion gA : 0, 1r × 0, 1n → 0, 1m

mit der Rückkopplung gR : 0, 1r × 0, 1n → 0, 1r .

2. Wir definieren einen Mealy Automaten M = (Σ,Q, δ, q0, λ,Ω) wie folgt:I Eingabealphabet Σ = 0, 1n und Ausgabealphabet Ω = 0, 1m,I Zustandsmenge Q = 0, 1r und Anfangszustand q0 = 0r ,I Ausgabefunktion λ : Q × Σ→ Ω mit λ = gA undI Übergangsfunktion δ : Q × Σ→ Q mit δ = gR .

M verhält sich wie das Schaltwerk, berechnet also dieselbe Ausgabenfolge.

Automaten können Rückkopplung mit Hilfe ihrer Zustände simulieren undbieten sich deshalb für die (partielle) Beschreibung von Schaltwerken an!

Endliche Automaten in der technischen Informatik Moore Automaten und Mealy Automaten 35 / 108

Technische Informatik: Der Entwurf von Schaltwerken

Moore oder Mealy Automaten spielen eine zentrale Rolle.

Der Entwurfsprozess1. Ein Mealy Automat wird zur Lösung eines Teils der Problemstellung entwickelt.2. Der Automat wird minimiert, d.h. ein äquivalenter Automat mit kleinster

Zustandsmenge wird berechnet und seine Automatentabelle bestimmt.3. Mit Verfahren der Logik-Optimierung (wie etwa Quine/McCluskey) bestimmt

man die minimale Gatterzahl für den kombinatorischen Teil der Schaltung.

Alle Details und viel, viel mehr in der Vorlesung

Hardwarearchitekturen und Rechensysteme.

Endliche Automaten in der technischen Informatik Moore Automaten und Mealy Automaten 36 / 108

Bitte, bitte, bitte

keinen partiell definierten Moore oder Mealy Automaten

„in Silikon gießen“.

Abstürzen ist nicht erlaubt!

Wir haben partiell definierte Automaten nur benutzt,um kompakte Beschreibungen zu erhalten.

Endliche Automaten in der technischen Informatik Moore Automaten und Mealy Automaten 37 / 108

Können wir heutige Rechner durch Mealy Automatensimulieren?

1. „Im Prinzip“ ja: Heutige Rechner besitzen zwar einen modifizierbaren Speicher,aber dieser Speicher ist beschränkt.

I Was immer ein moderner Rechner berechnen kann, lässt sich auch durch Moore-oder Mealy-Automaten berechnen.

2. Aber um k Flip-Flops zu simulieren, brauchen wir Mealy Automaten mit bis zu2k Zuständen.

I Eine Simulierung moderner Rechner durch Mealy Automaten ist völlig unsinning,weil der notwendige Speicher im schlimmsten Fall exponentiell anwächst.

3. Aber Mealy Automaten bieten sich zum Beispiel an, um Steuerwerke zusimulieren.

I Und dann sollten wir mit Ihnen arbeiten, denn wir können Mealy Automatenminimieren wie wir gleich sehen werden.

Endliche Automaten in der technischen Informatik Moore Automaten und Mealy Automaten 38 / 108

Minimierung von DFAs

Minimierung 39 / 108

Minimiere die Zustandszahl

A = (Σ, QA, δA, qA0 , FA) und B = (Σ, QB , δB , qB

0 , FB) seien vollständige DFAs.

(a) Wir nennen A und B äquivalent, wenn gilt

L(A) = L(B).

(b) A heißtminimal,

wenn kein mit A äquivalenter vollständiger DFA eine kleinere Zustandszahlbesitzt.

DAS ZIEL:Gegeben ist ein vollständiger DFA A.Bestimme einen minimalen, mit A äquivalenten vollständigen DFA.

Minimierung 40 / 108

Zustandsminimierung: Die Idee

Der DFA A = (Σ, Q, δ, q0, F ) sei gegeben.

Die Idee: Wir sollten doch zwei Zustände p, q ∈ Q zu einem einzigen Zustandverschmelzen dürfen, wenn p und q „äquivalent“ sind,

also dasselbe Ausgabeverhalten besitzen.

Was bedeutet das?

Die Verschmelzungsrelation ≡A ist eine 2-stellige Relation über der Zustands-menge Q. Wir sagen, dass Zustände p, q ∈ Q äquivalent bzgl. A sind,(kurz p ≡A q), wenn

f.a. Worte w ∈ Σ∗ : δ(p,w) ∈ F ⇔ δ(q,w) ∈ F .

Wir nennen ≡A Verschmelzungsrelation, da wir bzgl. ≡A äquivalente Zuständein einen Zustand verschmelzen möchten.

Minimierung 41 / 108

Einschub: Äquivalenzrelationen

Minimierung 42 / 108

2-stellige Relationen und gerichtete Graphen

Zur Erinnerung: Für eine 2-stellige Relation R über der Knotenmenge V gilt

R ⊆ V × V .

Wir können somitdie Relation R als Kantenmenge undumgekehrt eine Kantenmenge als eine 2-stellige Relation auffassen.

Gerichtete Graphen mit Knotenmenge V

und

2-stellige Relationen über V

sind äquivalente Konzepte!

Minimierung 43 / 108

Wichtige Eigenschaften 2-stelliger Relationen

Sei E eine 2-stellige Relation über einer Menge V , d.h. G = (V ,E ) ist eingerichteter Graph.(a) E heißt reflexiv, falls für alle v ∈ V gilt:

(v , v) ∈ E . (Skizze: v )(b) E heißt symmetrisch, falls f.a. v ,w ∈ V gilt:

Wenn (v ,w) ∈ E , dann auch (w , v) ∈ E .

zur Kante v w gibt es auch die “Rückwärtskante“ v w(c) E heißt transitiv, falls f.a. v ,w , u ∈ V gilt:

Ist (v ,w) ∈ E und (w , u) ∈ E , so auch (v , u) ∈ E .

(Skizze:v w u

E EE E

E

v w u)

Minimierung 44 / 108

Äquivalenzrelationen

(a) Eine Äquivalenzrelation ist eine 2-stellige Relation, diereflexiv, transitiv und symmetrisch ist.

(b) Sei E eine Äquivalenzrelation über einer Menge V .I Für jedes v ∈ V bezeichnet

[v ]E := v ′ ∈ V | (v , v ′) ∈ E

die Äquivalenzklasse von v bezüglich E .F [v ]E besteht aus allen Elementen von V , die gemäß E “äquivalent“ zu v sind.

I Eine Menge W ⊆ V heißt Äquivalenzklasse (bzgl. E),falls W = [v ]E für ein Element v ∈ V gilt.

F Das Element v heißt Vertreter seiner Äquivalenzklasse W .

Minimierung Äquivalenzrelationen 45 / 108

Die wichtigste Eigenschaft von Äquivalenzrelationen

Sei E eine Äquivalenzrelation über der Menge V .

(a) Dann gilt für alle Elemente v ,w ∈ V

[v ]E = [w ]E oder [v ]E ∩ [w ]E = ∅.

(b) V ist eine disjunkte Vereinigung von Äquivalenzklassen.

Beweis: Siehe Tafel.

Minimierung Äquivalenzrelationen 46 / 108

Äquivalenzrelationen: Beispiele (1/2)

(a) Gleichheit: Für jede Menge M ist

E := (m,m) : m ∈ M

eine Äquivalenzrelation: „(x , y) ∈ E“ gilt genau dann, wenn „x = y“.(b) Gleichmächtigkeit: Für jede endliche Menge M ist

E := (A,B) : A ⊆ M, B ⊆ M, |A| = |B|

eine Äquivalenzrelation über der PotenzmengeM. Skizze für M = 1, 2:

1 2

1, 2

Minimierung Äquivalenzrelationen 47 / 108

Äquivalenzrelationen: Beispiele (2/2)

(c) Logische Äquivalenz: Die Relation

E := (φ, ψ) : φ, ψ ∈ AL, φ ≡ ψ

ist eine Äquivalenzrelation über der Menge AL aller aussagenlogischenFormeln.

(d) Graph-Isomorphie: Für jede Menge V ist

E := (G1,G2) | G1 = (V ,E1), G2 = (V ,E2)

sind isomorphe ungerichtete Graphen

eine Äquivalenzrelation über der Menge aller ungerichteten Graphen mitKnotenmenge V .

Minimierung Äquivalenzrelationen 48 / 108

Der Index

Sei E eine Äquivalenzrelation. Dann ist der Index von E die Anzahl derverschiedenen Äquivalenzklassen.

Der Index einer Äquivalenzrelation gibt an,wie viele verschiedene Äquivalenzklassen es gibt.

(a) Betrachte wieder die Äquivalenzrelation der Gleichmächtigkeit für TeilmengenA,B ⊆ M, also

A ∼= B ⇔ |A| = |B|.

Dann stimmt der Index überein mit |M|+ 1.(b) Der Index der Verschmelzungsrelation ≡A

stimmt mit der minimalen Zustandszahl überein,

WENN der Automat nach Verschmelzung minimal ist.

Minimierung Äquivalenzrelationen 49 / 108

Zurück zur Verschmelzungsrelation ≡A

Minimierung Die Verschmelzungsrelation 50 / 108

Die Verschmelzungsrelation ist eine Äquivalenzrelation

Der DFA A = (Σ, Q, δ, q0, F ) sei gegeben. Zur Erinnerung:

p ≡A q wenn f.a. Worte w ∈ Σ∗ gilt:(δ(p,w) ∈ F ⇔ δ(q,w) ∈ F

).

(a) Die Verschmelzungsrelation istI reflexiv, f.a. p ∈ Q: p ≡A p,I symmetrisch, f.a. p, q ∈ Q: wenn p ≡A q, dann q ≡A p undI transitiv, f.a. p, q, r ∈ Q: wenn p ≡A q und q ≡A r , dann p ≡A r .

Warum? Siehe Tafel.(b) Die Verschmelzungsrelation ist eine Äquivalenzrelation!

Die Zustandsmenge Q ist eine disjunkte Vereinigung der Klassen von ≡A.

Minimierung Die Verschmelzungsrelation 51 / 108

Was ist zu tun?

Sei der DFA A = (Σ, Q, δ, q0, F ) gegeben.

Wir führen die folgenden Schritte durch:1. Wir bestimmen die Äquivalenzklassen der Verschmelzungsrelation ≡A.2. Für jede Äquivalenzklasse von ≡A verschmelzen wir alle Zustände der Klasse zu

einem einzigen Zustand und fügen „entsprechende“ Übergänge ein. Den neuenAutomaten nennen wir A′ und bezeichnen ihn als

den Äquivalenzklassenautomaten von A.

Minimierung Die Verschmelzungsrelation 52 / 108

Die wichtigen Fragen

(a) Wie sollen wir die Zustandsübergänge von A′ definieren, so dass A und A′dieselbe Sprache berechnen? Können wir

I die Verschmelzungsrelation ≡A wie auch denI Äquivalenzklassenautomaten A′ effizient berechnen?

(b) Die Anzahl der Zustände von A′ stimmt mit dem Index von ≡A überein.I Wenn der Index mit der minimalen Zustandszahl übereinstimmt,

dann ist A′ minimal!

Minimierung Die Verschmelzungsrelation 53 / 108

Wir bestimmen die Verschmelzungsrelation ≡A

Minimierung Die Verschmelzungsrelation 54 / 108

Zeugen (1/2)

Sei (Σ,Q, δ, q0,F ) ein DFA.(a) Das Wort w ∈ Σ∗ ist Zeuge für die Inäquivalenz von p und q, wenn(

δ(p,w) ∈ F ∧ δ(q,w) 6∈ F)∨(δ(p,w) 6∈ F ∧ δ(q,w) ∈ F

).

Wir sagen auch, dass w die Zustände p und q trennt.(b) Es ist p 6≡A q genau dann, wenn es einen Zeugen für die Inäquivalenz von p

und q gibt, bzw wenn es ein Wort gibt, das p und q trennt.

Minimierung Die Verschmelzungsrelation 55 / 108

Zeugen (2/2)

3

1a

a2

b1

b2

bba,b

a

b

a

a

a

a

b

b

b

b

Finde einen Zeugen für die Inäquivalenz von b1 und bb.Welcher Zeuge trennt ε und a1?Gibt es Zeugen, die die Zustände a1 und a2 trennen?

Minimierung Die Verschmelzungsrelation 56 / 108

Wir bestimmen alle Paare nicht-äquivalenter Zustände

1. Markiere alle Paarmengen p, q mit p ∈ F und q 6∈ F (als nicht-äquivalent).I Es ist δ(p, ε) ∈ F und δ(q, ε) 6∈ F .I w = ε ist Zeuge für die Nicht-Äquivalenz von p und q.

2. Wenn die Paarmenge p, q bereits markiert wurde und

wenn δ(r , a) = p sowie δ(s, a) = q

für ein a ∈ Σ, dann markiere r , s.I Da p 6≡A q, gibt es einen Zeugen w mit(

δ(p,w) ∈ F und δ(q,w) 6∈ F)oder

(δ(p,w) 6∈ F und δ(q,w) ∈ F

).

I Das Wort aw trennt r und s.3. Halte, wenn keine neuen Paarmengen r , s markiert werden können.

I Unser Verfahren behauptet, dass p 6≡A q genau dann gilt,wenn die Paarmenge p, q markiert wurde.

Stimmt die Behauptung: Finden wir alle Paare nicht-äquivalenter Zustände?

Minimierung Die Verschmelzungsrelation 57 / 108

Unser Verfahren funktioniert!

Sei P die Menge aller Paare r , s nicht-äquivalenter Zustände, die abervon unserem Verfahren nicht gefunden werden. Zeige, dass P leer ist!

Angenommen, P ist nicht-leer.0. p, q ∈ P habe unter allen Paaren in P einen kürzesten Zeugen w .1. Wenn w = ε, dann ist

I(δ(p, ε) ∈ F und δ(q, ε) 6∈ F

)oder

(δ(p, ε) 6∈ F und δ(q, ε) ∈ F

),

I bzw.(p ∈ F und q 6∈ F

)oder

(p 6∈ F und q ∈ F

).

Aber dann haben wir p, q im Schritt 1. markiert. 2. Wenn w = au für den Buchstaben a ∈ Σ, dann ist

I(δ(p, au) ∈ F und δ(q, au) 6∈ F

)oder

(δ(p, au) 6∈ F und δ(q, au) ∈ F

),

I bzw.(δ(δ(p, a), u) ∈ F und δ(δ(q, a), u) 6∈ F

)oder(

δ(δ(p, a), u) 6∈ F und δ(δ(q, a), u) ∈ F).

Aber dann ist δ(p, a) 6≡A δ(q, a) mit dem kürzeren Zeugen u:I Nach Annahme haben wir δ(p, a), δ(q, a) z.B. in einer Menge Mi markiertI und werden darauf folgend p, q in Mi+1 markieren.

Minimierung Die Verschmelzungsrelation 58 / 108

Der Automat nach allen Verschmelzungen

Wie sieht der Automat nach dem Verschmelzen aller äquivalenten Zustände aus?

- Für Zustand p ∈ Q bezeichnet

[p]A :=q ∈ Q | p ≡A q

die Äquivalenzklasse von p.

- Der Äquivalenzklassenautomat A′ für A besitztI die Zustandsmenge

Q′ :=

[p]A | p ∈ Q,

I den Anfangszustand q′0 :=[q0]A,I die Menge F ′ :=

[p]A | p ∈ F

der akzeptierenden Zustände und

I das Programm δ′ mitδ′([p]A, a) := [ δ(p, a) ]A

für alle q ∈ Q, a ∈ Σ.

Minimierung Die Verschmelzungsrelation 59 / 108

Der Minimierungsalgorithmus

Minimierung Die Verschmelzungsrelation 60 / 108

Berechnung von ≡A und A′

Eingabe: Ein DFA A = (Q,Σ, δ, q0,F ).

Schritt 1: Entferne aus A alle überflüssigen Zustände, d.h. alle Zustände,die nicht von q0 aus erreichbar sind.

Schritt 2: Bestimme alle Paarmengen p, q mit p, q ∈ Q und p 6≡A q:1. Markiere alle Paarmengen in M0 :=

p, q : p ∈ F , q ∈ Q \ F

; Setze i := 0

2. Wiederhole3. Für alle Paarmengen p, q mit p 6= q und für alle x ∈ Σ tue folgendes:4. Markiere p, q, falls δ(p, x), δ(q, x) ∈ Mi .5. Sei Mi+1 die Menge aller hierbei neu markierten Paarmengen.6. i := i + 17. bis Mi = ∅8. Ausgabe: M := M0 ∪ · · · ∪Mi−1.

Schritt 3: Konstruiere A′ := (Q′,Σ, δ′, q′0,F ′):Q′ :=

[q]A : q ∈ Q

, wobei [q]A =

p ∈ Q : p, q 6∈ M

q′0 := [q0]A, F ′ :=

[q]A : q ∈ F

δ′ : Q′ × Σ→ Q′ mit δ′

([q]A, x

):= [δ(q, x)]A für alle q ∈ Q und x ∈ Σ.

Minimierung Die Verschmelzungsrelation 61 / 108

Ist der Algorithmus korrekt und effizient?

In jeder Iteration in Schritt 2 wird mindestens eine neue Paarmenge markiert:Es gibt also höchstens |Q|2 Iterationen und der Algorithmus ist effizient.

Die wichtigen Fragen:1. Sind A und der Äquivalenzklassenautomat A′ äquivalent, d.h.

berechnet A′ dieselbe Sprache wie A? X

2. Ist A′ minimal?

Aber zuerst rechnen wir einige Beispiele durch.

Minimierung Die Verschmelzungsrelation 62 / 108

Ein erstes BeispielDer DFA A mit Zustandsdiagramm

0 1 2 3 4 5

1

01

0

01 11 0

0

akzeptiert die Binärdarstellungen aller durch 6 teilbaren Zahlen. D.h.:

L(A) =w ∈ 0, 1∗ :

|w|∑i=1

wi 2|w|−i ≡ 0 (mod 6).

Aufgabe: Bestimme den Äquivalenzklassenautomaten A′.

– siehe Tafel –Minimierung Beispiele 63 / 108

Zustandsminimierung: Die Mengen M0,M1,M2

3

1a

a2

b1

b2

bba,b

a

b

a

a

a

a

b

b

b

b

a1 M2a2 M2b1 M1 M1 M1b2 M1 M1 M1bb M0 M0 M0 M0 M0

ε a1 a2 b1 b2

M3 = ∅.

Minimierung Beispiele 64 / 108

Zustandsminimierung: Der Äquivalenzklassenautomat A′

M3 = ∅ ⇒ bb ist die Klasse des einzigen akzeptierenden Zustands, ε ist dieKlasse des Startzustands, a1, a2 und b1, b2, sind die restlichen Klassen.

3

1a

a2

b1

b2

bba,b

a

b

a

a

a

a

b

b

b

b

Der Äquivalenzklassenautomat:

n n n n- -

- ? ?

ε a b bba,b b

a a,bba

Genügt es, wenn wir nur Zustände mit identischen Nachfolgezuständenverschmelzen? NEIN!

Minimierung Beispiele 65 / 108

Zustandsminimierung: Die Tabelle

Wie haben wir die Tabelle gefüllt?

Angenommen, wir haben die Mengen M0, . . . ,Mi bestimmt und die„entsprechenden“ Positionen in der Tabelle markiert.1. Wir haben nacheinander alle unmarkierten Einträge der Tabelle inspiziert.2. Angenommen, die Position in Zeile p und Spalte q ist unmarkiert. Markiere

diese Position mit Mi+1, wenn es einen Buchstaben x ∈ Σ gibt, so dassI die Position in Zeile δ(p, x) und Spalte δ(q, x)I bzw. in Spalte δ(p, x) und Zeile δ(q, x)

markiert ist.

Minimierung Beispiele 66 / 108

Was ist Sache?

1. Der ursprüngliche Automat A = (Q,Σ, δ, q0,F ) und seinÄquivalenzklassenautomat A′ sind äquivalent.

2. Wir können A′ effizient berechnen.? Aber hat A′ unter allen mit A äquivalenten DFAs die kleinste Zustandszahl?

Die Nerode-Relation für die Sprache L = L(A) hat die Antwort.

Minimierung Die Nerode-Relation 67 / 108

Die Nerode-Relation

Sei A = (Σ,Q, δ, q0,F ) ein DFA. Wenn δ(q0, u) = δ(q0, v)„ dann

f.a. w ∈ Σ∗ : (uw ∈ L(A)⇔ vw ∈ L(A)).

L sei eine Sprache über der endlichen Menge Σ, d.h. es gilt L ⊆ Σ∗.(a) Die Nerode-Relation ≡L für L ist eine 2-stellige Relation über Σ∗.

Für alle Worte u, v ∈ Σ∗ definiere

u ≡L v :⇔ f.a. w ∈ Σ∗ gilt:(uw ∈ L⇔ vw ∈ L

).

(b) Wir sagen, dass das Wort w ∈ Σ∗ die Worte u, v ∈ Σ∗ trennt,bzw. dass w ein Zeuge für die Inäquivalenz von u und v ist, wenn(

uw ∈ L ∧ vw 6∈ L)∨(uw 6∈ L ∧ vw ∈ L

).

(c) Index(L) ist die Anzahl der Äquivalenzklassen von ≡L.

Minimierung Die Nerode-Relation 68 / 108

Die Nerode-Relation ist eine Äquivalenzrelation

Warum? Die Nerode-Relation ≡L ist1. reflexiv, denn u ≡L u gilt f.a. u ∈ Σ∗,2. symmetrisch, denn aus u ≡L v folgt v ≡L u f.a. u, v ∈ Σ∗,3. transitiv, denn aus u ≡L v , v ≡L w folgt u ≡L w f.a. u, v ,w ∈ Σ∗.Beweis: Siehe Tafel.

Der absolute Hammer:

Für eine reguläre Sprache L stimmt Index(L),die Anzahl der Äquivalenzklassen von ≡L,

mit der minimalen Zustandszahl für DFAs A mit L(A) = L überein!

Minimierung Die Nerode-Relation 69 / 108

Die minimale Zustandszahl > Index(L)

Der DFA A = (Q,Σ, δ, q0,F ) akzeptiere die Sprache L, es gelte also L(A) = L.

Angenommen, es ist

δ(q0, u) = δ(q0, v).

1. Dann ist δ(q0, uw) = δ(q0, vw) für alle Worte w ∈ Σ∗ und A akzeptiert dasWort uw genau dann, wenn A das Wort vw akzeptiert.

2. Aber L(A) = L und uw ∈ L ⇔ vw ∈ L folgt für alle Worte w ∈ Σ∗ ⇒

u ≡L v .

(a) Alle Worte, die auf denselben Zustand von A führen, sind äquivalent bzgl. ≡L.(b) Jeder DFA A mit L = L(A) hat mindestens Index(L) Zustände.

Minimierung Die Nerode-Relation 70 / 108

Die minimale Zustandszahl 6 Index(L)

Der DFA A = (Q,Σ, δ, q0,F ) akzeptiere die Sprache L, es gelte also L(A) = L.A′ = (Q′,Σ, δ′, q′0,F ′) sei sein Äquivalenzklassenautomat.

Angenommen, Worte u, v ∈ Σ∗ führen in A′ zu verschiedenen Zuständen.1. Für A sei p = δ(q0, u) und q = δ(q0, v).2. Es folgt p 6≡A q und es gibt einen Zeugen w ∈ Σ∗ für die Nicht-Äquivalenz.

I Also:(δ(p,w) ∈ F ∧ δ(q,w) 6∈ F

)∨(δ(p,w) 6∈ F ∧ δ(q,w) ∈ F

), bzw.

I(δ(q0, uw) ∈ F ∧ δ(q0, vw) 6∈ F

)∨(δ(q0, uw) 6∈ F ∧ δ(q0, vw) ∈ F

), bzw.

I

(uw ∈ L ∧ vw 6∈ L

)∨(uw 6∈ L ∧ vw ∈ L

).

3. Wenn u und v in A′ zu verschiedenen Zuständen führen, dann folgt u 6≡L v .4. Wenn u ≡L v , dann führen u und v in A′ zum selben Zustand.

Die Zustandszahl von A′ stimmt überein mit Index(L(A)):Der Äquivalenzklassenautomat A′ ist ein minimaler DFA für L(A).

Minimierung Die Nerode-Relation 71 / 108

Die Nerode-Relation: Beispiele

Zeige in jedem Fall, dass Index(L) möglichst groß ist:

1. L = w ∈ 0, 1∗ : w hat gerade viele Einsen,2. L = a, b∗ab,3. L die Menge aller Binärdarstellungen für durch 6 teilbare Zahlen,4. Lu = w ∈ Σ∗ : u ist ein Teilwort von w für ein Wort u ∈ Σ∗.

Minimierung Die Nerode-Relation 72 / 108

Reguläre Sprachen

Minimierung Die Nerode-Relation 73 / 108

Reguläre Sprachen

Eine Teilmenge L ⊆ Σ∗ heißt eine reguläre Sprache, wenn es einen DFA A gibtmit

L = L(A).

(a) Gibt es Teilmengen von Σ∗, die keine regulären Sprachen sind?(b) Ist L = anbn : n ∈ N eine reguläre Sprache?(c) Sei Σ ein beliebiges Alphabet und sei w ∈ Σ∗ ein Wort über Σ. Ist

L = u ∈ Σ∗ : w ist ein Teilwort von u

eine reguläre Sprache?

Minimierung Die Nerode-Relation 74 / 108

Der Satz von Nerode

Minimierung Die Nerode-Relation 75 / 108

Wann ist eine Sprache regulär?

Satz von NerodeEine Teilmenge L ⊆ Σ∗ ist regulär ⇔ Index(L) ist endlich.

⇒ L ⊆ Σ∗ sei regulär. Dann gibt es einen DFA A mit L = L(A).I A hat mindestens Index(L) Zustände.I Also ist Index(L) endlich.

⇐ Index(L) sei endlich.I Es gibt stets einen (möglicherweise unendlichen) Automaten A mit L = L(A).I Der Äquivalenzklassenautomat A′ ist minimal

und hat nach Annahme genau Index(L) viele Zustände.I Es ist L = L(A′) für den DFA A′ ⇒ L ist regulär.

Minimierung Die Nerode-Relation 76 / 108

L = anbn : n ∈ N ist nicht regulär

Bestimme unendlich viele Worte uk ∈ a, b∗, so dass

uk 6≡L u`

für alle k 6= ` gilt.

Setze ui := ai . Für k 6= ` gilt uk 6≡L u`, denn

ukbk ∈ L, aber u`bk 6∈ L.

Index(L) =∞ und L ist nicht regulär.

DFAs können nicht (unbeschränkt) zählen.

Minimierung Die Nerode-Relation 77 / 108

L = ww : w ∈ a, b∗ ist nicht regulär

Wir bestimmen unendlich viele Worte uk ∈ a, b∗, so dass

uk 6≡L u`

für alle k 6= ` gilt.

Setze ui := aib. Für k 6= ` gilt uk 6≡L u`, denn

ukakb ∈ L, aber u`akb 6∈ L.

Index(L) =∞ und L ist nicht regulär.

DFAs können sich nur beschränkt viele Dinge merken.

Minimierung Die Nerode-Relation 78 / 108

Weitere nicht-reguläre Sprachen

Keine der folgenden Sprachen ist regulär.

L1 = anbm : n,m ∈ N, n 6 m :I DFAs können nicht vergleichen,

L2 = anbmcn+m : n,m ∈ N :I DFAs können nicht addieren,

L3 = an2: n ∈ N :

I DFAs können nicht quadrieren,

L4 = w ∈ a, b∗ : w ist ein Palindrom :I Endliche Automaten haben ein nur beschränkt großes Gedächtnis.

Zeige, dass der Index unendlich ist. Das gelingt häufig sogar mit unendlich vielenWorten u1, u2, . . . und v1, v2, . . . mit den Eigenschaften

uivi ∈ L undujvi 6∈ L für i 6= j .

Minimierung Die Nerode-Relation 79 / 108

NFAs

Nichtdeterministische endliche Automaten 80 / 108

NFAs: DFAs, die raten dürfenEin „NFA“ akzeptiert ein Eingabewort w ∈ a, b∗ genau dann,wenn es im Automatengraphen mindestens einen Weg gibt,

- der im Startzustand beginnt,

- dessen Kanten mit w beschriftet sind,

- und der in einem akzeptierenden Zustand endet.

b

a

a

b

a

Der „NFA“ akzeptiertL = w ∈ a, b∗ : der vorletzte Buchstabe von w ist ein a .

Nichtdeterministische endliche Automaten 81 / 108

NFAs: Die formale Definition

Ein nichtdeterministischer endlicher Automat (kurz: NFA)

A = (Σ,Q, δ, q0,F )

besteht aus:einer endlichen Menge Σ, dem Eingabealphabet,einer endlichen Menge Q, der Zustandsmenge,einer Funktion δ : Q × Σ→ P(Q), der Übergangsfunktion,

- die jedem Zustand q ∈ Q und jedem Symbol a ∈ Σ eine Mengeδ(q, a) von möglichen Nachfolgezuständen zuordnet.

- Möglicherweise ist δ(q, a) = ∅: Dann „stürzt“ der Automat ab,wenn er im Zustand q ist und das Symbol a liest.

dem Startzustand q0 ∈ Q undeiner Menge F ⊆ Q von Endzuständen bzw. akzeptierenden Zuständen.

Nichtdeterministische endliche Automaten NFAs: Die formale Definition 82 / 108

Der Automatengraph von NFAs

Es sei- q ∈ Q ein Zustand,- a ∈ Σ ein Eingabesymbol und- q′ ∈ δ(q, a) ein „möglicher Nachfolgezustand“.

Dann gibt es im Automatengraphen einen mit dem Symbol a beschrifteten Pfeilvon Knoten q zu Knoten q′ , d.h.

q q′a .

Nichtdeterministische endliche Automaten NFAs: Die formale Definition 83 / 108

Stichwortsuche mit NFAs (1/2)

Gegeben: Ein Stichwort, z.B. „modell“Eingabe: Ein Text, der aus den Buchstaben „a“ bis „z“ sowie

dem Leerzeichen „ “ bestehtFrage: Kommt das Stichwort „modell“ irgendwo im Eingabetext vor?

Der Automatengraph eines NFAs, der dies bewerkstelligt:

a, . . . , z ,

m o d e l l

a, . . . , z ,

Nichtdeterministische endliche Automaten NFAs: Die formale Definition 84 / 108

Stichwortsuche mit NFAs (2/2)

Auf ähnliche Art können auch Varianten dieser Stichwortsuche behandelt werden,zum Beispiel die Frage

Kommt mindestens eins der Stichworte „modell“ bzw. „logik“ imEingabetext vor?

Graphische Darstellung eines NFAs, der dies bewerkstelligt:

a, . . . , z ,

mo d e l l

a, . . . , z ,

lo g i k

a, . . . , z ,

Nichtdeterministische endliche Automaten NFAs: Die formale Definition 85 / 108

Die von einem NFA akzeptierte Sprache

Nichtdeterministische endliche Automaten Die von einem NFA akzeptierte Sprache 86 / 108

Wann akzeptiert ein NFA?

Sei A = (Σ,Q, δ, q0,F ) ein NFA.(a) Sei n ∈ N und sei w = a1 · · · an ein Eingabewort der Länge n.

Das Wort w wird ganau dann vom NFA A akzeptiert, wenn es imAutomatengraphen von A einen im Startzustand

q0

beginnenden Weg der Länge n gibt, dessen Kanten mit den Symbolena1 . . . an beschriftet sind und der in einem akzeptierenden Zustand endet.

(b) Die von A akzeptierte Sprache L(A) ist

L(A) := w ∈ Σ∗ : A akzeptiert w .

Das ist keine „wirklich“ präzise Definition,denn der Automatengraph soll doch nur unsere Intuition unterstützen.

Nichtdeterministische endliche Automaten Die von einem NFA akzeptierte Sprache 87 / 108

Die erweiterte Übergangsfunktion

Nichtdeterministische endliche Automaten Die erweiterte Übergangsfunktion 88 / 108

δ(q,w) := die MENGE aller möglichen Zuständenach Lesen von w im „Startzustand“ q

Sei A := (Σ,Q, δ, q0,F ) ein NFA. Die Funktion

δ : Q × Σ∗ → P(Q)

ist rekursiv wie folgt definiert:Rekursionsanfang: F.a. q ∈ Q ist δ(q, ε) := q.Rekursionsschritt: F.a. q ∈ Q, w ∈ Σ∗ und a ∈ Σ ist

δ(q,wa) :=⋃

q′∈δ(q,w)

δ(q′, a).

Ein möglicher Zustand q′′ wird nach Lesen von wa genau dann erreicht, wenn nachLesen von w (im Zustand q) ein Zustand q′ erreicht wird und q′′ ∈ δ(q′, a) gilt:

q w→ q′ a→ q′′.

Nichtdeterministische endliche Automaten Die erweiterte Übergangsfunktion 89 / 108

Wann genau akzeptiert denn nun ein NFA?

Der NFA A = (Σ,Q, δ, q0,F ) akzeptiert ein Wort w genau dann, wenn:

δ(q0,w) ∩ F 6= ∅.

Somit istL(A) = w ∈ Σ∗ : δ(q0,w) ∩ F 6= ∅ .

Nichtdeterministische endliche Automaten Die erweiterte Übergangsfunktion 90 / 108

Äquivalenz von NFAs und DFAs

Äquivalenz von NFAs und DFAs 91 / 108

Können NFAs Sprachen akzeptieren,die DFAs nicht akzeptieren können?

NEIN!

Für jeden NFA A = (Σ,Q, δ, q0,F ) gibt es einen DFA A′ = (Σ,Q′, δ′, q′0,F ′) mit

L(A′) = L(A).

D.h.: NFAs und DFAs akzeptieren genau dieselben Sprachen.

D.h. wir können Stichwortsuche auch mit DFAs durchführen?Natürlich und sogar mit wenigen Zuständen.

Aber im Allgemeinen sind die DFAs doch bestimmt sehr viel größer?!?

Äquivalenz von NFAs und DFAs 92 / 108

Die Potenzmengenkonstruktion (1/2)

Sei A = (Σ,Q, δ, q0,F ) der gegebene NFA.

Idee: Wir konstruieren einen DFA A′ = (Σ,Q′, δ′, q′0,F ′), der in seinem aktuellenZustand q′ ∈ Q′

die Menge aller Zustände abspeichert, in denen der Automat Ain der aktuellen Situation sein könnte.

Wir definieren die Komponenten von A′ daher wie folgt:Eingabealphabet Σ,Zustandsmenge Q′ := P(Q),Startzustand q′0 := q0,Endzustandsmenge F ′ := X ∈ Q′ : X ∩ F 6= ∅ ,Übergangsfunktion δ′ : Q′ × Σ→ Q′, wobei für alle X ∈ Q′ = P(Q) und allea ∈ Σ gilt:

δ′(X , a) :=⋃

q∈Xδ(q, a).

Äquivalenz von NFAs und DFAs 93 / 108

Die Potenzmengenkonstruktion (2/2)

Und wie zeigt man, dass A und A′ dieselbe Sprache akzeptieren?

Zeige, dassδ′(q0,w) = δ(q0,w)

für jedes Wort w ∈ Σ∗ gilt.

Und wie, bitte schön, sollen wir das zeigen?Wir haben die erweiterten Übergangsfunktionen δ und δ′ rekursiv definiert.Dann werden wir wohl eine vollständige Induktion nach n = |w | ausführen!

Äquivalenz von NFAs und DFAs 94 / 108

Die Potenzmengenkonstruktion: Ein Beispiel (1/2)

Wie führt man die Potenzmengenkonstruktion für den NFA

b

a

a

b

a

aus? Bezeichne die Zustände, von links nach rechts gelesen, mit q0, q1 und q2.

Wichtig:1. Beginne mit allen möglichen Nachfolgezuständen des Startzustands

q′0 := q0.2. Definiere die Übergangsfunktion von A′ nur für solche Zustände ausP(q0, q1, q2), die vom Startzustand q′0 aus erreicht werden können.

Äquivalenz von NFAs und DFAs 95 / 108

Die Potenzmengenkonstruktion: Ein Beispiel (2/2)

q0 q0, q1

q0, q1, q2

q0, q2

b

a

a

a

b

a

b

b

Äquivalenz von NFAs und DFAs 96 / 108

Reguläre Ausdrücke

Reguläre Ausdrücke 97 / 108

Reguläre „Muster“

Sei Σ ein Alphabet.1 Die Menge aller Worte über Σ haben wir mit

Σ∗

beschrieben.2 Sei u ein Wort über Σ. Dann wird die Menge aller Worte über Σ, die u als

Teilwort besitzen, beschrieben durch

Σ∗ · u · Σ∗.

3 Die Menge aller Worte über Σ, deren vorletzter Buchstabe ein a ist, wirdbeschrieben durch:

Σ∗ · a · Σ

Reguläre Ausdrücke 98 / 108

Reguläre Ausdrücke: Eine rekursive Definition der Syntax

Sei Σ ein endliches Alphabet.

Die Menge aller regulären Ausdrücke über Σ ist rekursiv wie folgt definiert:

Basisregeln:∅ ist ein regulärer Ausdruck über Σ („leere Menge“).ε ist ein regulärer Ausdruck über Σ („leeres Wort“).Für jedes a ∈ Σ gilt: a ist ein regulärer Ausdruck über Σ.

Rekursive Regeln:Ist R ein regulärer Ausdruck über Σ,so ist auch R∗ ein regulärer Ausdruck über Σ („Kleene-Stern“).Sind R und S reguläre Ausdrücke über Σ, so ist auch

I (R · S) ein regulärer Ausdruck über Σ („Konkatenation“).I (R | S) ein regulärer Ausdruck über Σ („Vereinigung“).

Reguläre Ausdrücke 99 / 108

Reguläre Ausdrücke: Syntax und Semantik

Wir haben gerade formal definiert,

„was ein regulärer Ausdruck R ist“

Aber was„bedeutet“ R?

R sollte für eine Sprache stehen!

Reguläre Ausdrücke 100 / 108

Reguläre Ausdrücke: Eine rekursive Definition der SemantikSei Σ ein endliches Alphabet.

Jeder reguläre Ausdruck R über Σ beschreibt(oder definiert) eine Sprache L(R) ⊆ Σ∗, die induktiv wie folgt definiert ist:

Basisregeln:L(∅) := ∅.L(ε) := ε.Für jedes a ∈ Σ gilt: L(a) := a.

Rekursive Regeln:Ist R ein regulärer Ausdruck über Σ, so ist

L(R∗) := ε ∪ w1 · · ·wk : k ∈ N>0, w1 ∈ L(R), . . . ,wk ∈ L(R) .

Sind R und S reguläre Ausdrücke über Σ, so istI L(

(R · S))

:= wu : w ∈ L(R), u ∈ L(S).I L(

(R | S))

:= L(R) ∪ L(S).

Reguläre Ausdrücke 101 / 108

Reguläre Ausdrücke: Vereinfachte Schreibweise

Zur vereinfachten Schreibweise und besseren Lesbarkeit regulärer Ausdrücke:

Den „Punkt“ bei der Konkatenation

(R · S)

darf man weglassen.Bei Ketten gleichartiger Operatoren verzichten wir auf Klammern:

(R1 | R2 | R3 | R4) statt((

(R1 | R2) | R3)| R4

)und

(R1R2R3R4) statt((

(R1R2)R3)R4

).

„Präzedenzregeln“: ∗ bindet stärker als ·· bindet stärker als |

Äußere Klammern, die einen regulären Ausdruck umschließen, dürfenweggelassen werden.Zur besseren Lesbarkeit dürfen zusätzliche Klammern benutzt werden.

Reguläre Ausdrücke 102 / 108

Reguläre Ausdrücke: Beispiele (1/3)

(a) a | bc∗ ist eine verkürzte Schreibweise für (a | (b · c∗)).Die von diesem regulären Ausdruck beschriebene Sprache L = L(a | bc∗) ist

L = a ∪ w ∈ a, b, c∗ : der erste Buchstabe von w ist ein b undalle weiteren Buchstaben von w sind c’s.

(b) L((a | b)∗) = a, b∗.(c) Die Menge aller Worte über a, b, c, in denen abb als Teilwort vorkommt,

wird durch den folgenden regulären Ausdruck beschrieben:

(a | b | c)∗abb (a | b | c)∗.

(d) Die Menge aller Worte über a, b, c, deren letzter oder vorletzterBuchstabe ein a ist, wird durch den folgenden regulären Ausdruck beschrieben:

(a | b | c)∗a (ε | a | b | c).

Reguläre Ausdrücke 103 / 108

Reguläre Ausdrücke: Beispiele (2/3)

Wir wollen einen regulären Ausdruck angeben, der alle Telefonnummern der Form

Vorwahl/Nummer

beschreibt, wobei1 Vorwahl und Nummer nicht-leere Ziffernfolgen sind,2 Vorwahl mit genau einer Null beginnt und Nummer nicht mit einer Null

beginnt.

Der Ausdruck

0 (1|2| · · · |9) (0|1| · · · |9)∗ / (1|2| · · · 9) (0|1| · · · 9)∗

definiert die gewünschte Sprache.

Reguläre Ausdrücke 104 / 108

Reguläre Ausdrücke: Beispiele (3/3)

Der Ausdruck:

R :=(ε | 069/

)798

(ε | -

) (0 | (1|2| · · · |9) (0|1| · · · |9)∗

)definiert eine Sprache. Welche der folgenden Worte gehören zu R?

? 069/798-0? 7980? 069/798-028551.

Reguläre Ausdrücke 105 / 108

Reguläre Sprachen

Reguläre Sprachen 106 / 108

Reguläre Sprachen und reguläre Ausdrcke

Jeder reguläre Ausdruck R definiert eine reguläre Sprache.

Beweis durch Induktion über den Aufbau von R: Siehe Tafel.

Die Klasse der regulären Sprache ist ein fundamentales Konzept mitverschiedensten Sichtweisen, denn

DFAs, NFAs oder reguläre Ausdrücke

definieren dieselben Sprachen!

Dieses Ergebnis wird in der Veranstaltung „Theoretische Informatik 2“ gezeigt.Insbesondere besitzt also jede reguläre Sprache einen regulären Ausdruck!

Reguläre Sprachen 107 / 108

Reguläre Sprachen: Ein Ausblick

In der Veranstaltung „Theoretische Informatik 2“ wird unter Anderem gezeigt:

(a) dass auch „Zweiweg-Automaten“ und „reguläre Grammatiken“ die Klasseder regulären Sprachen definieren,

(b) und dass – unter bestimmten Umständen – auch würfelnde Automatengenau die Klasse der regulären Sprachen beschreiben,

(c) dass viele Entscheidungsfragen wieI akzeptieren zwei DFAs dieselbe Sprache?I akzeptiert ein NFA mindestens ein Wort?

effizient beantwortet werden können, andere hingegen, wie etwaI akzeptieren zwei NFAs dieselbe Sprache?I akzeptiert ein NFA alle Worte eines Alphabets?

viel zu schwierig sind!

Ein Ausblick 108 / 108