Regul are Sprachen - LMU

15
Formale Sprachen und Komplexit¨ at Sommersemester 2019 Regul¨ are Sprachen: Formalismen Prof. Dr. David Sabel LFE Theoretische Informatik Letzte ¨ Anderung der Folien: 4. Juni 2019 Regul¨ are Sprachen Wiederholung: Eine Sprache heißt regul¨ ar (bzw. vom Typ 3), wenn sie von einer Typ 3-Grammatik erzeugt wird. Eine Grammatik G =(V, Σ,P,S ) ist vom Typ 3 (bzw. regul¨ ar), wenn alle Produktionen von der Form A a oder A aB mit A, B V und a Σ sind. TCS | 02 Regul¨ are Sprachen (I) | SoSe 2019 2/58 DFAs NFAs NFAs+ε Regul¨ are Ausdr¨ ucke Zusammenf. Inhalts¨ ubersicht Deterministische endliche Automaten Nichtdeterministische endliche Automaten Regul¨ are Ausdr¨ ucke ¨ Aquivalenz der Formalismen TCS | 02 Regul¨ are Sprachen (I) | SoSe 2019 3/58 DFAs NFAs NFAs+ε Regul¨ are Ausdr¨ ucke Zusammenf. Deterministische endliche Automaten Die informelle Kurzfassung: Endliche Automaten lesen Zeichenweise ein Eingabewort Wechseln dabei den Zustand (eindeutig) Nur endlich viele Zust¨ ande Starten im Startzustand Nach Lesen der Eingabe: Akzeptieren oder Verwerfen Akzeptieren = in einem Endzustand Verwerfen = in keinem Endzustand Akzeptierte Sprache = alle Worte, f¨ ur die der Automat akzeptiert TCS | 02 Regul¨ are Sprachen (I) | SoSe 2019 4/58 DFAs NFAs NFAs+ε Regul¨ are Ausdr¨ ucke Zusammenf.

Transcript of Regul are Sprachen - LMU

Page 1: Regul are Sprachen - LMU

Formale Sprachen und KomplexitatSommersemester 2019

Regulare Sprachen: Formalismen

Prof. Dr. David Sabel

LFE Theoretische Informatik

Letzte Anderung der Folien: 4. Juni 2019

Regulare Sprachen

Wiederholung:

Eine Sprache heißt regular (bzw. vom Typ 3), wenn sie voneiner Typ 3-Grammatik erzeugt wird.

Eine Grammatik G = (V,Σ, P, S) ist vom Typ 3(bzw. regular), wenn alle Produktionen von der Form

A→ a oder A→ aB

mit A,B ∈ V und a ∈ Σ sind.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 2/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Inhaltsubersicht

Deterministische endliche Automaten

Nichtdeterministische endliche Automaten

Regulare Ausdrucke

Aquivalenz der Formalismen

TCS | 02 Regulare Sprachen (I) | SoSe 2019 3/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Deterministische endliche Automaten

Die informelle Kurzfassung:

Endliche Automaten lesen Zeichenweise ein Eingabewort

Wechseln dabei den Zustand (eindeutig)

Nur endlich viele Zustande

Starten im Startzustand

Nach Lesen der Eingabe: Akzeptieren oder Verwerfen

Akzeptieren = in einem Endzustand

Verwerfen = in keinem Endzustand

Akzeptierte Sprache = alle Worte, fur die der Automatakzeptiert

TCS | 02 Regulare Sprachen (I) | SoSe 2019 4/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 2: Regul are Sprachen - LMU

DFA: Definition

Definition (Deterministischer Endlicher Automat, DFA)

Ein deterministischer endlicher Automat (determinististic finiteautomaton, DFA) ist ein 5-Tupel M = (Z,Σ, δ, z0, E) wobei

Z ist eine endliche Menge von Zustanden,

Σ ist das (endliche) Eingabealphabet mit (Z ∩ Σ) = ∅,z0 ∈ Z ist der Startzustand,

E ⊆ Z ist die Menge der Endzustande (oder auchakzeptierende Zustande) und

δ : Z × Σ→ Z ist die Zustandsuberfuhrungsfunktion (odernur Uberfuhrungsfunktion).

TCS | 02 Regulare Sprachen (I) | SoSe 2019 5/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Zustandsgraph eines DFA

Fur DFA M = (Z,Σ, δ, z0, E)

Fur z ∈ Z gibt es Knoten z

Startzustand z0 ∈ Z: eingehender Pfeil z0 ,

Endzustande z ∈ E: doppelte Kreise z ,

Ubergange δ(zi, a) = zj als Kante zi zja

und statt zi zj

a

b

zeichnen wir zi zja, b

.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 6/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

BeispielDFA M = ({z0, z1, z2}, {a, b}, δ, z0, {z2}) mit

δ(z0, a) = z1 δ(z1, b) = z0δ(z0, b) = z0 δ(z2, a) = z2δ(z1, a) = z2 δ(z2, b) = z2

z0z0z0 z1z1 z2z2z2

bb

aaaa

bb

a, ba, b

Abarbeitung von abbaaa:

Starte in z0

Lese a und wechsle in z1

Lese b und wechsle in z0

Lese b und wechsle in z0

Lese a und wechsle in z1

Lese a und wechsle in z2

Lese a und wechsle in z2

Akzeptiere

