Gliederung. Einleitung und Grundbegriffe. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.. Chomsky-Grammatiken 2.2. Reguläre Sprachen Reguläre Grammatiken, ND-Automaten Abgeschlossenheit Reguläre Ausdrücke 2.3. Kontextfreie Sprachen 2/3, Folie 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Die regulären Sprachen über einem Alphabet sind abgeschlossen gegenüber Vereinigung, Durchschnitt, Differenz und Komplement: Es seien Σ das zugrunde liegende Alphabet und L, L 2 Σ* reguläre Sprachen. Dann gilt: Die Sprache L L 2 ist eine reguläre Sprache. Die Sprache L L 2 ist eine reguläre Sprache. Die Sprache L \ L 2 ist eine reguläre Sprache. Die Sprache co(l ), d.h. Σ* \ L, ist eine reguläre Sprache. Diese Zusammenhänge kann man nutzen, um Grammatiken bzw. endliche Automaten für komplexere reguläre Sprachen zu konstruieren. 2/3, Folie 2 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Einfache Zusammenhänge Die sogenannten De Morganschen Gesetze der Mengenlehre liefern Beziehungen zwischen den Operationen Durchschnitt, Differenz und Komplement bzw. Vereinigung und damit auch zwischen Abgeschlossenheitseigenschaften: Wegen folgt Abgeschl. geg. aus Abgeschlossenheit gegen L L 2 =co(co(l ) co(l 2 )) Vereinigung Komplement und Durchschnitt L L 2 =co(co(l ) co(l 2 )) Durchschnitt Komplement und Vereinigung L \ L 2 = L co(l 2 ) Differenz Komplement und Durchschnitt co(l ) = Σ* \ L Komplement Differenz (Σ* ist regulär.) usw. Daher brauchen wir uns hier auch nur z.b. um Komplement und Durchschnitt zu kümmern. 2/3, Folie 3 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Anmerkungen Beim Nachweis der Abgeschlossenheit gegen Durchschnitt und Komplement nutzen wir aus, dass es zu jeder regulären Sprache L einen (deterministischen) endlichen Automaten A mit L(A) = L gibt Bezüglich des Durchschnitts ist deshalb nur zu zeigen, dass für alle (deterministischen) endlichen Automaten A und A 2 gilt: Es gibt einen (deterministischen) endlichen Automaten A für die Sprache L(A ) L(A 2 ). Bezüglich des Komplements ist deshalb nur zu zeigen, dass für alle (deterministischen) endlichen Automaten A gilt: Es gibt einen (deterministischen) endlichen Automaten A für die Sprache Σ* \ L(A ). 2/3, Folie 4 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Einschub: Vereinigung regulärer Sprachen auch direkt berechenbar, ohne den Umweg über Durchschnitt und Komplement nämlich (besonders leicht) anhand der Grammatiken. Ein Beispiel: Es sei Σ = {, }. Es sei L = { v w v, w Σ* } Es sei L 2 = { w Σ* w enthält gerade viele en und w > } S S A A S B B B B S 2 A 2 B 2 A 2 B 2 A 2 B 2 A 2 B 2 Eine reguläre Grammatik für L L 2 enthält alle obigen Regeln und die folgenden neuen Regeln, wobei S das Startsymbol ist S S A S A 2 B 2 allgemeines Rezept überlegen 2/3, Folie 5 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Durchschnitt ( Beispiel ) Es sei Σ = {, }. Es sei L = { v w v, w Σ* }. Es sei L 2 = { v w v, w Σ* }. Frage: Ist die Sprache L L 2 auch regulär? ( L L 2 enthält alle Wörter aus Σ*, die sowohl das Teilwort als auch das Teilwort enthalten. ) Operation: Durchschnitt ( Automaten-orientierter Ansatz) Konstruiere einen endlichen Automaten A mit L(A ) = L. Konstruiere einen endlichen Automaten A 2 mit L(A 2 ) = L 2. Benutze A und A 2, um einen endlichen Automaten A mit L(A ) = L L 2 zu konstruieren. Idee : A soll nachvollziehen, wie A und A 2 gleichzeitig eine Zeichenfolge abarbeiten. Idee 2: Ein Wort liegt genau dann in L L 2, wenn es von A und A 2 akzeptiert wird. 2/3, Folie 6 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Durchschnitt ( Beispiel (weiter) ) A = [Z,Σ,a,F,δ ] mit L(A ) = L A = [Z,Σ,z,F,δ ] mit L(A ) = L L 2 a a a 2 A 2 = [Z 2,Σ,b,F 2,δ 2 ] mit L(A 2 ) = L 2 b b b 2,, Z \ Σ <a,b > <a,b > <a,b > <a,b > <a,b > <a,b 2 > <a,b 2 > <a,,b 2 > <a,b 2 > <a,b > <a 2,b > <a,b > <a,b > <a 2,b > <a,b 2 > <a,b 2 > <a 2,b 2 > <a,b 2 > <a 2,b > <a 2,b > <a 2,b > <a 2,b > <a 2,b > <a 2,b 2 > <a 2,b 2 > <a 2,b 2 > <a 2,b 2 > 2/3, Folie 7 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Durchschnitt ( Beispiel - Erreichbarkeit spart Arbeit ) A = [Z,Σ,z,F,δ ] mit L(A ) = L L 2 Z \ Σ <a,b > <a,b > <a,b > <a,b > <a,b > <a,b 2 > <a,b 2 > <a,,b 2 > <a,b 2 > <a,b > <a 2,b > <a,b > <a,b > <a 2,b > <a,b 2 > <a,b 2 > <a 2,b 2 > <a,b 2 > <a,b > <a,b > <a,b > <a,b 2 > <a 2,b > <a 2,b > <a 2,b > <a 2,b > <a 2,b > <a 2,b > <a 2,b 2 > <a 2,b 2 > <a 2,b 2 > <a 2,b 2 > <a 2,b 2 >, Hinweis: Nicht vom Anfangszustand aus erreichbare Zustände dürfen fehlen. 2/3, Folie 8 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Durchschnitt ( allgemein ) Es sei A = [Z,Σ,z,F,δ ] und A 2 = [Z 2,Σ,y,F 2,δ 2 ] deterministische endliche Automaten mit L(A ) = L und L(A 2 ) = L 2. Konstruiere den zu A und A 2 gehörenden Produktautomaten A = [Z,Σ,z,F,δ ] mit L(A ) = L L 2 wie folgt: Setze Z := Z Z 2 Setze z := (z,y ) Setze F := { (z,y) z F und y F 2 }. Für jedes (z,y) Z und alle a Σ: setze δ ((z,y),a) := <δ (z,a),δ 2 (y,a)>. Wie beim Potenzmengenautomaten umgeht man auch gerne nicht erreichbare Zustände von vornherein 2/3, Folie 9 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Komplement ( Beispiel ) Es sei Σ = {, }. Es sei L = { v w v, w Σ* }, d.h. die Sprache aller Wörter mit Teilwort. Frage: Ist die Sprache co(l ) auch regulär? ( co(l ) enthält alle Wörter aus Σ*, in denen das Teilwort nicht vorkommt. ) Operation: Komplement ( Idee ) Konstruiere einen endlichen Automaten A mit L(A) = L. Benutze A, um einen endlichen Automaten A mit L(A ) = co(l ) zu konstruieren. Idee : A soll genau dann akzeptieren, wenn A nicht akzeptiert, d.h. wenn man sich gewissermaßen in A bewegt, aber genau in den Zuständen außerhalb F (von A) akzeptiert. 2/3, Folie 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Komplement ( Beispiel (weiter) ) Es sei Σ = {, }. Es sei L = { v w v, w Σ* }. A = [Z,Σ,z,F,δ] mit L(A) = L A = [Z,Σ,z,F,δ] mit L(A ) = co(l ),, z z z 2 z z z 2 F = Z \ F erledigt!... A nennt man den Komplementautomaten von A 2/3, Folie 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Komplement (allgemein) Sei A = [Z,Σ,z,F,δ] ein (deterministischer) endlicher Automat für L. Definiere den zu A gehörenden Komplementautomaten A = [Z,Σ,z,F,δ] wie folgt: Setze F := { z z F } = Z \ F Da die Mengen K A (z) eine Klasseneinteilung auf Σ* definieren und L(A) die Vereinigung aller Mengen K A (z) mit z F ist, folgt sofort, dass L(A ) = Σ* \ L(A) gilt. 2/3, Folie 2 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Differenz ( Beispiel für Konstruktion in 2 bekannten Schritten) Es sei Σ = {, }. Es sei L = { v w v, w Σ* }. Es sei L 2 = { v w v, w Σ* }. Frage: Ist die Sprache L \ L 2 auch regulär? ( L \ L 2 enthält alle Wörter aus Σ*, die das Teilwort enthalten und das Teilwort nicht enthalten. ) Operation: Differenz ( Idee ) Konstruiere einen endlichen Automaten A mit L(A ) = L. Konstruiere einen endlichen Automaten A 2 mit L(A 2 ) = L 2. Benutze A 2 um einen endlichen Automaten A 3 mit L(A 3 ) = co(l 2 ) zu konstruieren. Benutze A und A 3, um einen endlichen Automaten A mit L(A ) = L co(l 2 ) = L \ L 2 zu konstruieren. 2/3, Folie 3 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Differenz ( Beispiel (cont.) ) A = [Z,Σ,a,F,δ ] mit L(A ) = L, a a a 2 A 2 = [Z 2,Σ,b,F 2,δ 2 ] mit L(A 2 ) = L 2 A 3 = [Z 3,Σ,b,F 3,δ 3 ] mit L(A 3 ) = co(l 2 ),, b b b 2 b b b 2 für Komplement 2/3, Folie 4 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Differenz ( Beispiel (cont.) ) A = [Z,Σ,a,F,δ ] mit L(A ) = L A = [Z,Σ,z,F,δ ] mit L(A ) = L co(l 2 ) a a a 2, A 3 = [Z 3,Σ,b,F 3,δ 3 ] mit L(A 3 ) = co(l 2 ) b b b 2 für Durchschnitt, Z /Σ <a,b > <a,b > <a,b > <a,b > <a,b > <a,b 2 > <a,b 2 > <a,,b 2 > <a,b 2 > <a,b > <a 2,b > <a,b > <a,b > <a 2,b > <a,b 2 > <a,b 2 > <a 2,b 2 > <a,b 2 > <a 2,b > <a 2,b > <a 2,b > <a 2,b > <a 2,b > <a 2,b 2 > <a 2,b 2 > <a 2,b 2 > <a 2,b 2 > 2/3, Folie 5 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Differenz ( Beispiel (cont.) ) A = [Z,Σ,z,F,δ ] mit L(A ) = L co(l 2 ) = L \ L 2 Z /Σ <a,b > <a,b > <a,b > <a,b > <a,b > <a,b 2 > <a,b 2 > <a,,b 2 > <a,b 2 > <a,b > <a,b > <a,b > <a,b > <a 2,b > <a,b > <a,b > <a 2,b > <a,b 2 > <a,b 2 > <a 2,b 2 > <a,b 2 > <a,b 2 > <a 2,b > <a 2,b > <a 2,b > <a 2,b > <a 2,b > <a 2,b > <a 2,b 2 > <a 2,b 2 > <a 2,b 2 > <a 2,b 2 > <a 2,b 2 >, Hinweis: Nicht vom Anfangszustand aus erreichbare Zustände dürfen fehlen. 2/3, Folie 6 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Operation: Differenz ( Beispiel (cont.) ) A = [Z,Σ,z,F,δ ] mit L(A ) = L co(l 2 ) = L \ L 2 <a,b > <a,b > <a,b > <a,b 2 > <a 2,b > c c... minimiert * c 3 c 2 <a 2,b 2 >,, * mittels Klassentabellen-Algorithmus oder direkt Restsprachen K(z) ablesen und ggf. Zustände zusammenlegen: K(a b ) = K(a b 2 ) = K(a b 2 ) = {,}*! 2/3, Folie 7 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Äquivalenzprüfung von Automaten mithilfe von Abgeschlossenheitseigenschaften Die Abgeschlossenheitseigenschaften kann man auch benutzen, um folgende zwei algorithmischen Probleme zu lösen: Eingabe: Ausgabe (): Ausgabe (2): zwei (deterministische) endliche Automaten A und A 2 mit demselben Eingabealphabet Σ Antwort auf die Frage, ob L(A ) L(A 2 ) Antwort auf die Frage, ob A und A 2 äquivalent sind, d.h. dieselbe Sprache akzeptieren. (2) dann ohne Minimalautomaten! (aber nicht unbedingt schneller): Ist () gelöst, dann kann (2) leicht beantwortet werden: A und A 2 sind äquivalent gdw. L(A ) L(A 2 ) und L(A 2 ) L(A ). 2/3, Folie 8 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Äquivalenzprüfung (weiter: L L 2 ) Wegen der De Morgan schen Gesetze gilt für je zwei Sprachen L, L 2 Σ: L L 2 L co(l 2 ) = L \ L 2 = Abgeleitetes (Unter-)Programm Eingabe: zwei (deterministische) endliche Automaten A und A 2 mit demselben Eingabealphabet Σ Ausgabe: Antwort auf die Frage, ob L(A ) L(A 2 ) oder nicht ) Bestimme den zu A 2 gehörenden Komplementautomaten A 2. 2) Bestimme den zu A und A 2 gehörenden Produktautomaten A, d.h. einen Automaten A für L(A ) \ L(A 2 ). 3) Überprüfe, ob es in A einen akzeptierenden Zustand gibt, der vom Startzustand aus erreichbar ist, d.h. ob L(A ) = L(A ) \ L(A 2 ) = ist: falls ja, gib L(A ) L(A 2 ) aus; falls nein, gib L(A ) L(A 2 ) aus. 2/3, Folie 9 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik
Eigenschaften regulärer Sprachen Äquivalenzprüfung ohne Minimalautomaten (Rest: L = L 2 ) Bekanntlich gilt für je zwei Sprachen L, L 2 Σ: L = L 2 L L 2 und L 2 L Abgeleiteter Lösungsalgorithmus Eingabe: zwei (deterministische) endliche Automaten A und A 2 mit demselben Eingabealphabet Σ Ausgabe: Antwort auf die Frage, ob L(A ) = L(A 2 ) gilt ) Überprüfe mit dem vorigen Unterprogramm, ob L(A ) L(A 2 ) gilt 2) Überprüfe mit dem vorigen Unterprogramm, ob L(A 2 ) L(A ) gilt 3) Antworte wie folgt: Falls nachgewiesen wurde, dass L(A ) L(A 2 ) und L(A 2 ) L(A ) gilt, so gib L(A ) = L(A 2 ) aus, andernfalls gib L(A ) L(A 2 ) aus. 2/3, Folie 2 28 Prof. Steffen Lange, Dr. Bernd Baumgarten - h_da/fbi - Theoretische Informatik