Post on 23-Aug-2019
Homomorphismen
Σ und Γ seien zwei endliche Alphabete, und h sei eine Abbildung h : Σ∗ → Γ∗.Wir definieren die folgenden Sprachen:
h(L) := {h(u) : u ∈ L} ⊆ Γ∗, für jede Sprache L ⊆ Σ∗,
h−1(M) := {u ∈ Σ∗ : h(u) ∈ M} ⊆ Σ∗, für jede Sprache M ⊆ Γ∗.
Für jedes w ∈ Γ∗ sei h−1(w) := h−1({w}) = {u ∈ Σ∗ : h(u) = w}.
Defnition:Eine Abbildung h : Σ∗ → Γ∗ heißt Homomorphismus, wenn für alle Worte u, v ∈ Σ∗
gilt: h(uv) = h(u) h(v).
Beachte: Ein Homomorphismus h ist vollständig festgelegt durch die Abbildunga 7→ h(a), für alle a ∈ Σ. Es gilt:
h(ε) = ε und
h(a1 · · · an) = h(a1) · · · h(an), für alle n ∈ N>0 und a1, . . . , an ∈ Σ.
Abschlusseigenschaften 90 / 124
Beispiele
Sei Σ := {0, 1, 2} und Γ := {a, b}.(a) Sei h : Σ∗ → Γ∗ der durch
h(0) := a, h(1) := b, h(2) := b
festgelegte Homomorphismus.Dann ist h(0012) = aabb, und allgemein ist h(0n12n−1) = anbn für alle n > 1.Somit ist
h({0n12n−1 : n > 1}) = {anbn : n > 1}.
(b) Sei g : Σ∗ → Σ∗ der durch
g(0) := 0, g(1) := 10, g(2) := 0
festgelegte Homomorphismus.Dann ist g(021) = 0010, und g−1(0010) = {021, 001, 221, 201} = {0, 2}2{1}.Außerdem ist g−1(0n10n) = {0, 2}n{1}{0, 2}n−1 undg−1({0n10n : n > 1}) ∩ {0}∗{1}{2}∗ = {0n12n−1 : n > 1}.
Abschlusseigenschaften 91 / 124
Homomorphismen undAbschlusseigenschaften regulärer Sprachen
Satz:Seien Σ und Γ zwei endliche Alphabete und sei h : Σ∗ → Γ∗ ein Homomorphismus.Dann gilt:
(a) Falls L ⊆ Σ∗ regulär, so ist auch h(L) regulär.
(b) Falls M ⊆ Γ∗ regulär, so ist auch h−1(M) regulär.
Die Klasse aller regulären Sprache ist also abgeschlossen unter Homomorphismenund unter inversen Homomorphismen.
Beweis: Skizze: siehe Tafel. Details: Übung.
Abschlusseigenschaften 92 / 124
Anwendungsbeispiele
Nutze Abschlusseigenschaften der Klasse aller regulären Sprachen, um dieNicht-Regularität bestimmter Sprachen nachzuweisen.
Beispiel:Keine der folgenden Sprachen ist regulär:
(a) L := {ambncm+n : m, n ∈ N},(b) L := {a, b}∗ ∪ {ck anbn : k , n > 0},(c) L := {0n12n−1 : n > 1},(d) L := {0n10n : n > 1}.
Beweis: siehe Tafel!
Abschlusseigenschaften 93 / 124
Weitere AbschlusseigenschaftenIn den Übungen haben wir bereits einige weitere Abschlusseigenschaften derregulären Sprachen gesehen:
Satz:L, L1, L2 ⊆ Σ∗ seien reguläre Sprachen; w ∈ Σ∗ sei ein Wort.Dann sind auch die folgenden Sprachen regulär:
(a) w−1L := {v ∈ Σ∗ : wv ∈ L} (Linksquotient von L bzgl. w)
(b) L1 G L2 (Shuffle-Produkt von L1 und L2
(c) LR := {wR : w ∈ L} (Rückwärtslesen von L)
Dabei ist
I u G v := {u1v1 · · · unvn : n ∈ N, u = u1 · · · un, v = v1 · · · vn, ui , vi ∈ Σ∗},L1 G L2 :=
⋃u∈L1,v∈L2
u G v
I wR := an · · · a1, falls w = a1 · · · an mit ai ∈ Σ, n > 0.
Abschlusseigenschaften 94 / 124
Zusammenfassung
Die Klasse der regulären Sprachen ist abgeschlossen unter
KomplementbildungL regulär =⇒ L := Σ∗ \ L regulär
Vereinigung und DurchschnittL1, L2 regulär =⇒ L1 ∪ L2 und L1 ∩ L2 regulär
KonkatenationL1, L2 regulär =⇒ L1 · L2 regulär
Kleene-SternL regulär =⇒ L∗ regulär
Homomorphismen und inversen HomomorphismenL regulär, h Homomorphismus =⇒ h(L) und h−1(L) regulär
RückwärtslesenL regulär =⇒ LR regulär
Shuffle-ProduktL1, L2 regulär =⇒ L1 G L2 regulär
LinksquotientenL regulär, w ∈ Σ∗ =⇒ w−1L regulär
Abschlusseigenschaften 95 / 124
Entscheidungsprobleme
Entscheidungsprobleme 96 / 124
Welche Fragen über endliche Automaten sind effizientbeantwortbar?
A sei ein DFA oder NFA.
Ist L(A) 6= ∅?
Sei q0 der Anfangszustand von A und sei F die Menge der akzeptierendenZustände.
L(A) ist genau dann nicht-leer, wennes einen Weg von q0 zu einem Zustand in F gibt.
Wende Tiefensuche auf q0 an: L(A) ist nicht-leer, wenn Tiefensuche einenakzeptierenden Zustand findet.
Die Laufzeit ist proportional zur Anzahl der Kanten im Zustandsdiagramm, also inO(|Σ| · |Q|) für DFAs und in O(|Σ| · |Q|2) für NFAs.
Entscheidungsprobleme 97 / 124
Welche Fragen lassen sich effizient beantworten?
D,D1,D2 seien deterministische AutomatenDie folgenden Fragen lassen sich effizient beantworten (in Zeit O(|Σ| · |Q|) bzw.O(|Σ| · |Q1| · |Q2|)):(a) Ist L(D) = Σ∗? (Universalität)
(b) Ist L(D1) = L(D2)? (Äquivalenz)
(c) Ist L(D1) ⊆ L(D2)? (“Containment”)
(d) Ist L(D) endlich? (Endlichkeit)
Beweis: Übungsaufgabe! Idee: Nutze jeweils aus, dass die Frage
Ist L(D) 6= ∅?
effizient beantwortet werden kann.
Die obigen Fragen (a)–(c) sind für NFAs extrem schwierig: Man kann zeigen, dass siePSPACE-vollständig sind (also wahrscheinlich noch schwerer als NP-vollständigeProbleme).
Entscheidungsprobleme 98 / 124
Das Wortproblem für NFAs
Für einen NFA A und ein Wort w entscheide, ob A die Eingabe w akzeptiert.
Wie schwierig ist das Wortproblem?
Nicht ganz so einfach wie für DFAs,
aber die Menge δ(q0,w) der von q0 aus erreichbaren Zustände lässt sich effizientberechnen: Zeit O(|w | · |Q|2) reicht aus!
Algorithmus: Übungsaufgabe!
Akzeptiere genau dann, wenn δ(q0,w) ∩ F 6= ∅.
Entscheidungsprobleme 99 / 124
Sehr schwierige Entscheidungsfragen für DFAs und NFAs
(1) Das Interpolationsproblem für DFAs:Für gegebene Teilmengen P,N ⊆ Σ∗ und einen Schwellenwert k > 1,
gibt es einen DFA mit höchstens k Zuständen, der alle Worte in P akzeptiertund alle Worte in N verwirft?
Dieses Problem ist NP-vollständig. (Hier ohne Beweis)
(2) Das Minimierungsproblem für NFAs:I Gegeben zwei NFAs A und B, entscheide, ob B ein zu A äquivalenter NFA
mit minimaler Zustandszahl ist.Dieses Problem ist PSPACE-vollständig. (Hier ohne Beweis)
I Es ist sogar schwierig, die minimale Zustandszahl approximativ zubestimmen.
I Was ist da los? Bereits die Frage “Ist L(N) 6= Σ∗?” ist extrem schwer(nämlich PSPACE-vollständig) und gehört daher wahrscheinlich nicht einmalzur Klasse NP.
Worte in Σ∗ \ L(N) sind unter Umständen sehr lang.
Entscheidungsprobleme 100 / 124
Reguläre Ausdrücke
Reguläre Ausdrücke 101 / 124
Reguläre Ausdrücke
Die Menge der regulären Ausdrücke über einem endlichen Alphabet Σ wird rekursivwie folgt definiert:
Basisregel: Die Ausdrücke ∅, ε und a für a ∈ Σ sind regulär.
Die Ausdrücke beschreiben die leere Sprache (L(∅) = ∅), dieSprache des leeren Wortes (L(ε) = {ε}) und die Sprache deseinbuchstabigen Wortes a (L(a) = {a}).
Rekursive Regeln: Sind R und S reguläre Ausdrücke, dann auch(R | S), (R · S) und R∗.
| beschreibt die Vereinigung und wird manchmal auch mit +bezeichnet (L((R | S)) = L(R) ∪ L(S)),· die Konkatenation und wird manchmal auch mit ◦bezeichnet (L((R · S)) = L(R) · L(S)), und∗ beschreibt die Kleene-Hülle (L(R∗) = L(R)∗).
Reguläre Ausdrücke 102 / 124
Abkürzende SchreibweiseZur vereinfachten Schreibweise und besseren Lesbarkeit vereinbaren wir folgendeKonventionen:
Den Punkt bei der Konkatenation darf man weglassen.(Schreibe (RS) statt (R · S))
Bei Ketten gleichartiger Operationen darf man die Klammern weglassen.(Schreibe (R1|R2|R3) statt ((R1|R2)|R3), und (R1R2R3) statt ((R1R2)R3))
Äußere Klammern, die einen regulären Ausdruck umschließen, dürfenweggelassen werden.
Zur besseren Lesbarkeit dürfen zusätzliche Klammern eingefügt werden.
Bei fehlenden Klammern gelten folgende “Präzedenzregeln”:“∗” bindet stärker als “·”; “·” bindet stärker als “|”.
Beispiel:a | bbc∗ ist eine verkürzte Schreibweise für den regulären Ausdruck (a | ((b·b)·c∗)).Die von ihm beschriebene Sprache ist L(a | bbc∗) = {a} ∪ ({bb} · {c}∗).
Reguläre Ausdrücke 103 / 124
Beispiele für reguläre Ausdrücke
(1) L1 ={
w ∈ {a, b}∗ |w beginnt und endet mit dem Buchstaben a}
wird beschreiben durch den regulären Ausdruck
a | a (a | b)∗a.
(2) Sei P ∈ {a, b}∗. Die Sprache aller Worte in {a, b}∗ mit Teilwort P, wirdbeschrieben durch den regulären Ausdruck
(a | b)∗P (a | b)∗.
(3) Der reguläre Ausdruckb∗ | (b∗ab∗ab∗)∗
beschreibt die SpracheL3 =
{w ∈ {a, b}∗ |w enthält eine gerade Anzahl von a’s
}.
Reguläre Ausdrücke 104 / 124
Reguläre Ausdrücke definieren reguläre Sprachen
Satz:Sei Σ ein endliches Alphabet.Jeder reguläre Ausdruck R über Σ beschreibt eine reguläre Sprache L(R).
Beweis: Per Induktion über den Aufbau der regulären Ausdrücke.
Induktionsanfang: Betrachte die gemäß Basisregeln gebildeten regulären Ausdrücke.
∅, ε, und a, für a ∈ Σ sind reguläre Ausdrücke, die die Sprachen L(∅) = ∅,L(ε) = {ε} und L(a) = {a} beschreiben. Man kann leicht DFAskonstruieren, die diese Sprachen akzeptieren.
Induktionsschritt: Betrachte die gemäß rekursiven Regeln gebildeten regulären Ausdrücke.
Seien R und S reguläre Ausdrücke, die gemäß Induktionsannahme reguläreSprachen L(R) und L(S) beschreiben. Wir wissen bereits, dass die Klasseder regulären Sprachen abgeschlossen ist unter Vereinigung, Konkatenationund Kleene-Stern. Daher sind auch die folgenden Sprachen regulär:L(R) ∪ L(S) = L((R |S)), L(R) · L(S) = L((R · S)), L(R)∗ = L(R∗).Somit beschreiben auch die regulären Ausdrücke (R |S), (R · S) und R∗
reguläre Sprachen.
Reguläre Ausdrücke 105 / 124
Beispiel: Regulärer Ausdruck =⇒ ε-NFA
Gegeben sei der reguläre Ausdruck R := 01∗ | 1.Aufgabe: Konstruiere einen ε-NFA A mit L(A) = L(R).
Systematisches Vorgehen entlang des Beweises, dass reguläre Ausdrückereguläre Sprachen definieren:
(1) Zerlege R in Teilausdrücke:I R0 := 0I R1 := 1I R2 := 1∗ = R∗1I R3 := 01∗ = R0R2I R4 := 01∗|1 = R3|R1 = R
(2) Konstruiere, für jedes i ∈ {0, . . . ,4}, einen ε-NFA Ai mit L(Ai ) = L(Ri ).
Dann ist A := A4 der gesuchte Automat.
Rest: Siehe Tafel!
Reguläre Ausdrücke 106 / 124
Zwischenstand
Jeder reguläre Ausdruck definiert also eine reguläre Sprache.
Und umgekehrt, gibt es zu jeder regulären Sprache auch einen regulärenAusdruck?
Reguläre Ausdrücke 107 / 124
Reguläre Sprachen haben reguläre Ausdrücke (1/3)
Satz:Sei Σ ein endliches Alphabet. Zu jeder regulären Sprache L ⊆ Σ∗ gibt es einenregulären Ausdruck R über Σ, der die Sprache L beschreibt.
Beweis:
Sei A = (Q,Σ, δ, q0,F ) ein vollständiger DFA, der L akzeptiert.Es gelte Q = {1, . . . , n}.
Idee: Benutze dynamische Programmierung, um reguläre Ausdrücke Rkp,q zu
konstruieren, die die Mengen Lkp,q beschreiben, wobei
Lkp,q :=
{w ∈ Σ∗ : δ(p,w) = q, und alle Zwischenzustände
liegen in der Menge {1, . . . , k}},
für alle p, q ∈ Q und alle k ∈ {0, 1, . . . , n}.
Es gilt: L =⋃q∈F
Lnq0,q . Für F = {q1, . . . , qs} wird L daher durch den regulären
Ausdruck (Rnq0,q1 | · · · |R
nq0,qs ) beschrieben.
Reguläre Ausdrücke 108 / 124
Reguläre Sprachen haben reguläre Ausdrücke (2/3)Rekursiv für k ∈ {0, 1, 2, . . . , n} konstruieren wir nun reguläre Ausdrücke Lk
p,q für allep, q ∈ Q.
Reguläre Ausdrücke für L0p,q , für alle p,q ∈ Q:
L0p,q ist die Menge aller Worte, die Zustand q von Zustand p aus
ohne Zwischenzustände erreichen. Also:I Falls p 6= q, so ist L0
p,q = {a ∈ Σ : δ(p, a) = q}
I Falls p = q, so ist L0p,q = {ε} ∪ {a ∈ Σ : δ(p, a) = q}
Also ist L0p,q eine endliche Menge von Buchstaben bzw. dem leeren Wort.
Sie wird daher von einem regulären Ausdruck R0p,q beschrieben (durch das
Symbol ∅ oder durch Verknüpfen der Buchstaben bzw. des leeren Wortes mitdem “|”-Operator).
Als nächstes konstruieren wir für jedes k > 1 reguläre Ausdrücke für die Mengen Lkp,q ,
wobei wir annehmen, dass wir reguläre Ausdrücke für Lk−1r,s schon kennen
(für alle p, q, r , s ∈ Q).
Reguläre Ausdrücke 109 / 124
Reguläre Sprachen haben reguläre Ausdrücke (3/3)Reguläre Ausdrücke für Lk
p,q:
Lkp,q ist die Menge aller Worte w , die Zustand q von Zustand p aus mit
Zwischenzuständen aus der Menge {1, . . . , k} erreichen.I Entweder benötigt ein Wort w nur Zwischenzustände in der Menge{1, . . . , k−1}, d.h. es liegt in Lk−1
p,q ,
I oder Zustand k ist Zwischenzustand.F Dann führt die Berechnung von p nach k ,F „pendelt“ zwischen k und kF und erreicht dann q von Zustand k aus.
I Wie oft kann Zustand k angenommen werden? Keine Ahnung!Macht aber nichts, denn
Lkp,q = Lk−1
p,q ∪ Lkp,k
(Lk−1
k,k
)∗Lk−1
k,q .
Daher wird Lkp,q durch den folgenden regulären Ausdruck beschrieben:
Rkp,q := Rk−1
p,q | Rk−1p,k ·
(Rk−1
k,k
)∗· Rk−1
k,q .
Reguläre Ausdrücke 110 / 124
Beispiel: vollständiger DFA =⇒ regulärer Ausdruck
Gegeben sei der vollständige DFA A
— siehe Tafel —
Aufgabe: Konstruiere einen regulären Ausdruck R mit L(R) = L(A).
Systematisches Vorgehen entlang des Beweises, dass reguläre Sprachenvon regulären Ausdrücken beschrieben werden:
I Konstruiere die regulären Ausdrücke Rkp,q für k ∈ {0,1,2} und alle
p,q ∈ {1,2,3},
I konstruiere dann R31,2 und R3
1,3 und setze R := R31,2 | R3
1,3.
Rest: Siehe Tafel (bzw. [Hopcroft Ullman, Example 2.12]).
Reguläre Ausdrücke 111 / 124