Abarbeitung von bbab:

Starte in z0

Lese b und wechsle in z0

Lese b und wechsle in z0

Lese a und wechsle in z1

Lese b und wechsle in z0

Verwerfe

TCS | 02 Regulare Sprachen (I) | SoSe 2019 7/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Akzeptierte Spraches eines DFA

Definition (Akzeptierte Sprache eines DFA)

Sei M = (Z,Σ, δ, z0, E) ein DFA.Wir definieren die Funktion δ : Z × Σ∗ → Z durch

δ(z, ε) := z und δ(z, aw) := δ(δ(z, a), w)

Die von M akzeptierte Sprache ist

L(M) := {w ∈ Σ∗ | δ(z0, w) ∈ E}.

δ wendet δ solange an, bis das Eingabewort abgearbeitet ist

TCS | 02 Regulare Sprachen (I) | SoSe 2019 8/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 3: Regul are Sprachen - LMU

Beispiel

DFA M = ({z0, z1, z2}, {a, b}, δ, z0, {z2}) mit

δ(z0, a) = z1 δ(z1, b) = z0δ(z0, b) = z0 δ(z2, a) = z2δ(z1, a) = z2 δ(z2, b) = z2

z0 z1 z2

b

aa

b

a, b

L(M) = {uaav | uv ∈ {a, b}∗}

TCS | 02 Regulare Sprachen (I) | SoSe 2019 9/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiel: DFA konstruieren

Konstruiere DFA uber Σ = {a, b} der alle Worte akzeptiert, die mitabaa beginnen und mit bab enden:

z0 z1 z2 z3 z4

z5

z6 z7 z8

a, b

a b a a

b a b b

b a b

a a

ba b

TCS | 02 Regulare Sprachen (I) | SoSe 2019 10/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiel: DFA konstruieren (2)

Zusatzlich die Worter a und ab akzeptieren

z0 z1 z2 z3 z4

z5

z6 z7 z8

a, b

a b a a

b a b b

b a b

a a

ba b

TCS | 02 Regulare Sprachen (I) | SoSe 2019 11/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Lauf

Definition

Sei M = (Z,Σ, δ, z0, E) ein DFA und w ∈ Σ∗ mit |w| = n.Die Folge von Zustanden q0, . . . , qn mit q0 = z0 undqi = δ(qi−1, w[i]) bezeichnet man als Lauf von M fur Wort w.

Fur eine solchen Lauf schreiben wir auch:

q0w[1]−−→ q1

w[2]−−→ · · · w[n−1]−−−−→ qn−1w[n]−−→ qn

TCS | 02 Regulare Sprachen (I) | SoSe 2019 12/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 4: Regul are Sprachen - LMU

DFAs akzeptieren regulare Sprachen

Theorem 4.2.1

Sei M = (Z,Σ, δ, z0, E) ein DFA. Dann ist L(M) regular.

Beweis: Sei G = (V,Σ, P, S) die regulare Grammatik mit

V = Z, S = z0, P = {zi → azj | δ(zi, a) = zj}∪ {zi → a | δ(zi, a) = zj ∧ zj ∈ E}∪ {z0 → ε | falls z0 ∈ E}

Offensichtlich ε ∈ L(M) ⇐⇒ ε ∈ L(G). Ansonsten:w = a1 · · · am ∈ L(M)

g.d.w. es gibt z1, . . . , zm ∈ Z mit δ(zi−1, ai) = zi und zm ∈ E.g.d.w. z0 ⇒G a1z1, fur 1 ≤ i < m: a1 · · · ai−1zi−1 ⇒G a1 · · · aizi und

a1 · · · am−1zm−1 ⇒G a1 · · · am, d.h. z0 ⇒∗G a1 · · · amg.d.w. w = a1 · · · am ∈ L(G)

Daher gilt L(M) = L(G) und somit ist L(M) regular.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 13/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiel: Konstruktion Typ 3-Grammatik aus DFA

DFA M = ({z0, z1, z2}, {a, b}, δ, z0, {z2}) mit

δ(z0, a) = z1 δ(z1, b) = z0δ(z0, b) = z0 δ(z2, a) = z2δ(z1, a) = z2 δ(z2, b) = z2

z0 z1 z2

b

aa

b

a, b

Die erzeugte regulare Grammatik dazu ist:

G = ({z0, z1, z2}, {a, b}, P, z0) mitP = {z0 → az1 | bz0,

z1 → az2 | a | bz0,z2 → az2 | a | bz2 | b}

.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 14/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Wird jede regulare Sprache durch einen DFA akzeptiert?

Der vorherige Beweis konstruiert:

”fur jeden DFA gibt es eine aquivalente regulare Grammatik“

Fur die andere Richtung ware notwendig

”fur jede regulare Grammatik gibt es einen aquivalenten DFA“

Problem:

Produktionen: A→ aA1 und A→ aA2 konnen inGrammatiken vorkommen

Konstruktion des determinstischen Automaten unklar.

Daher: Beweis, dass DFAs alle regularen Sprachen akzeptieren,erfolgt auf Umwegen

TCS | 02 Regulare Sprachen (I) | SoSe 2019 15/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Nichtdeterministische Endliche Automaten

Ideen

Zustandswechsel nicht eindeutig, sondern nichtdeterministischin einen von mehreren moglichen

D.h. der Automat darf sozusagen”raten“ welchen

