Automaten und formale Sprachen Notizen zu den Folien 1 Grundlagen und formale Beweise Beispiel eines Widerspruchsbeweises (Folie 59) Satz. √ 2 ist irrational, das heißt, es gibt keine m, n ∈ Z, so dass m n = √ 2. Beweis. Wir nehmen die Negation der zu beweisenden Aussage an und leiten einen Widerspruch ab. Wir nehmen also an, dass es ganze Zahlen m und n gibt, so dass m √ = 2. n Weil wir m und n durch gemeinsame Teiler teilen können, folgt aus der obigen Annahme, dass es teilerfremde p, q ∈ Z gibt, so dass p √ = 2. q Beide Seiten mit q multiplizieren liefert p= √ 2 · q, und quadratieren liefert p2 = 2q 2 . Das heißt, dass p2 eine gerade Zahl ist. Weil das Quadrat einer ungeraden Zahl immer ungerade ist, muss p auch eine gerade Zahl sein. Das heißt, dass p = 2a für eine ganze Zahl a. Daraus folgt 2q 2 = p2 = (2a)2 = 4a2 ; teilen durch 2 liefert q 2 = 2a2 . Sowohl q 2 als auch q sind also auch gerade Zahlen. Dass p und q beide gerade sind, ist aber im Widerspruch zur Tatsache, dass p und q teilerfremd sind (2 ist Teiler beider Zahlen). Unsere Annahme war√also falsch, und deswegen schließen wir, dass es keine ganze Zahlen m und n gibt, so dass m 2. n = Beispiel eines Beweises durch Induktion (Folie 61) Satz. Für alle n > 0 gilt, 1 + 2 + · · · + n = n · (n + 1) . 2 Beweis. Wir beweisen den Satz mit vollständiger Induktion.1 1 Vollständige Induktion ist Induktion auf den natürlichen Zahlen. 1 • Induktionsanfang. Für n = 1 gilt: 1 X 1 · (1 + 1) 2 = =1= i 2 2 i=1 (Bemerkung: n X i ist Kurznotation für 1 + · · · + n.) i=1 • Induktionschritt. Nehme an, dass n X i= i=1 n · (n + 1) . 2 (Dies ist die Induktionsvoraussetzung.) Dann gilt: n+1 X i= i=1 n X i + (n + 1) i=1 = = = = Der mit (IH) geschrifteten these). n · (n + 1) + (n + 1) (IH) 2 n2 + n 2n + 2 + 2 2 n2 + 3n + 2 2 (n + 1) · (n + 2) 2 Schritt folgt aus der Induktionsvoraussetzung (Induktionshypo- Wegen vollständiger Induktion, gilt der Satz. 2 Sprachen und Grammatiken Beispielableitung in einer Grammatik (Zu Folie 75) Eine Ableitung des Wortes aabbcc in der Grammatik der Folie 72: S ⇒ aSBC ⇒ aaBCBC ⇒ aaBBCC ⇒ aabBCC ⇒ aabbCC ⇒ aabbcC ⇒ aabbcc Das heißt, dass aabbcc ∈ L(G). Bemerkung zur Chomsky-Hierarchie für Grammatiken (Folie 85) Alle genannten Bedingungen gelten zusätzlich zu den vorher genannten Bedingungen. Das heißt, eine reguläre Grammatik G = (Σ, V, P, S) muss die folgenden Bedingungen erfüllen: für alle Regeln l → r gilt: • |l| ≤ |r|; • l ∈ V (l ist eine einzelne Variable); • r = a oder r = aB, für a ∈ Σ und B ∈ V . Die Chomsky-Hierarchie für Grammatiken ist eine Hierarchie. Das heißt, jede Chomsky-i-Grammatik ist auch eine Chomsky-(i − 1)-Grammatik (für i ∈ {1, 2, 3}). Es ist möglich, dass die gleiche Sprache von zwei verschiedenen Grammatiken erzeugt wird. Die zwei verschiedenen Grammatiken können auch von verschiedenem Chomsky-Typ sein. 2 Grammatiken in Chomsky-Hierarchie einordnen (Folien 85, 86 und 89) Beispiele • Sei G0 = ({S}, {a, b}, P0 , S), wobei P0 die folgenden Produktionen enthält: S → aaSbb | aa → a bb → b aaa → bbb → Die Grammatik G0 ist vom Typ 0, aber nicht vom Typ 1, denn es gibt Produktionen l → r mit |l| > |r|. • Sei G1 = ({S, A, B, T, X}, {a, b}, P1 , S), wobei P1 die folgenden Produktionen enthält: S → XT | a | b | T → BT | T A | B | A BA → AB XA → aX XB → bb B→b Die Grammatik G1 ist kontextsensitiv (Typ 1), denn für alle Produktionen l → r gilt, dass |l| ≤ |r| (S → is erlaubt wegen der -Sonderregel.) Sie ist aber nicht kontextfrei, denn drei Produktionen enthalten nicht eine einzelne Variable als linke Seite. • Sei G2 = ({S, T }, {a, b}, P2 , S), wobei P2 die folgenden Produktionen enthält: S→T | T → aT | T b | a | b Die Grammatik G2 ist kontextfrei (Typ 2), denn sie ist kontextsensitiv und alle linke Seiten bestehen aus einer einzelnen Variable. (Die Produktion S → ist erlaubt wegen der Sonderregel.) Sie ist aber nicht regulär (Typ 3), denn die rechte Seite der Produktion T → T b ist nicht von der richtigen Form. • Sei G3 = ({S, A, B}, {a, b}, P3 , S), wobei P3 die folgenden Produktionen enthält: S → aA | aB | a | bB | A → aA | aB | a B → bB | b Die Grammatik G3 ist regulär, denn sie ist konstextsensitiv, kontextfrei, und alle Regeln haben die richtige Form. (S → is wieder erlaubt wegen der -Sonderregel.) Übrigens erzeugen alle Grammatiken die selbe Sprache: L(G0 ) = L(G1 ) = L(G2 ) = L(G3 ) = {ak bn | k, n ≥ 0}. Die von allen Grammatiken erzeugte Sprache ist also regulär, denn es gibt eine reguläre Grammatik, die die Sprache erzeugt (in diesem Fall: G3 ). (Die Sprache ist natürlich auch kontextfrei und kontextsensitiv.) 3 Bemerkung zur Chomsky-Hierarchie für Sprachen (Folie 89) Es gilt folgendes: • Die Sprachklassen sind in einander enthalten. Jede Typ i-Sprache ist auch eine Typ-(i − 1)Sprache (für i ∈ {1, 2, 3}). • Die Sprachklassen sind echt in einander enthalten. Für jede Sprachklasse Typ i (wobei i ∈ {0, 1, 2}), gibt es eine Sprache die vom Typ i ist, aber nicht vom Typ (i + 1). • Es gibt auch Sprachen, die gar nicht von einer Grammatik erzeugt werden! (Dazu mehr in der Vorlesung Berechenbarkeit und Komplexität.) Wortproblem-Algorithmus für Typ-1-Grammatiken (Folie 93) Wortproblem für das Wort aabbc und die Beispiel-Grammatik von Folie 77. 1. 2. 3. 4. Anfang: Schritt: Schritt: Schritt: Schritt: T T T T T = {S} = {S, aSBC, aBC} ( ( (((( ((( aaSBCBC, abC} aaBCBC, = {S, aSBC, aBC,( ( = {S, aSBC, aBC, abC, abc} = {S, aSBC, aBC, abC, abc} Keine Änderungen mehr, also terminiert der Algorithmus. Weil aabbc ∈ / T , gilt aabbc ∈ / L(G). 4