Unterlagen zur Veranstaltung Einführung in die INFORMATIK IV Universität zu Lübeck SS 2004 Prof. Dr. R. Reischuk Institut für Theoretische Informatik April 2004 2 Informatik IV, UzL SS2004 Empfohlene Lehrbücher J. Hopcroft, R. Motwani, J. Ullman, Introduction to Automata Theory, Languages and Computation, Addison Wesley, 2. Edition 2001, deutsche Übersetzung: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie, Addison Wesley 1994 M. Harrison, Introduction to Formal Language Theory, Addison Wesley 1978 J. Savage, Models of Computation, Addison Wesley 1998 U. Schöning, Logik für Informatiker, Spektrum Verlag 1995 R. Reischuk, Komplexitätstheorie Band I: Grundlagen, Teubner 1998 P. Sander, W. Stucky, R. Herschel, Automaten, Sprachen, Berechenbarkeit, Teubner 1992 T. Ottmann, P. Widmayer, Algorithmen und Datenstrukturen, Spektrum 2002 T. Cormen, C. Leiserson, R. Rivest, Introduction to Algorithms, MIT Press 1990 R. Reischuk, ITCS 0 3 Grundlagen der Logik 0.1 Aussagenlogik Wir wiederholen zunächst kurz einige wichtige Begriffe aus der Logik. Definition 0.1 Aussagenlogische Formeln Sei P = {p1 , p2 , p3 , . . .} eine Menge von atomaren Prädikaten und ∧ , ∨ und ¬ binäre bzw. unäre Operatoren zur Verknüpfung von Prädikaten. Die Menge der aussagenlogischen Formeln wird induktiv definiert durch: • Jedes atomare Prädikat pi ∈ P ist eine aussagenlogische Formel. • Für alle Formeln F und G sind auch (F ∧ G) und (F ∨ G) Formeln. • Für jede Formel F ist auch (¬F ) eine Formel. Ist p ein atomares Prädikat, so heißen p und ¬p Literale. Für ¬p verwenden wir im folgenden auch die Notation p0 ; entsprechend sei dann p1 := p . Für eine Teilmenge D ⊆ P bezeichnet F (D) die Menge der Formeln über den Prädikaten in D . Ein Monom ist eine ∧ -Verknüfung von Literalen M = pa1 1 ∧ . . . ∧ pa` ` , eine Klausel eine ∨ -Verknüfung K = pa1 1 ∨ . . . ∨ pa` ` . Die Anzahl ` von Literalen nennen wir auch die Länge des Monoms bzw. der Klausel. Eine Formel ist in konjunktiver Normalform (CNF), falls sie aus einer ∧ -Verknüfung von Klauseln besteht. Haben alle Klauseln die Länge ` , so bezeichnet man dies als ` -CNF. Die disjunktive Normalform (DNF) ist eine ∨ -Verknüfung von Monomen. 2 Wie wir gleich sehen werden, sind die Operatoren ∨ und ∧ assoziativ, d.h. auf eine Klammerung der Literale in einem Monom oder einer Klausel kann verzichtet werden. Wir verwenden folgende Abkürzungen für spezielle Verknüpfungen von Formeln: • F → G steht für (¬F ) ∨ G , • F ↔ G steht für (F ∧ G) ∨ (¬F ∧ ¬G) . • F steht für (F ∧ ¬G) ∨ (¬F ∧ G) . ⊕ G Definition 0.2 Semantik aussagenlogischer Formeln Die Elemente der Menge {0, 1} heißen Wahrheitswerte, auch mit false und true bezeichnet. Für D ⊆ P sei Φ : D → {0, 1} eine Belegung der atomaren Prädikate mit Wahrheitswerten. Wir erweitern Φ zu einer Funktion Φ̂ auf F(D) durch: • Für jede atomare Formel F ∈ D sei Φ̂(F ) := Φ(F ) . • Φ̂(¬F ) := 1 0 falls sonst. Φ̂(F ) = 0 , • 1 0 falls sonst. Φ̂(F ) = 1 und Φ̂(G) = 1 , 1 0 falls sonst. Φ̂(F ) = 1 oder Φ̂(G) = 1 , Φ̂(F ∧ G) := • Φ̂(F ∨ G) := Wir vereinbaren noch, daß die leere Klausel t , d.h. eine Klausel der Länge 0 , den Wahrheitswert false besitzt, ein leeres Monom dagegen den Wahrheitswert true. 2 4 Informatik IV, UzL SS2004 Da Φ̂ eine Erweiterung von Φ ist, schreiben wir von nun an immer Φ (die Unterscheidung war nur zum Zweck einer sauberen formalen Definition notwendig). Wir betrachten hier nur die 2-wertige StandardLogik. Darüber hinaus sind auch andere Modelle denkbar, etwa eine 3-wertige Logik mit dem zusätzlichen Wert vielleicht oder noch weitere Verallgemeinerungen wie etwa die Fuzzy-Logik, bei der jedes Prädikat einen unterschiedlichen Grad von Wahrheit besitzen kann. Definition 0.3 Modell, erfüllbar, allgemeingültig, unerfüllbar Eine Belegung Φ mit Φ(F ) = 1 heißt erfüllende Belegung oder Modell für F , Notation hierfür: Φ |= F . Eine Formel F heißt erfüllbar, wenn F ein Modell besitzt. F heißt allgemeingültig oder Tautologie, wenn jede Belegung ein Modell für F ist, Notation: |= F . F heißt unerfüllbar, wenn es kein Modell für F gibt. 2 Semantische Implikation und Äquivalenz logischer Formeln ist folgendermaßen definiert. Definition 0.4 Logische Implikation und Äquivalenz Eine aussagenlogische Formel F impliziert eine Formel G , man sagt dann auch G folgt logisch aus F , wenn jedes Modell für F auch ein Modell für G ist; hierfür verwenden wir die Notation F =⇒ G . F und G heißen logisch äquivalent oder auch semantisch äquivalent, wenn für alle Belegungen Φ gilt: Φ(F ) = Φ(G) , Notation: F ≡G oder auch F ⇐⇒ G . 2 Im folgenden sind die wichtigsten Regeln aufgelistet, wie man Boolesche Formeln F, G, H, T, U in semantisch äquivalente transformieren kann. Definition 0.5 Rechenregeln der Aussagenlogik (F ∧ F ) ≡ F (F ∨ F ) ≡ F Idempotenz (F ∧ G) ≡ (G ∧ F ) (F ∨ G) ≡ (G ∨ F ) Kommutativität ((F ∧ G) ∧ H) ≡ (F ∧ (G ∧ H)) ((F ∨ G) ∨ H) ≡ (F ∨ (G ∨ H)) Assoziativität (F ∧ (F ∨ G)) ≡ F (F ∨ (F ∧ G)) ≡ F Absorption (F ∧ (G ∨ H)) ≡ ((F ∧ G) ∨ (F ∧ H)) (F ∨ (G ∧ H)) ≡ ((F ∨ G) ∧ (F ∨ H)) Distributivität ¬ (¬F ) ≡ F ¬(F ∧ G) ≡ (¬F ∨ ¬G) ¬(F ∨ G) ≡ (¬F ∧ ¬G) Doppelnegation deMorgansche Regeln Ist T eine Tautologie und U eine unerfüllbare Formel, so gelten außerdem: R. Reischuk, ITCS 5 (T ∨ G) ≡ T (T ∧ G) ≡ G (F ∨ ¬F ) ≡ true Tautologieregeln (U ∨ G) ≡ G, (U ∧ G) ≡ U , (F ∧ ¬F ) ≡ false Unerfüllbarkeitsregeln Beispiel 0.1 ((A ∨ (B ∨ C)) ∧ (C ∨ ¬A)) ≡ ((B ∧ ¬A) ∨ C) Die linke Seite läßt sich auf folgende Weise in die rechte transformieren: ((A ∨ (B ∨ C)) ∧ (C ∨ ¬A)) ≡ (((A ∨ B) ∨ C) ∧ (C ∨ ¬A)) ≡ ((C ∨ (A ∨ B)) ∧ (C ∨ ¬A)) ≡ (C ∨ ((A ∨ B) ∧ ¬A)) ≡ (C ∨ (¬A ∧ (A ∨ B)) ≡ (C ∨ ((¬A ∧ A) ∨ (¬A ∧ B)) ≡ (C ∨ (¬A ∧ B) ≡ (C ∨ (B ∧ ¬A) ≡ ((B ∧ ¬A) ∨ C). 0.2 Prädikatenlogik Die Aussagenlogik benutzt nur atomare Prädikate, die durch Boolesche Operatoren verknüpft werden können. Bei der Frage der Erfüllbarkeit einer solchen Formel haben wir die atomaren Prädikate als Boolesche Variable interpretiert. Die Prädikatenlogik 1. Stufe, eine Verallgemeinerung der Aussagenlogik, verwendet zusätzlich Variable, die Werte aus einem beliebigen Universum U (z.B. IN oder IR ) annehmen können und über die quantifiziert werden kann. Zusätzlich können wir Funktionen über U verwenden. Definition 0.6 Syntax Gegeben sei ein ein Alphabet Σ , welches in die folgenden paarweise disjunkten Mengen von Symbolen (auch Zeichen genannt) unterteilt ist: • eine Menge V = { u, v, w, x, y, . . . } von Variablen, • eine Menge F = { f, g, h, . . . } von Funktionssymbolen, • eine Menge Π = { P, Q, R, . . . } von Prädikatssymbolen, • Konnektoren ¬, ∧ , ∨ , • Quantoren ∀, ∃ , • Hilfszeichen (, ), [, ] . Eine Signatur ist eine Abbildung α : F ∪ Π −→ IN , die den Funktions- und Prädikatssymbolen des Alphabets Σ eine Stelligkeit (die Anzahl der Argumente) zuordnet. Für n ∈ IN bezeichnet • F n := { f ∈ F | α(f ) = n } die Menge der n -stelligen Funktionszeichen und • Π n := { p ∈ Π | α(p) = n } die Menge der n -stelligen Prädikatszeichen. Ein nullstelliges Prädikatszeichen p ∈ Π0 heißt auch Aussagenvariable, während nullstellige Funktionssymbole Konstanten genannt werden, die wir mit a, b, c, . . . bezeichnen. Die Menge T der Terme über V ∪ F ist induktiv definiert durch: 6 Informatik IV, UzL SS2004 • Jedes Element aus V ∪ F 0 ist ein Term. • Für f ∈ F n mit n ≥ 1 und Terme t1 , . . . , tn ist auch f (t1 , . . . , tn ) ein Term. Für p ∈ Πn und Terme t1 , . . . , tn heißt p(t1 , . . . , tn ) atomare Formel oder Atom. Die Menge der prädikatenlogische Formel über Σ , PFΣ wird induktiv wie folgt konstruiert: • Jede atomare Formel p gehört zu PFΣ . Die Variablen, die in p vorkommen, heißen freie Variablen. • Sind F, G prädikatenlogische Formeln und x eine Variable, dann sind auch (F ∧ G) , (F ∨ G) , (¬F ) sowie (∀x F ) und (∃x F ) Formeln. • Ist G = . . . (Q x H) . . . eine prädikatenlogische Formel mit einer quantifizierten Teilformel (Q x H) , wobei Q ∈ {∃, ∀} , dann heißt der Bereich von H , der verbleibt, wenn Subformeln der Gestalt (Q0 x H 0 ) aus H entfernt werden, der Bindungsbereich von Qx . Eine Variable x heißt gebunden, wenn sie im Bindungsbereich eines Quantors liegt, andernfalls frei. Eine prädikatenlogische Formel ohne freie Variable heißt geschlossen. 2 Betrachten wir beispielsweise die Formel ∀ x[ F (x) ∨ ((∃ yG(y)) ∧ (∃ z H(x, y, z))) ] , so ist die einzig freie Variable das 2. Auftreten von y in der Teilformel H . Definition 0.7 Semantik Eine Struktur ist ein Paar A = ( UA , IA ) , wobei UA eine beliebige nichtleere Menge ist, die die Grundmenge von A oder das Universum genannt wird. IA beschreibt eine Abbildung (Interpretation) definiert auf einer Teilmenge V 0 ∪ Π 0 ∪ F 0 ⊆ V ∪ Π ∪ F , die • jedem k -stelligen Prädikatssymbol p ∈ Π 0 ein k -stelliges Prädikat pA = IA (p) über UA , • jedem k -stelligen Funktionssymbol f ∈ F 0 eine k -stellige Funktion f A = IA (f ) auf UA und • jeder Variablen x ∈ V 0 ein Element xA = IA (x) aus der Grundmenge UA zuordnet. Sei F eine Formel und A eine zu F passende Struktur. Für jeden Term t , der in F vorkommt, ist der Wert A(t) von t in der Struktur A wie folgt definiert: • Falls t eine Variable ist, so sei A(t) := xA . • Falls t die Form t = f (t1 , . . . , tk ) hat mit Termen t1 , . . . , tk und einem k -stelliges Funktionssymbol f , so ist A(t) := f A (A(t1 ), . . . , A(tk )) . Damit können wir den Wahrheitswert A(F ) von F unter der Struktur A wie folgt definieren: • Falls F die Form F = p(t1 , . . . , tk ) hat für Terme t1 , . . . , tk und p ein k -stelliges Funktionssymbol, so ist 1 falls pA (A(t1 ), . . . , A(tk )) = 1 , A(F ) := 0 sonst. • Falls F die Form ¬G , (G ∧ H) oder (G ∨ H) besitzt, so verfahren wir analog zur Semantik der Aussagenlogik. • Falls F = ∀x G , so sei A(F ) := 1 0 falls für alle a ∈ UA gilt: A(G[x:=a] ) = 1 , sonst, . wobei G[x:=a] aus G entsteht, indem alle Vorkommnisse von x im Bindungsbereich von ∀ x durch die Konstante a ersetzt werden. R. Reischuk, ITCS 7 • Falls F = ∃x G , so sei A(F ) = 1 falls es ein a ∈ UA gibt mit: A(G[x:=a] ) = 1 , 0 sonst. . Kommt eine Variable x nicht frei in der Formel G vor, so macht eine Quantifizierung ∀x G oder ∃x G offensichtlich keinen Sinn. Man kann das Problem des Bindungsbereichs eines Quantors dadurch entschärfen, daß verlangt wird, daß alle Vorkommnisse von x in G frei sind, mit anderen Worten, x darf innerhalb von G an keiner Stelle bereits durch Quantoren gebunden sein. Dies kann gegebenenfalls durch Umbennung der Variablen erreicht werden. Formeln, bei denen jedes Variablensymbol höchstens einmal mit einem Quantor kombiniert wird, sind leichter lesbar. Eine besonders einfache Darstellung ist die Pränex-Normalform, bei der alle Quantoren am Anfang der Formel stehen. Allerdings würden diese Einschränkungen die Definition der Menge aller prädikatenlogischer Formeln verkomplizieren. Beispiel 0.2 Äquivalenzen in der Prädikatenlogik Es seien F und G beliebige prädikatenlogische Formeln. Dann sind unter anderem folgende Umformungen zulässig. 1. Alle für die Aussagenlogik bewiesenen Äquivalenzen gelten auch in der Prädikatenlogik. 2. ¬(∀x F ) ≡ ∃x (¬F ) ¬(∃x F ) ≡ ∀x (¬F ) 3. Falls x in G nicht frei vorkommt, gelten die Umformungen: 4. 5. (∀x F ) ∧ G ≡ ∀x (F ∧ G) (∀x F ) ∨ G ≡ ∀x (F ∨ G) (∃x F ) ∧ G ≡ ∃x (F ∧ G) (∃x F ) ∨ G ≡ ∃x (F ∨ G) (∀x F ) ∧ (∀x G) ≡ ∀x (F ∧ G) (∃x F ) ∨ (∃x G) ≡ ∃x (F ∨ G) ∀x (∀y F ) ≡ ∀y (∀x F ) ∃x (∃y F ) ≡ ∃y (∃x F ) Quantoren haben höhere Priorität als die Booleschen Operatoren, so daß man oftmals auf Klammern verzichten kann. Bei gleichen Quantoren, die aufeinanerfolgen, wird auch die verkürzte Schreibweise Q x y z F anstelle von Q x Q y Q z F = Q x (Q y (Q z F )) verwendet. Folgende Transformationen sind im allgemeinen nicht korrekt: (∃x F ) ∧ (∃x G) 6≡ ∃x (F ∧ G) ∃x (∀y F ) 6≡ ∀y (∃x F ) Von Interesse sind auch Einschränkungen sowie Erweiterungen dieses prädikatenlogischen Formalismus. • Die Monadische Prädikatenlogik verwendet nur 1-stellige Prädikatssymbole und keinerler Funktionssymbole. • Die Prädikatenlogik der 2. Stufe erlaubt eine Quantifizierung auch über Prädikats- und Funktionssymbole. 8 1 Informatik IV, UzL SS2004 Formale Sprachen und Automaten Wir wollen nun als Grundlage für die Beschreibung von Ein- und Ausgaben beliebige endliche Alphabete betrachten. Grundlage ist also ein endliches Alphabet Σ , etwa das binäre; Datenelemente werden dann als eine Folge von Zeichen aus Σ dargestellt. 1.1 Notation Eine endliche Menge Σ von Symbolen nennt man ein Alphabet. Mit β bezeichnen wir ein besonderes Symbol, das Blanksymbol. Ein String (Zeichenkette, Wort) über einem Alphabet Σ ist eine Folge X = x1 x2 . . . xn von Elementen aus Σ ; n nennen wir die Länge von X , welche wir auch mit |X| notieren. λ bezeichne den leeren String der Länge 0. Eine Teilfolge Y = x1 x2 . . . xm mit m ≤ n heißt Präfix von X . Mit Σ∗ , Σn und Σ≤n seien die Mengen der endlichen Strings bzw. der Länge n bzw. der Länge höchstens n bezeichnet. Eine Teilmenge von Σ∗ heißt Sprache (über Σ ). Sind v, w Strings, v = v1 . . . vn und w = w1 . . . wm , so bezeichne vw := v1 . . . vn w1 . . . wm den String, der durch Aneinanderhängen (Konkatenation) der beiden Strings entsteht. Für Sprachen L und L1 , L2 sei ihr Produkt definiert als L1 ◦ L2 := {vw | v ∈ L1 , w ∈ L2 }. Oftmals verzichtet man darauf, den Produktoperator ◦ explizit hinzuschreiben, und notiert das Produkt als L1 L2 . L∗ := {v (1) . . . v (k) | k ∈ IN, v (i) ∈ L} bezeichnet die Menge aller Worte, die sich durch Aneinanderhängen endlich vieler Worte aus L bilden lassen, Sternoperation oder auch der Kleensche Abschluß genannt. v rev := vn . . . v1 bezeichne das Spiegelbild von v und Lrev := {wrev | w ∈ L} . Um Manipulationen von Zeichenketten durchzuführen – man verwendet in diesem Zusammenhang auch den Begriff Termersetzung, erweisen sich Rechnermodelle wie die Turing Maschine (TM), die wir später noch genauer betrachten werden, als ein sehr gut geeignetes Modell. Im folgenden sollen zunächstVereinfachungen von TM, die endlichen Automaten betrachtet und deren Berechnungsfähigkeiten untersucht werden. Ein anderer Formalismus, um Zeichenketten zu generieren, basiert auf Grammatiken, mit denen wir beginnen wollen. Der Linguist Noam Chomsky hat in Anlehnung an natürliche Sprachen und ihre Grammatiken den Begriff der formalen Grammatik entwickelt. Formale Grammatiken bilden die Grundlage beim Entwurf und der Syntaxanalyse höherer Programmiersprachen. 1.2 Sprachen und Grammatiken Definition 1.1 Eine formale Grammatik G wird beschrieben durch ein Tupel (Σ, ΣT , σ0 , Π) . Dabei bezeichnet Σ ein Alphabet und ΣT ⊆ Σ eine Teilmenge von Terminalsymbolen. ΣN := Σ \ ΣT bildet die Menge der Nichtterminalsymbole, und σ0 ∈ ΣN ist ein ausgezeichnetes Element, das Startsymbol. Schließlich ist Π eine endliche Menge von Ableitungsregeln (Produktionen) ϕ1 → ϕ 2 , R. Reischuk, ITCS 9 wobei die ϕi Strings über dem Alphabet Σ sind und ϕ1 mindestens ein Nichtterminalsymbol enthält, d.h. ϕ1 ∈ Σ∗ ΣN Σ∗ und ϕ2 ∈ Σ∗ . Die Ableitungsregeln erzeugen eine Relation ` auf Σ∗ × Σ∗ durch ψ1 ` ψ2 falls ψi = a ϕi b mit a, ϕi , b ∈ Σ∗ und ϕ1 → ϕ2 ∈ Π . `∗ sei der transitive Abschluß dieser Relation. Dann heißt L(G) := {X | X ∈ Σ∗T , σ0 `∗ X} die durch die Grammatik G erzeugte formale Sprache. Die Strings ψ ∈ Σ∗ mit σ0 `∗ ψ bilden die Satzformen von G . Um zwischen Terminal- und Nichtterminalsymbolen unterscheiden zu können, werden wir im folgenden Nichtterminale in der Regel mit großen Buchstaben A, B, C, D, . . . aus dem Beginn des Alphabetes bezeichnen, Terminale dagegen mit kleinen Buchstaben a, b, c, . . . . Für Strings verwenden wir in der Regel griechische Buchstaben. Taucht auf der linken Seite der Produktionen ein String ϕ1 mehrfach auf ( ϕ1 → ϕ2 und ϕ1 → ϕ02 , ϕ1 → . . . ), so notieren wir dies auch in kompakterer Form ϕ1 → ϕ2 | ϕ02 | . . . . ϕ1 kann alternativ durch den String ϕ2 , durch ϕ02 oder . . . ersetzt werden. Beispiel 1.1 Die Grammatik G1 mit Terminalalphabet ΣT = {a, b} , dem Startsymbol σ0 als einzigem Nichtterminal und Produktionen σ0 → aσ0 b | λ erzeugt alle Worte der Form an bn mit n ∈ IN . Die Grammatik G2 mit Produktionen σ0 → aσ0 a | bσ0 b | a | b | λ erzeugt die Sprache der Palindrome, d.h. alle Worte w über dem Alphabet {a, b} mit der Eigenschaft wrev = w . Palindrome gerader Länge besitzen eine Faktorisierung X = u urev für einen geeigneten Präfix u . Von ähnlicher Struktur ist die Sprache der Quadrate, Strings der Form X = u u , auch COPYSprache genannt. Die Grammatik G3 zur Erzeugung dieser Sprache verwendet an zusätzlichen Nichtterminalen die Symbole Na , Nb und besteht aus folgenden Produktionen, wobei x, y ∈ {a, b} : σ0 Nx y Nx σ0 → x N x σ0 | λ , → y Nx , → σ0 x . Die Grammatiken G1 und G2 sind sehr einfach, da wir als einziges Nichtterminal das Startysmbol verwenden und nur dies allein auf der linken Seite einer Ableitung erscheint. Derartig einfache Produktionen genügen für viele formale Sprachen wie beispielsweise die COPY-Sprache nicht. Man kann jedoch die Ableitungsregeln ϕ1 → ϕ2 vereinfachen und auf gewisse Normalformen beschränken: i) ϕ1 ∈ Σ+ N , d.h. nur Nichtterminale dürfen ersetzt werden – man nennt dies auch eine Grammatik vom Typ 0, ii) ϕ1 = γAδ und ϕ2 = γuδ , wobei γ, δ, u ∈ Σ∗ und A ∈ ΣN , die kontextsensitive Normalform. Der Name im Fall β) rührt daher, daß das Nichtterminalsymbol A im Kontext γ δ durch den String u ersetzt werden kann. Beide Normalformen stellen keine Einschränkung dar, da man zu jeder Grammatik G eine äquivalente Grammatik G0 in der entsprechenden Form finden kann, d.h. L(G) = L(G0 ) . Im ersten Fall gelingt dies etwa durch eine Alphabeterweiterung: Wir konstruieren ein neues Alphabet Σ0 , welches für jedes σ ∈ Σ ein Nichtterminal σ 0 enthält sowie alle σ ∈ ΣT . In jeder Produktion werden alle Symbole σ durch ihr Äquivalent σ 0 ersetzt und zusätzlich fügen wir noch die Ableitungsregeln σ 0 → σ für σ ∈ ΣT hinzu. 10 Informatik IV, UzL SS2004 Ableitungen, die nur wenige Nichtterminale A, B, . . . verwenden, klassifiziert man folgendermaßen: verlängernd: A → B C , verkürzend: A B → C , terminierend: A → a mit a ∈ ΣT , löschend: A → λ , kontextverändernd: A B → C D , linkskontextsensitiv: A B → A D , rechtskontextsensitiv: A B → C B . Beispiel 1.2 Die Grammatik G4 ist gegeben durch ΣT = {a, b, c} , ΣN = {σ0 , A, B} und Produktionen σ0 → aσ0 A | aB , BA → bBc , cA → Ac und B → bc . Sie erzeugt alle Worte der Form an bn cn mit n ≥ 1 . Das universelle Ableitungsproblem, auch Wort- oder Membership-Problem genannt, • gegeben eine beliebige Grammatik G vom Typ 0 und einen String X , entscheide, ob X ∈ L(G) , ist algorithmisch nicht lösbar. Definition 1.2 Eine Ableitungsregel ϕ1 → ϕ2 heißt verkürzend, falls |ϕ1 | > |ϕ2 | . Eine formale Grammatik ohne verkürzende Ableitungsregeln heißt nichtverkürzend. Sie heißt kontextsensitiv oder vom Typ 1, falls alle Produktionen die kontextsensitive Normalformbedingung erfüllen und nichtverkürzend sind, d.h. es gilt die obige Restriktion β) mit u 6= λ . Die Menge der Sprachen, die durch kontextsensitive Grammatiken erzeugt werden können, bildet die Klasse der kontextsensitiven Sprachen, CSL , auch Typ-1-Sprachen genannt. Man beachte, daß bei kontextsensitiven Sprachen die Eigenschaft nichtverkürzend die entscheidende ist, nicht die kontextsensitive Normalformbedingung – auf letztere könnte man sogar verzichten. Für Typ 0 Grammatiken, die verkürzende Produktionen besitzen können, ist es wesentlich, daß eine Ableitung für ein Wort w in ihren Zwischenschritten Worte erheblich größerer Länge als |w| erzeugen kann. Ein analoges Phänomen bei TM zeigt sich beim Busy-Beaver-Problem, wo eine TM mit einer fest vorgegebenen Anzahl von Zuständen möglichst viele Einsen auf ihr Band schreiben und dann anhalten soll. Solch eine Maschine wird in der Regel zusätzliche Speicherzellen betreten, auch wenn sie später darauf keine Eins ausgibt. Bei einer nichtverkürzenden Grammatik G über dem Alphabet Σ ist für jedes Wort X ∈ L(G) die Zahl (|Σ| + 1)|X|+1 eine obere Schranke für die Länge einer Ableitung, um X zu erzeugen. Also kann zu gegebenem X durch Testen aller möglichen Ableitungen bis zu dieser Länge in endlich vielen Schritten entschieden werden, ob X ∈ L(G) . Kontextsensitive Sprachen sind somit rekursiv. Schränkt man die Form der Ableitungsregeln noch mehr ein, so erhält man weitere Teilklassen von Sprachen, die insbesondere für die Entwicklung von Programmiersprachen wichtige Bedeutung erlangt haben. Definition 1.3 Eine kontextfreie Grammatik besitzt nur Regeln ϕ1 → ϕ2 der Form ϕ1 ∈ ΣN und ϕ2 ∈ Σ∗ – ein Nichtterminalsymbol ϕ1 kann unabhängig vom Kontext durch den String ϕ2 ersetzt werden. Entsprechend heißen die so erzeugten Sprachen kontextfrei, CF L oder auch vom Typ 2. Kontextfreie Grammatiken können durch Syntaxdiagramme auch grafisch beschrieben werden. Bei nichtkontextfreien Grammatiken kann man oftmals bei einem Wort X ∈ Σ∗ , das sich aus dem Startsymbol ableiten läßt, an verschiedenen Stellen eine Produktionsregel anwenden. Auf das Wort X = abσcd etwa kann sowohl π1 = bσ → bσf als auch π2 = σc → bσgc angewendet werden. Die Reihenfolge ist dabei von Bedeutung, da unter Umständen das Anwenden einer bestimmten Regel verhindert, das eine weitere noch möglich ist. Im obigen Fall schließt π1 das spätere Anwenden von π2 aus, umgekehrt gilt dies nicht. R. Reischuk, ITCS 11 Kontextfreie Grammatiken verhalten sich dagegen kommutativ bezüglich der Anwendung von Regeln. Da nur einzelne Nichtterminale ersetzt werden, spielt es keine Rolle, welches Nichtterminal zuerst ersetzt wird. Wir können daher eine Standardreihenfolge vorgeben etwa derart, daß immer das erste Nichtterminal (von links nach rechts gelesen) auch als erstes ersetzt wird. Auf diese Weise kann man die Ableitung eines Wortes auch in Form eines Ableitungsbaumes beschreiben. Die Standardreihenfolge entspricht dann einer linkslastigen Traversierung des Baumes. Die oben angegebene Grammatik für die Palindrome ist kontextfrei und damit auch die Palindromsprache. Die COPY-Sprache dagegen kann nicht durch kontextfreie Grammatiken erzeugt werden, was wir später noch beweisen werden. Für COPY sind kontextsensitive Grammatiken erforderlich. Den Abschluß dieser Klassifizierung formaler Grammatiken und Sprachen, die nach ihrem Begründer Chomsky-Hierarchie genannt wird, bilden die regulären Grammatiken. Definition 1.4 Eine Grammatik heißt regulär oder auch vom Typ 3, falls jede Ableitung ϕ1 → ϕ2 ∈ Π von der Form ϕ1 ∈ ΣN und ϕ2 ∈ Σ∗T ∪ Σ∗T ΣN ist. Jedes Nichtterminalsymbol erzeugt somit eine Folge von Terminalsymbolen, an dessen Ende ein Nichtterminalsymbol angefügt sein kann. Derartige Grammatiken erzeugen die regulären Sprachen REG . Wir stellen diese Definitionen noch einmal in der folgenden Tabelle gegenüber, wobei auch eine Charakterisierung der Sprachklassen durch Maschinenmodelle aufgeführt ist. Diese Modelle werden im folgenden noch genauer vorgestellt. Hierbei bezeichnet LIN-Space NTM eine nichtdeterministische TM, die nur auf dem Bereich ihres Bandes arbeitet, auf dem die Eingabe steht (der von der NTM benutzte Speicherplatz ist linear in der Länge der Eingabe beschränkt). Ein Pushdown-Automat ist eine NTM, die als Speicher nur einen Stack zur Verfügung hat, während man einen endlichen Automaten als eine TM ohne Speicher ansehen kann. Grammatik Sprachklasse Maschinenmodell (0) (1) (2) (3) RE CSL CFL REG DTM oder NTM LIN-Space NTM ohne Einschränkung, alternativ Typ 0 nichtverkürzend, alternativ kontextsensitiv kontextfrei regulär Pushdown-Automat endlicher Automat Tabelle 1: Die Chomsky-Hierarchie Um das leere Wort abzuleiten, benötigt man eine Produktion der Form ϕ → λ . Will man bei der Definition der kontextsensitiven Sprachen das leere Wort nicht ausschließen, ohne die Sprachklasse ansonsten zu vergrößeren, kann dies etwa dadurch erreicht werden, daß man als einzige nichtverkürzende Ableitung σ0 → λ zuläßt, aber verbietet, daß das Startsymbol σ0 auf der rechten Seite einer Produktion verwandt wird. Darüberhinaus kann man zeigen, daß es bei kontextfreien und regulären Grammatiken keine Einschränkung darstellt, wenn σ0 → λ die einzig zulässige verkürzende Ableitung ist. Daraus folgt dann sofort, daß jede Klasse in den vorhergehenden enthalten ist. Wir werden noch sehen, daß diese Inklusionen echt sind: REG ⊂ CFL ⊂ CSL ⊂ RE . In der Definition der letzten Klasse fällt eine gewisse Asymmetrie auf. Man nennt die Grammatiken vom Typ 3 auch rechts-linear. Falls man die Bedingung ϕ2 = γB mit γ ∈ Σ∗T und B ∈ ΣN durch ϕ2 = Bγ ersetzt, erhält man die links-linearen Grammatiken, die ebenfalls die regulären Sprachen erzeugen. Warum wir zur Definition von regulär die rechts-linearen Grammatiken bevorzugen, wird später noch verständlich werden. 12 Informatik IV, UzL SS2004 Eine lineare Grammatik enthält neben Produktionen A → γ Produktionen der Form A → γBδ , wobei A, B ∈ ΣN und γ, δ ∈ Σ∗T , d.h. auch hier besitzt jedes abgeleitete Wort maximal ein Nichtterminal und damit kann eine Ableitung immer nur an einer eindeutigen Stelle fortgesetzt werden. Das Beispiel der Palindrome zeigt, daß diese bereits durch eine lineare Grammatik erzeugt werden können. Man kann sich jedoch leicht davon überzeugen, daß Palindrome weder durch eine rechts- noch eine linkslineare Grammatik erzeugt werden können, denn für ein Wort w = u urev müßte nach Generierung des Präfixes u in der Form u σ in dem Nichtterminal σ die gesamte Information über u gespeichert sein, ansonsten könnte nicht der einzig zulässige Suffix urev gleicher Länge angefügt werden. Die Sprachklassen der Chomsky-Hierarchie sind unter gewissen einfachen Operationen abgeschlossen. Es sollte unmittelbar klar sein, daß man aus zwei Grammatiken G1 , G2 für Sprachen L1 , L2 eine Grammatik G für die Vereinigung L1 ∪ L2 konstruieren kann. Dazu genügt linearer Zeitaufwand gemessen bezüglich der Größe der Gi , d.h. Mächtigkeit des Alphabetes und Anzahl der Produktionen. Theorem 1.1 Sind G1 , G2 zwei Grammatiken vom Typ τ ∈ [0..3] mit den zugehörigen Sprachen L(G1 ), L(G2 ) , so sind auch L(G1 ) ∪ L(G2 ) , L(G1 ) ◦ L(G2 ) , L(G1 )∗ und Lrev Sprachen dieses Typs. Für die Durchschnittsoperation L(G1 ) ∩ L(G2 ) ist diese Eigenschaft nicht mehr so offensichtlich, für das Komplement L(G1 ) := Σ∗T \ L(G1 ) fraglich. Denn man kann nicht in analoger Weise wie bei der Vereinigung aus G1 und G2 auf simple Weise eine Grammatik für den Durchschnitt generieren. Für die Klasse der Sprachen vom Typ 0 zumindest folgt aus der Äquivalenz mit RE , daß der Abschluß unter Durchschnitt gilt, der unter Komplementbildung dagegen nicht erfüllt ist. Für kontextfreie und reguläre Grammatiken werden wir diese Frage im folgenden genauer untersuchen. Neben dem Membership-Problem gibt es eine Reihe weiterer Entscheidungsprobleme, die man für formale Grammatiken von Interesse sind, unter anderem • Leerheit und Nichttrivialität: die Frage, ob für eine Grammatik G über einem Alphabet Σ die zugehörige Sprache L(G) leer bzw. gleich Σ∗T ist, • Endlichkeit: ob sie nur endlich viele Worte enthält, • das Äquivalenzproblem: gegeben zwei beliebige Grammatiken G1 , G2 , entscheide, ob L(G1 ) = L(G2 ) , • das Inklusionsproblem: L(G1 ) ⊆ L(G2 ) ? • das Disjunktheitsproblem L(G1 ) ∩ L(G2 ) = ∅ ? All diese Probleme sind für Sprachen vom Typ 0 nicht entscheidbar. Es stellt sich die Frage, ob diese zumindest für die eingeschränkten Sprachklassen gelöst werden können. Wir betrachten dazu äquivalente Charakterisierungen dieser Klassen mit Hilfe von Maschinenmodellen, so daß das Membership-Problem beispielsweise darauf zurückgeführt werden kann, ob eine spezielle Maschine eine Eingabe akzeptiert. 1.3 Endliche Automaten So wie bei Grammatiken durch Einschränkungen bei den Ableitungen eine Hierarchie von Klassen entsteht, kann man auch verschiedene Einschränkungen bei Turing Maschinen betrachten. Als wesentliches Unterscheidungsmerkmal erweist sich die Art und Größe des Speichers sowie der Zugriff auf die Eingabe. Die interessantesten Varianten sind die folgenden: • die TM mit linearem Speicher, die außer den n Bandzellen, auf denen anfangs die Eingabe gegeben ist, keine weiteren Speicherzellen zur Verfügung hat; • der Pushdown-Automat oder Kellerautomat: ein eingeschränktes TM-Modell, das als Speicher nur über einen einzigen unbeschränkten Keller verfügt, auch Pushdown-Band, Stapel oder Stack genannt. Ein Kellerspeicher ist ein einseitig unendliches lineares Band, bei dem bei jeder