Nachfolgezustand er wahlt

Im Zustandsgraph erlaubt:

z

z1

z2

a

a

Technisch:

DFA δ : Z × Σ→ Z und ein StartzustandNFA δ : Z × Σ→ P(Z) und Menge von Startzustanden

TCS | 02 Regulare Sprachen (I) | SoSe 2019 16/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 5: Regul are Sprachen - LMU

Definition NFA

Definition

Ein nichtdeterministischer endlicher Automat (nondeterministicfinite automaton, NFA) ist ein 5-Tupel (Z,Σ, δ, S,E) wobei

Z ist eine endliche Menge von Zustanden,

Σ ist das (endliche) Eingabealphabet mit (Z ∩ Σ) = ∅,S ⊆ Z ist die Menge der Startzustande,

E ⊆ Z ist die Menge der Endzustande und

δ : Z × Σ→ P(Z) ist die Zustandsuberfuhrungsfunktion

TCS | 02 Regulare Sprachen (I) | SoSe 2019 17/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Akzeptanz beim NFA

”Ein Wort w wird vom NFA akzeptiert, wenn es einen Pfad von

einem Startzustand zum Endzustand entlang w gibt“

Definition (Akzeptierte Sprache eines NFA)

Sei M = (Z,Σ, δ, S,E) ein NFA.Wir definieren δ : (P(Z)× Σ∗)→ P(Z) induktiv durch:

δ(X, ε) := X fur alle X ⊆ Zδ(X, aw) :=

⋃z∈X

δ(δ(z, a), w) fur alle X ⊆ Z

Die von M akzeptierte Sprache ist

L(M) = {w ∈ Σ∗ | δ(S,w) ∩ E 6= ∅}

TCS | 02 Regulare Sprachen (I) | SoSe 2019 18/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiel: Leere Menge von Startzustanden

Sei M = (Z,Σ, δ, ∅, E) ein NFA.Dann ist L(M) = ∅.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 19/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Lauf beim NFA

Definition

Sei M = (Z,Σ, δ, S,E) ein NFA und w ∈ Σ∗ mit |w| = n.Eine Folge von Zustanden q0, . . . , qn mit q0 ∈ S undqi ∈ δ(qi−1, w[i]) bezeichnet man als Lauf von M fur Wort w.

Beachte: Wahrend es bei DFAs genau einen Lauf pro Wort gibt,kann es bei NFAs mehrere geben.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 20/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 6: Regul are Sprachen - LMU

Beispiel

Sei M = ({z0, z1, z2, z3}, {a, b, c}, δ, {z0, z3}, {z3}) ein NFA mit

δ(z0, a) = {z0, z1}δ(z0, b) = {z0}δ(z0, c) = {z0}

δ(z1, a) = {z2}δ(z1, b) = {z2}δ(z1, c) = {z2}

δ(z2, a) = {z3}δ(z2, b) = {z3}δ(z2, c) = {z3}

δ(z3, a) = ∅δ(z3, b) = ∅δ(z3, c) = ∅

Der Zustandsgraph zuM ist z0 z1 z2 z3a a, b, c a, b, c

a, b, c

.

L(M) = {ε} ∪ {uaw | u ∈ {a, b, c}∗, w ∈ {a, b, c}2}

TCS | 02 Regulare Sprachen (I) | SoSe 2019 21/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Jede regulare Sprache wird durch NFA erkannt

Theorem 4.4.1

Fur jede regulare Sprache L gibt es einen NFA M mit L(M) = L.

Beweis:

Sei G = (V,Σ, P, S) eine regulare Grammatik mit L(G) = L.

Sei M = (Z,Σ, δ, S′, E) ein NFA mit Z = V ·∪{zE} (zE neu), S′ = {S}und E = {zE , S} falls S → ε ∈ P , sonst E = {zE}, und

δ(A, a) := {B | A→ aB ∈ P} ∪ {zE | falls A→ a ∈ P}δ(zE , a) := ∅ fur alle a ∈ Σ.

Es gilt: ε ∈ L(M) ⇐⇒ ε ∈ L(G).

Fur w = a1 · · · an gilt:

w ∈ L(G) g.d.w. S ⇒G a1A1 ⇒G . . .⇒G a1 · · · an−1An−1 ⇒G a1 · · · ang.d.w. Es gibt Zustande A1, . . . , An−1 mit

A1 ∈ δ(S, a1), Ai+1 ∈ δ(Ai, ai+1) fur 1 ≤ i ≤ n− 2und zE ∈ δ(An−1, an)

g.d.w. w ∈ L(M)

TCS | 02 Regulare Sprachen (I) | SoSe 2019 22/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiel: Konstruktion NFA aus Typ 3-Grammatik

Betrachte die regulare Grammatik G = (V,Σ, P,A)mit V = {A,B,C,D}, Σ = {a, b, c} und

P = { A→ ε | aB | bB | cB | aC,B → aB | bB | cB | aC,C → aD | bD | cD,D → a | b | c}

.

Konstruktion des dazu passenden NFA: M = (Z,Σ, δ, S,E) mit

Z = V ∪ {zE} = {A,B,C,D, zE},E = {A, zE}, S = {A} und

δ(A, a)={B,C}δ(A, b)={B}δ(A, c)={B}

δ(B, a)={B,C}δ(B, b)={B}δ(B, c)={B}

δ(C, a)={D}δ(C, b)={D}δ(C, c)={D}

δ(D, a)={zE}δ(D, b)={zE}δ(D, c)={zE}

δ(zE , a)=∅δ(zE , b)=∅δ(zE , c)=∅

TCS | 02 Regulare Sprachen (I) | SoSe 2019 23/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiel: Konstruktion NFA aus Typ 3-Grammatik (2)

Der Zustandsgraph zu M ist

A

B C D zEa a, b, c a, b, c

a, b, c

a, b, ca

TCS | 02 Regulare Sprachen (I) | SoSe 2019 24/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 7: Regul are Sprachen - LMU

NFAs in DFAs transformieren

Theorem 4.5.1 (Rabin & Scott 1959)

Jede von einem NFA akzeptierte Sprache ist auch durch einen DFAakzeptierbar.

Beweisidee:

Konstruiere fur einen gegebenen NFA einen DFA, sodass sich

”der DFA alle Zustande merkt, in denen der NFA sein konnte“

Z.B. babbabb z0

z0z0z0z0z0z0z0z0

z1

z1z1

z2

z2z2

z3

z3z3z3

a a, b, c a, b, c

a, b, c

Konstruktion: Jede Teilmenge von Zustanden des NFA wird zueinem Zustand des DFA (daher: Potenzmengenkonstruktion)

TCS | 02 Regulare Sprachen (I) | SoSe 2019 25/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Potenzmengenkonstruktion

Fur NFA M = (Z,Σ, δ, S,E) konstruieren wir den DFAM ′ = (Z ′,Σ, δ′, S′, E′) mit

Z ′ = P(Z)

”Zustandsmenge ist Potenzmenge von Z“

S′ = S

”Startzustand ist Menge S aller Startzustande von M“

E′ = {X ∈ Z ′ | (E ∩X) 6= ∅}

”Jede Menge, die mind. einen Endzustand von E enthalt, ist

Endzustand in M ′“

δ′(X, a) =⋃z∈X

δ(z, a) = δ(X, a)

”δ′(X, a) berechnet alle von einem Zustand in X aus uber a

erreichbaren Zustande.“

TCS | 02 Regulare Sprachen (I) | SoSe 2019 26/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Korrektheit der Potenzmengenkonstruktion

Wir beweisen, dass L(M) = L(M ′) gilt, indem wir zeigen:

w ∈ L(M) g.d.w. w ∈ L(M ′)

Fall w = ε:

ε ∈ L(M) g.d.w. S ∩ E 6= ∅ g.d.w S ∈ E′ g.d.w. ε ∈ L(M ′)

Fall w = a1 · · · an ∈ Σ∗:

w ∈ L(M)

g.d.w. δ(S,w) ∩ E 6= ∅g.d.w. Es gibt Teilmengen Z1, . . . , Zn von Z mit

δ(S, a1) = Z1, δ(Zi, ai+1) = Zi+1 fur i = 1, . . . , n− 1und Zn ∩ E 6= ∅

g.d.w. δ′(S′, w) ∈ E′g.d.w w ∈ L(M ′)

TCS | 02 Regulare Sprachen (I) | SoSe 2019 27/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiel: Potenzmengenkonstruktion

Fur NFA z0 z1 z2 z3a a, b, c a, b, c

a, b, c

wird der DFA konstruiert:

M ′ = (P({z0, z1, z2, z3}), {a, b, c}, δ′, S′, E′) mitS′ = {z0, z3}E′ = {{z3}, {z0, z3}, {z1, z3}, {z2, z3}, {z0, z1, z3}, {z0, z2, z3}, {z1, z2, z3}, {z0, z1, z2, z3}}δ′(∅, d) = ∅ fur d ∈ {a, b, c}δ′({z0}, a) = {z0, z1}δ′({z0}, d) = {z0} fur d ∈ {b, c}δ′({z1}, d) = {z2} fur d ∈ {a, b, c}δ′({z2}, d) = {z3} fur d ∈ {a, b, c}δ′({z3}, d) = ∅ fur d ∈ {a, b, c}δ′({z0, z1}, a) = {z0, z1, z2}δ′({z0, z1}, d) = {z0, z2} fur d ∈ {b, c}δ′({z0, z2}, a) = {z0, z1, z3}δ′({z0, z2}, d) = {z0, z3} fur d ∈ {b, c}δ′({z0, z3}, a) = {z0, z1}δ′({z0, z3}, d) = {z0} fur d ∈ {b, c}δ′({z1, z2}, d) = {z2, z3} fur d ∈ {a, b, c}

δ′({z1, z3}, d) = {z2} fur d ∈ {a, b, c}δ′({z2, z3}, d) = {z3} fur d ∈ {a, b, c}δ′({z0, z1, z2}, a) = {z0, z1, z2, z3}δ′({z0, z1, z2}, d) = {z0, z2, z3} fur d ∈ {b, c}δ′({z0, z1, z3}, a) = {z0, z1, z2}δ′({z0, z1, z3}, d) = {z0, z2} fur d ∈ {b, c}δ′({z0, z2, z3}, a) = {z0, z1, z3}δ′({z0, z2, z3}, d) = {z0, z3} fur d ∈ {b, c}δ′({z1, z2, z3}, d) = {z2, z3} fur d ∈ {a, b, c}δ′({z0, z1, z2, z3}, a) = {z0, z1, z2, z3}δ′({z0, z1, z2, z3}, b) = {z0, z2, z3}δ′({z0, z1, z2, z3}, c) = {z0, z2, z3}

TCS | 02 Regulare Sprachen (I) | SoSe 2019 28/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 8: Regul are Sprachen - LMU

Beispiel: Potenzmengenkonstruktion (2)

z0

z0z0z0z0z0z0z0z0

z1

z1z1

z2

z2z2

z3

z3z3z3

a a, b, c a, b, c

a, b, c

Ablauf bei Eingabe babbabb

DFA als Zustandsgraph (nur erreichbare Zustande):

{z0,z3}

{z0,z3}{z0,z3}{z0,z3}

{z0,z1}

{z0,z1}{z0,z1}

{z0,z1,z2} {z0,z1,z2,z3}

{z0,z2,z3}{z0,z2}

{z0,z2}{z0,z2}

{z0,z1,z3}

{z0}

{z0}

ab, c

b, c

a

b, c

a

a

b, c

a

b, ca

b, c

a

b, c

b, c

a

TCS | 02 Regulare Sprachen (I) | SoSe 2019 29/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

DFAs & NFAs sind Formalismen fur Typ 3-Sprachen

Theorem 4.5.4

DFAs und NFAs erkennen genau die regularen Sprachen.

Das folgt aus:

Theorem 4.2.1: Sei M ein DFA. Dann ist L(M) regular.

Theorem 4.4.1: Fur jede regulare Sprache L gibt es einen NFAM mit L(M) = L.

Theorem 4.5.1: Jede von einem NFA akzeptierte Sprache istauch durch einen DFA akzeptierbar.

Jeder DFA kann leicht auch als NFA interpretiert werden

TCS | 02 Regulare Sprachen (I) | SoSe 2019 30/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Große des DFAs vs NFAs (1)

Sei M ein NFA mit n Zustanden.

Der durch die Potenzmengenkonstruktion erstellte DFA hat 2n

Zustande!

D.h. der Platz explodiert uns!

Frage: Geht es besser (unsere Kodierung ist zu einfach) odernicht?

Das folgende Lemma zeigt, dass es nicht wirklich besser geht

TCS | 02 Regulare Sprachen (I) | SoSe 2019 31/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Große des DFAs vs NFAs (2)

Lemma

Sei Ln = {uav | u ∈ {a, b}∗, v ∈ {a, b}n−1} fur n ∈ N>0.(Sprache aller Worter aus {a, b}∗, die an n-letzter Stelle ein a haben).

Es gibt NFA Mn mit L(Mn) = Ln und Mn hat n+ 1 Zustande.

Jeder DFA M ′n mit L(M ′n) = Ln, hat mindestens 2n Zustande.

Beweis (Teil 1): Sei Mn der folgende NFA:

z0 z1 z2 zn−1 zna a, b a, b a, b a, b

a, b

L(Mn) = Ln, denn:

zum Akzeptieren mussen z0, z1, . . . zn nacheinander durchlaufenwerden, was genau mit Wortern av mit v ∈ {a, b}n−1 moglich ist

In z0 kann zuvor jedes u ∈ {a, b}∗ gelesen werden (Verbleib in z0).

TCS | 02 Regulare Sprachen (I) | SoSe 2019 32/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 9: Regul are Sprachen - LMU

Große des DFAs vs NFAs (3)

Beweis (Teil 2): Beweis durch Widerspruch.

Annahme: Es gibt n ∈ N>0 und DFA M ′ = (Z, {a, b}, δ, z0, E) mitL(M ′) = Ln = {uav | u ∈ {a, b}∗, v ∈ {a, b}n−1} und |Z| < 2n

Menge W = {a, b}n enthalt 2n Worte der Lange n und da |Z| < 2n,muss es w 6= w′ ∈W geben mit δ(z0, w) = δ(z0, w

′) = zi

Sei j die erste Position, an der sich w und w′ unterscheiden.

Falls j = 1, dann ist o.B.d.A. w = au ∈ Ln aber w′ = bu′ 6∈ Ln undzi ∈ E und zi 6∈ E musste gleichzeitig gelten. Widerspruch!

Falls j > 1: O.B.d.A. w = uav und w′ = ubv′ mit |v| = |v′| = n− j

Sei w0 = wbj−1 = uavbj−1

w′0 = w′bj−1= ubv′bj−1

Dann muss gelten δ(w0) = δ(w′0), da δ(uav) = zi = δ(ubv′).

Aber w0 ∈ Ln und w′0 6∈ Ln, Widerspruch!

TCS | 02 Regulare Sprachen (I) | SoSe 2019 33/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

NFAs mit ε-Ubergangen

ε-Ubergange erlauben Zustandswechsel ohne Lesen eines Zeichens(es wird sozusagen das leere Wort ε gelesen)

Ausdruckskraft andert sich mit ε-Ubergangen nicht

ε-Ubergange machen manche Konstruktionen einfacher.

Definition (NFA mit ε-Ubergangen)

Ein nichtdeterministischer endlicher Automat mit ε-Ubergangen (NFA mitε-Ubergangen) ist ein Tupel M = (Z,Σ, δ, S,E) wobei

Z ist eine endliche Menge von Zustanden,

Σ ist das (endliche) Eingabealphabet mit (Z ∩ Σ) = ∅,S ⊆ Z ist die Menge der Startzustande,

E ⊆ Z ist die Menge der Endzustande und

δ : Z × (Σ∪{ε})→ P(Z) ist die Zustandsuberfuhrungsfunktion

TCS | 02 Regulare Sprachen (I) | SoSe 2019 34/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiel: NFA mit ε-Ubergangen

z1

z0 z2 z3 z4a a, b, c a, b, c

a, b, c

ε ε

ε

Akzeptierte Sprache:

alle Worte aus {a, b, c}∗, die an letzter, vorletzter, oderdrittletzter Postion ein a haben, und das leere Wort

TCS | 02 Regulare Sprachen (I) | SoSe 2019 35/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

ε-Hulle

Definition (ε-Hulle)

Sei M = (Z,Σ, δ, S,E) ein NFA mit ε-Ubergangen. Die ε-Hulleclosε(z) eines Zustands z ∈ Z ist induktiv definiert als die kleinsteMenge von Zustanden, welche die folgenden Eigenschaften erfullt:

1 z ∈ closε(z).

2 Wenn z′ ∈ closε(z) und z′′ ∈ δ(z′, ε), dann ist auchz′′ ∈ closε(z).

Fur eine Zustandsmenge X ⊆ Z definieren wirclosε(X) :=

⋃z∈X closε(z).

Die ε-Hulle fugt fur eine Zustandsmenge alle durch ε-Ubergangeerreichbaren Zustande hinzu.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 36/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 10: Regul are Sprachen - LMU

ε-Hulle (2)

Die ε-Hulle fur eine Zustandsmenge X ⊆ Z kann auch berechnetwerden durch:

closε(X) :=

{X, wenn

⋃z∈X δ(z, ε) ⊆ X

closε(X ∪⋃z∈X δ(z, ε)), sonst

TCS | 02 Regulare Sprachen (I) | SoSe 2019 37/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiel

z1

z0 z2 z3 z4a a, b, c a, b, c

a, b, c

ε ε

ε

closε(z0) = {z0}closε(z1) = {z1}closε(z4) = {z4}closε(z3) = {z1, z3, z4}closε(z2) = {z1, z2, z3, z4}

TCS | 02 Regulare Sprachen (I) | SoSe 2019 38/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

NFA mit ε-Ubergangen: Akzeptierte Sprache

Akzeptierte Sprache eines NFA mit ε-Ubergangen

Sei M = (Z,Σ, δ, S,E) ein NFA mit ε-Ubergangen.Wir definieren δ : (P(Z)× Σ∗)→ P(Z) induktiv durch:

δ(X, ε) := X

δ(X, aw) :=⋃z∈X

δ(closε(δ(z, a)), w) fur alle X ⊆ Z

Die von M akzeptierte Sprache ist

L(M) := {w ∈ Σ∗ | δ(closε(S), w) ∩ E 6= ∅}

TCS | 02 Regulare Sprachen (I) | SoSe 2019 39/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

ε-Ubergange andern die Ausdruckskraft nicht (1)

Satz 4.6.7

NFAs mit ε-Ubergangen akzeptieren genau die regularen Sprachen.

Beweis”⇐“:

Jede regulare Sprache wird von einem”normalen“ NFA

akzeptiert.

Transformiere diesen NFA in einen NFA mit ε-Ubergangen:

Setze δ(z, ε) = ∅ fur alle Zustande z

Offensichtlich ist die akzeptierte Sprache diesselbe.

Daher wird jede regulare Sprache von einem NFA mitε-Ubergangen akzeptiert.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 40/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 11: Regul are Sprachen - LMU

ε-Ubergange andern die Ausdruckskraft nicht (2)

Beweis”⇒“: Sei M = (Z,Σ, δ, S,E) ein NFA mit ε-Ubergangen.

Konstruiere NFA M ′ mit L(M) = L(M ′). Dann ist L(M) regular.

M ′ = (Z,Σ, δ′, S′, E) mit S′ = closε(S), δ′(z, a) = closε(δ(z, a)).

L(M) = L(M ′):

Wir zeigen δ(closε(X), w) = δ′(closε(X), w) fur alle X ⊆ Z undw ∈ Σ∗. Wir verwenden Induktion uber die Wortlange |w|.Basis: w = ε. Dann gilt δ(closε(X), ε) = closε(X) = δ′(closε(X), ε)

Schritt: Sei w = au mit a ∈ Σ. Wir formen um:

δ(closε(X), au)Def. δ

=⋃

z∈closε(X)

δ(closε(δ(z, a)), u)I.H.=

⋃z∈closε(X)

δ′(closε(δ(z, a)), u)

Def. δ′=

⋃z∈closε(X)

δ′(δ′(z, a), u)Def. δ

= δ′(closε(X), au)

TCS | 02 Regulare Sprachen (I) | SoSe 2019 41/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Eindeutige Start- und Endzustande

Satz 4.6.8

Fur jeden NFA M mit ε-Ubergangen gibt es einen NFA M ′ mitε-Ubergangen, sodass L(M) = L(M ′) und M ′ genau einenStartzustand und genau einen Endzustand hat, wobei diese beidenZustande verschieden sind.

Beweis: Konstruiere M ′ aus M , durch Hinzufugen eines neuenStart- und eines neuen Endzustand mit ε-Ubergangen:

M wird zu

ε

ε

ε

ε

ε

ε

TCS | 02 Regulare Sprachen (I) | SoSe 2019 42/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiel

z1

z0 z2 z3 z4a a, b, c a, b, c

a, b, c

ε ε

ε

wird zu

zS zEz1

z0

ε

ε z2 z3 z4a a, b, c a, b, c

a, b, c

ε ε

ε

ε

ε

TCS | 02 Regulare Sprachen (I) | SoSe 2019 43/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Regulare Ausdrucke

Regulare Ausdrucke sind (wie Automaten und Grammatiken)ein Formalismus zur Reprasentation von Sprachen.

Praktische Verwendung: Regex-Bibliotheken inProgrammiersprachen zum Suchen und Ersetzen vonZeichenketten(verwenden meist erweiterte regulare Ausdrucke)

Aufbau regularer Ausdrucke:Basisausdrucke und Operatoren zum Zusammensetzen.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 44/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 12: Regul are Sprachen - LMU

Regulare Ausdrucke (2)

Definition (Regularer Ausdruck)

Sei Σ ein Alphabet. Ein regularer Ausdruck uber Σ ist induktiv definiert:

∅ ist ein regularer Ausdruck

ε ist ein regularer Ausdruck

a mit a ∈ Σ ist ein regularer Ausdruck

Wenn α1 und α2 regulare Ausdrucke sind, dann auch α1α2

Wenn α1 und α2 regulare Ausdrucke sind, dann auch (α1|α2)

Wenn α regularer Ausdruck ist, dann auch (α)∗

TCS | 02 Regulare Sprachen (I) | SoSe 2019 45/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Regulare Ausdrucke (3)

Erzeugte Sprache

Die von einem regularen Ausdruck α erzeugte Sprache L(α) istinduktiv uber dessen Struktur definiert:

L(∅) := ∅L(ε) := {ε}L(a) := {a} fur a ∈ Σ

L(α1α2) := L(α1)L(α2) = {uv | u ∈ L(α1), v ∈ L(α2)}L(α1|α2) := L(α1) ∪ L(α2)L((α)∗) := L(α)∗

Fur alle regularen Ausdrucke α1, α2, α3 gilt:

L((α1|α2)|α3) = L(α1|(α2|α3))

Daher lassen wir Klammern weg und schreiben (α1|α2| . . . |αn).

TCS | 02 Regulare Sprachen (I) | SoSe 2019 46/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiele

(a|b)∗aa(a|b)∗ erzeugt alle Worte uber {a, b} die zweiaufeinanderfolgende a’s enthalten

(ε|((a|b|c)∗a(a|b|c)(a|b|c)(a|b|c))) erzeugt alle Worte uber{a, b, c}, die an viertletzter Stelle ein a haben und das leereWort

((0|1|2|3|4|5|6|7|8|9)|1(0|1|2|3|4|5|6|7|8|9)|(2(0|1|2|3))) :((0|1|2|3|4|5)(0|1|2|3|4|5|6|7|8|9)) erzeugt alle Uhrzeiten im24-Stunden-Format

Eine endliche Sprache S = {w1, . . . , wn} wird durch(w1| . . . |wn) erzeugt.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 47/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Satz von Kleene

Theorem 4.7.4 (Satz von Kleene)

Regulare Ausdrucke erzeugen genau die regularen Sprachen.

Beweis in zwei Teilen:

1 Jede von einem regularen Ausdruck erzeugte Sprache istregular.

2 Fur jede regulare Sprache gibt es einen regularen Ausdruck,der sie erzeugt.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 48/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 13: Regul are Sprachen - LMU

Beweis: Satz von Kleene (1)

1. Jede von einem regularen Ausdruck erzeugte Sprache ist regular.Beweis:

Wir konstruieren fur regularen Ausdruck α einen NFA Mα mitε-Ubergangen und eindeutigen Start- und Endzustanden,sodass L(Mα) = L(α).

Induktion uber die Struktur von α

Basisfalle:

Fur α = a ∈ Σ konstruierea

Fur α = ε konstruiereε

Fur α = ∅ konstruiere

In allen Fallen ist L(α) = L(Mα) offensichtlich

TCS | 02 Regulare Sprachen (I) | SoSe 2019 49/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beweis: Satz von Kleene (2)

Induktionsschritt: Betrachte den Aufbau von α (3 Falle)

Fur α = α1α2, liefert die I.H. Mα1,Mα2

.

Mα1Mα2

Konstruiere daraus Mα:

ε

TCS | 02 Regulare Sprachen (I) | SoSe 2019 50/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beweis: Satz von Kleene (3)

Fur α = (α1|α2) liefert die I.H. Mα1,Mα2

:

Mα1

Mα2

Konstruiere daraus Mα:

ε

ε

ε

ε

TCS | 02 Regulare Sprachen (I) | SoSe 2019 51/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beweis: Satz von Kleene (4)

Fur α = (α1)∗ liefert die I.H. Mα1

Mα1

Konstruiere daraus Mα:

ε

ε

ε

TCS | 02 Regulare Sprachen (I) | SoSe 2019 52/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 14: Regul are Sprachen - LMU

Beweis: Satz von Kleene (5)

2. Fur jede reg. Sprache L gibt es einen regularen Ausdruck α mit L(α) = LBeweis:

Sei DFA M = ({z1, . . . , zn},Σ, δ, z1, E) mit L(M) = L gegeben.

Fur w ∈ Σ∗ und zi ∈ z mit δ(zi, w) = zj sei visit i(w) = q1, . . . , qmdie Folge der besuchten Zustande (wobei q1 = zi und qm = zj).

Wir definieren:

Lki,j =

{w ∈ Σ∗

δ(zi, w) = zj und visit i(w) = q1, . . . , qm,sodass fur 1 < l < m: wenn ql = zp dann p ≤ k

}Lki,j enthalt die Worte, die M von Zustand zi zu Zustand zj fuhrenohne dabei Zwischenzustande mit Index großer als k zu benutzen.

Mit Induktion uber k zeigen wir, dass es regulare Ausdrucke αki,j mit

L(αki,j) = Lki,j gibt.

TCS | 02 Regulare Sprachen (I) | SoSe 2019 53/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beweis: Satz von Kleene (6)

Zur Erinnerung: Lki,j enthalt die Worte, die M von Zustand zi zu Zustand zj fuhren ohne

dabei Zwischenzustande mit Index großer als k zu benutzen.

Basis: k = 0

Wenn i 6= j, dann ist L0i,j = {a ∈ Σ | δ(zi, a) = zj}.

Falls L0i,j = {a1, . . . , aq}, dann gilt L(α0

i,j) = L0i,j fur α0

i,j = (a1| . . . |aq).

Falls L0i,j = ∅, dann gilt L(α0

i,j) = L0i,j mit α0

i,j = ∅.Wenn i = j, dann ist L0

i,i = {ε} ∪ {a ∈ Σ | δ(zi, a) = zi}.

Sei L0i,i = {ε, a1, . . . , aq}.

Dann gilt L(α0i,i) = L0

i,i fur α0i,i = (ε|a1| . . . |aq).

TCS | 02 Regulare Sprachen (I) | SoSe 2019 54/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beweis: Satz von Kleene (7)Zur Erinnerung: Lk

i,j enthalt die Worte, die M von Zustand zi zu Zustand zj fuhrenohne dabei Zwischenzustande mit Index großer als k zu benutzen.

Induktionsschritt: k → k + 1

Lk+1i,j = Lki,j ∪ Lki,k+1(L

kk+1,k+1)

∗Lkk+1,j ,

denn entweder lauft M ohne Zustand zk+1 zu besuchen, oder der Laufkann in 3 Teile gespalten werden:

1 Lauf von zi bis zum ersten Besuch des Zustands zk+1

(abgedeckt durch Lki,k+1)

2 Mehrmaliges, zyklisches Besuchen von k + 1 (beliebig oft)(abgedeckt durch Lkk+1,k+1)

3 Letztmaliges Verlassen von zk+1 und Lauf bis zu zj(abgedeckt durch Lkk+1,j)

Daher gilt αk+1i,j = (αki,j |αki,k+1(α

kk+1,k+1)

∗αkk+1,j) und L(αk+1i,j ) = Lk+1

i,j .

Fur E = {zi1 , . . . , zir} gilt L(αn1,i1 |αn1,i2| . . . |αn1,ir) =

⋃zi∈E

Ln1,i = L(M)TCS | 02 Regulare Sprachen (I) | SoSe 2019 55/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Beispiel: Regularer Ausdruck → NFA mit ε-Ubergangen

NFA zum regularen Ausdruck

(ε|(a|b)∗b(a|b))

konstruieren:

ε

a

ε ε

ε

ε

ε

ε bε

a

b

ε

ε

ε

ε

εε

ε

ε

ε

TCS | 02 Regulare Sprachen (I) | SoSe 2019 56/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Page 15: Regul are Sprachen - LMU

Beispiel: DFA → regularer Ausdruck

z1 z2

a

a

Regularer Ausdruck dazu:

α21,2 = (α1

1,2|α11,2(α

12,2)∗α1

2,2)

= ((a|ε(ε)∗a) | (a|ε(ε)∗a) (ε|a(ε)∗a)∗ (ε|a(ε)∗a))

= (a|a(aa)∗) (durch Vereinfachung)

denn

α01,1 = ε α0

2,2 = ε α01,2 = a α0

2,1 = a

α11,2 = (α0

1,2|α01,1(α

01,1)∗α0

1,2) = (a|ε(ε)∗a)

α12,2 = (α0

2,2|α02,1(α

01,1)∗α0

1,2) = (ε|a(ε)∗a)

TCS | 02 Regulare Sprachen (I) | SoSe 2019 57/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.

Zusammenfassung: Formalismen fur regulare Sprachen

Regulare Grammatiken(=Regulare Sprachen)

NFAs

NFAs mit ε-Ubergangen

NFAs mit ε-Ubergangen undeindeutigem Start- und

Endzustand

DFAs

Regulare Ausdrucke

Theorem 4.2.1

offensichtlich

Theorem 4.5.1Theorem 4.4.1

Satz 4.6.7

Satz 4.6.8

Theorem 4.7.4

Theorem 4.7.4

Kanten → zeigen Kodierungen

TCS | 02 Regulare Sprachen (I) | SoSe 2019 58/58 DFAs NFAs NFAs+ε Regulare Ausdrucke Zusammenf.