Theoretische Informatik I

Ähnliche Dokumente
Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Alphabet, formale Sprache

Typ-3-Sprachen. Das Pumping-Lemma

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Lösungsvorschläge Blatt 4

Einführung in die Theoretische Informatik

Grundbegriffe. Grammatiken

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Einführung in die Computerlinguistik Formale Grammatiken rechtslineare und kontextfreie Grammatiken Kellerautomaten

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Automatentheorie und formale Sprachen rechtslineare Grammatiken

7. Formale Sprachen und Grammatiken

Beschreibungskomplexität von Grammatiken Definitionen

Rekursiv aufzählbare Sprachen

Grundlagen der Theoretischen Informatik

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

äußere Klammern können entfallen, ebenso solche, die wegen Assoziativität von + und Konkatenation nicht notwendig sind:

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014

Grundlagen der Theoretischen Informatik

Formale Sprachen. Script, Kapitel 4. Grammatiken

Sprachen und Programmiersprachen

Grundlagen der Theoretischen Informatik

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Tutoraufgabe 1 (ɛ-produktionen):

Programmiersprachen und Übersetzer

Übung zur Vorlesung Theoretische Information. Pumping Lemma

Theoretische Informatik Mitschrift

Kontextfreie Grammatiken

Theoretische Informatik Testvorbereitung Moritz Resl

Grundlagen der Theoretischen Informatik

Einführung in die Theoretische Informatik

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Übungsaufgaben zu Formalen Sprachen und Automaten

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

Theoretische Grundlagen der Informatik

... = für δ(z, a i ) = z. Abbildung 4.4: Interpretation der Arbeitsweise eines endlichen Automaten

Formale Sprachen. Spezialgebiet für Komplexe Systeme. Yimin Ge. 5ahdvn. 1 Grundlagen 1. 2 Formale Grammatiken 4. 3 Endliche Automaten 5.

Ausgewählte unentscheidbare Sprachen

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Theoretische Informatik. Alphabete, Worte, Sprachen

Grundbegriffe der Informatik

Formale Systeme. Büchi-Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

11.1 Kontextsensitive und allgemeine Grammatiken

Musterlösung der Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13

Grundlagen der Theoretischen Informatik

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Einführung in die Theoretische Informatik

Einführung in die Computerlinguistik

Deterministische endliche Automaten - Wiederholung

Formale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19

Definition Formale Sprache Eine formale Sprache ist eine (Teil-)Menge A Σ* von Worten über einem Alphabet Σ.

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

Theoretische Informatik 2

Formale Methoden 1. Gerhard Jäger 23. Januar Uni Bielefeld, WS 2007/2008 1/18

Theoretische Grundlagen der Informatik

Grundlagen der Informatik II

Theoretische Grundlagen des Software Engineering

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Einführung in die Theoretische Informatik

I.5. Kontextfreie Sprachen

Grammatiken. Einführung

Lösungen zu Übungsblatt 4

Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN

Einführung in die Theoretische Informatik

Universität des Saarlandes Theoretische Informatik (WS 2015) Lösungsvorschlag 4

Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO).

Berechenbarkeit und Komplexität Endliche Automaten

Theoretische Informatik I (Grundzüge der Informatik I)

Grundbegriffe der Informatik

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

ist ein regulärer Ausdruck.

Formale Sprachen und Grammatiken

Einführung in die Computerlinguistik

Theoretische Grundlagen des Software Engineering

bestehenden sind, weiterhin benutzt werden. Oft beleuchten unterschiedliche Formalismen Dinge nämlich von unterschiedlichen Blickwinkeln.

Sprachen/Grammatiken eine Wiederholung

Dank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs)

Grundbegriffe der Informatik

Berechenbarkeit und Komplexität

Grundbegriffe der Informatik

Theoretische Informatik I

2 Die Dimension eines Vektorraums

Kapitel 1. Grundlagen Mengen

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Motivation natürliche Sprachen

Kapitel 1. Grundlagen

Automaten, Spiele, und Logik

VU Software Paradigmen / SS 2014

Einführung in Berechenbarkeit, Komplexität und formale Sprachen

Reguläre Sprachen und endliche Automaten

Endliche Sprachen. Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für

Automaten und formale Sprachen. Lösungen zu den Übungsblättern

Fakultät für Informatik Universität Magdeburg Jürgen Dassow. Vorbemerkungen

Lösungsvorschläge Blatt Z1

Seminararbeit zur Zahlentheorie. Die Gaußschen Zahlen

Einführung in die Theoretische Informatik

Transkript:

(702765) Skript zur Vorlesung am 30.6.2000 Aus der vorherigen Vorlesung: Theoretische Informatik I Satz W: Sei X ein Alphabet. Zu jeder regulären Sprache R X * gibt es ein n N, so daß für alle Wörter z R mit z n gilt: Es gibt eine Zerlegung z = uvw mit u,v,w X *, v ε, uv n, so daß für alle i 0 gilt: uv i w R Formalisiert ausgedrückt (in der Form ): R Reg n N z R, z n u,v,w X*(z = uvw v ε uv n ( i N 0 (uv i w R))) Im Klartext heißt das: In jeder regulären Sprache kann jedes Wort, welches eine gewisse Wortlänge n überschreitet, so in drei Teilwörter zerlegt werden, daß das mittlere Teilwort (welches nicht das leere Wort sein darf) beliebig vervielfacht oder auch weggelassen werden kann, ohne daß das gesamte Wort aus der Sprache herausfällt. Dieser Satz ist bekannt als das Pumping Lemma. Das Vervielfachen bezeichnet man auch als Pumpen. Die Idee des Pumping Lemmas beruht darauf, daß 1. liche Akzeptoren, um unbeschränkte Wörter erkennen zu können, in Zyklen laufen müssen, und daß 2. die einzige Möglichkeit, um unliche Sprachen zu konstruieren, die Sternbildung ist, weshalb sehr lange Wörter viele Wiederholungen ein- und desselben Teilworts enthalten. Vorlesung vom 30.06.2000: Beweis des Pumping Lemmas (PL): Sei R eine reguläre Sprache. Zu R gibt es einen lichen deterministischen Akzeptor A = (X,S,δ,s 0,F) mit L(A) = R. Wir wählen nun n := S. Es sei z R mit z n. Dann gibt es mindestens einen Zustand, der bei Eingabe von z zweimal durchlaufen wird. z = x 1...x r, r n, x i X für i = 1,...,r x k x 1 x 2 x s 0... j x j+1 x s 1 s j+2 x j... k-1 s k-1 s j+1 x k+1 s k+1 x k+2... x r s

Für das erste Auftreten eines Zustands s j = s k gilt: u := x 1...x j, v := x j+1...x k ε uv = x 1... x k n, weil es ja um das erste Auftreten geht w := x k+1...x r Wie man sieht, landet der Akzeptor im Zustand s j, wenn er die Teilwörter u oder uv eingelesen hat (im Falle uv hat er den Zyklus bereits einmal durchlaufen). Er landet auch in diesem Zustand, wenn er die Teilwörter uv i (i 0) eingelesen hat, denn in diesem Fall durchläuft er den Zyklus i Mal. Offenbar gilt also: δ (s 0,u) = δ (s 0,uv) = δ (s 0,uv i ), i 0 Das Teilwort w liest der Akzeptor also n mit dem Zustand s j = s k ein, egal ob v einmal, keinmal oder mehrmals im gesamten Wort enthalten ist. Damit gilt: δ (s 0,uvw) = δ (s 0,uv i w) = s F uv i w R, i 0 Zu beachten: Das PL ist keine Äquivalenz, sondern eine Implikation L regulär L erfüllt das PL Das Pumping Lemma wird oft benutzt, um zu beweisen, daß Sprachen nicht regulär sind, weil sie das PL nicht erfüllen. Das funktioniert aber nicht immer, denn es gibt auch nichtreguläre Sprachen, die das PL erfüllen. Beispiel: L = {c m a n b n m,n 0} {a,b} * Es ist klar, daß Wörter aus {a,b} * das PL erfüllen. Deshalb betrachten wir diewörter der anderen Menge. Dort existieren mehrere Pumpvarianten für die Wortzerlegung z = uvw: v = c i durch Pumpen von v landen wir in L oder v = a i b i durch Pumpen von v landen wir in L Beispiele für den Beweis der Nichtregularität durch das PL: 1. L = {a n b n n 0} ist nicht regulär. Der Beweis erfolgte in der letzten Vorlesung. 2. L = {0 p p ist Primzahl}ist nicht regulär. Beweis durch Widerspruch: Wir nehmen an, L wäre regulär. Dann erfüllt L auch das PL. Wir wählen nun n wie im Satz W. Sei r eine Primzahl r 0. Sei z = 0 r L, dann gibt es eine Zerlegung z = uvw mit uv n, u = 0 s, v = 0 t, t 0. Mit 0 r ist auch 0 r+it L für alle i 0. Folglich sind alle Zahlen r+it Primzahlen. Nach spätestens t Zahlen kommt also stets eine Primzahl. Setzen wir i = r, dann ist r+rt eine Primzahl. Dann ist also auch r(1+t) eine Primzahl, andererseits sind aber r und t+1 Faktoren von r(1+t). Dies ist ein Widerspruch zur Primzahldefinition. L kann also nicht regulär sein, weil das Pumping Lemma nicht erfüllt wird. 3. L = {0 m m ist Quadratzahl}ist nicht regulär. Beweis durch Widerspruch: Wir nehmen an, L wäre regulär. Dann gibt es ein n el N, so daß sich jedes Wort z der Form 0 m,m n, m Quadratzahl, zerlegen läßt in z = uvw mit den Eigenschaften des PL: v ε, uv n, uv i w L, i 0. n² Wir wählen jetzt speziell z = 0 und betrachten die zugehörige Zerlegung z = uvw. Dann ist offenbar aufgrund der Bedingungen des Pumping Lemma 1 v uv n. Ferner gilt für i = 2: uv²w L. Andererseits: n² = z = uvw < uv²w n² + n < n² + 2n + 1 = (n+1)²

uv²w anschaulich: u vv w Wichtig ist hierbei: n² < uv²w < (n+1)² Das bedeutet, daß uv²w zwischen zwei Quadratzahlen liegt. Somit ist uv²w L. Daraus folgt, daß das Pumping Lemma von L nicht erfüllt wird. Daher ist L nicht regulär. 4.7 Reguläre rammatiken n² n Die bisher in den Vorlesungen benannten Konzepte im Bereich der Sprachentheorie sind für verschiedene Zwecke zu verwen. - Prozeß des Erkennens von Sprachen Automaten - Charakterisierungen von Sprachen PL, Abschlußeigenschaften, algebraische Beschreibungen - Beschreibungen von Sprachen reguläre Ausdrücke - neu: Erzeugungsprozesse von Sprachen rammatiken Die Erzeugung von Sätzen/Wörtern einer Sprache erfolgt durch das Ersetzen von Symbolen. Welche Symbole wie ersetzt werden dürfen, bestimmen die Ableitungs- oder auch Produktionsregeln: <Satz> <Subjekt> <Prädikat> <Objekt> <Subjekt> Hund <Prädikat> beißt <Objekt> Katze <Subjekt> Katze <Prädikat> jagt <Objekt> Maus <...> Nichtterminalsymbole <Satz> Startsymbol Hund, Katze, jagt,... Terminalsymbole Ableitungsprozeß: <Satz> <Subjekt> <Prädikat> <Objekt> Katze <Prädikat> <Objekt> Katze beißt <Objekt> Katze beißt Maus Dieses Beispiel führt uns zu einer formalen Definition von rammatiken. Definition X: 1) Eine rammatik beschreibt man durch ein 4-Tupel = (N, T, P, σ), wobei gilt: - N nichtleere, liche Menge von Nichtterminalsymbolen - T nichtleere, liche Menge von Terminalsymbolen - N T = - σ N Startsymbol - P {(α,β) α,β (N T) * } liche Menge von Produktionsregeln Bemerkung: Statt (α,β) schreiben wir auch oder nur, wenn der Bezug klar ist.

2) Seien v,w (N T) *. v ist ableitbar aus w (in Zeichen: w v beziehungsweise w v oder w v ), wenn es Wörter v 1,...,v k, u 1,...,u k, z 1,...,z k, α 1,...,α k-1, β 1,...,β k-1 (N T) * gibt, so daß gilt: v 1 = w, v k = v, v i = u i α i z i, v i+1 = u i β i z i für i = 1,...,k-1 und (α i, β i ) P für i = 1,...,k-1 Die Ableitungsfolge sieht dann etwa so aus: w = u 1 α 1 z 1 u 1 β 1 z 1 = u 2 α 2 z 2 u 2 β 2 z 2... v Prinzipiell heißt das also, daß ein Wort v aus einem Wort w ableitbar ist, wenn es unter Ausnutzung der Ableitungsregeln möglich ist, die Symbole in w so zu ersetzen, daß am Ende v herauskommt. * L() = w T * w 3) Die von erzeugte Sprache ist definiert durch { } Beispiele von allgemeinen rammatiken ohne Einschränkungen: 1. L 1 = {a n b n n N 0 } 1 = (N 1, T 1, P 1, σ 1 ) mit T 1 = {a,b} N 1 = {σ 1 } P 1 = {σ 1 aσ 1 b, σ 1 ε} Ableitungsfolge: σ 1 aσ 1 b aaσ 1 bb... a n σ 1 b n a n b n 2. korrekte Klammerung von 2 = (N 2, T 2, P 2, σ 2 ) mit T 2 = {, } N 2 = {σ 2 } P 2 = {σ 2 σ 2 σ 2, σ 2 ε} Ableitungsfolge: σ 2 σ 2 σ 2 σ 2 σ 2 σ 2 σ 2 σ 2 σ 2 σ 2 L( 2 ) ist übrigens nicht regulär. Die Typisierung von rammatiken und der Bezug zu speziellen Sprachklassen erfolgt über die Einschränkung der Form von Produktionen. Das führt uns zur Definition Y: Eine rammatik = (N, T, P, σ) heißt rechtslineare rammatik, wenn gilt: Für alle (α,β) P gilt: α N und β T * oder β = β B mit β T *, B N (Es gilt also, daß währ der Ableitung in den einzelnen Schritten nur Nichtterminalsymbole auftreten oder die Nichtterminalsymbole rechts von Terminalsymbolen stehen. Neue Terminalsymbole können also nur rechts an die anderen Terminalsymbole angehängt werden.)

Analog definiert man die Linkslinearität einer rammatik = (N, T, P, σ): Für alle (α,β) P gilt: α N und β T * oder β = Bβ mit β T *, B N Beispiel einer rechtslinearen rammatik: L = {a} * {b} * Sei = (N, T, P, σ) mit N = {σ,σ }, T = {a,b}, P = {σ aσ, σ σ, σ bσ, σ ε), L() = L Satz Z: Sei X ein Alphabet. Zu jeder regulären Sprache L X * gibt es eine rechtslineare rammatik mit L = L() und umgekehrt. Beweis: Sei L X * regulär. Dann gibt es einen lichen deterministischen Akzeptor A = (X,S,δ,s 0,F) mit L = L(A). Idee: Konstruiere eine rammatik aus der Zustandsübergangsfunktion δ Sei N := S, T := X, σ := s 0 P := {s xs s,s S, x X: δ(s,x) = s } {s ε s F} Zu zeigen ist jetzt: L() = L Sei w L(), w = x 1...x k, x i X, i = 1...k s 0 w s 0 x1s1 x1x 2s 2... x1...x ks k x1...x k i {0,...,k-1}: δ(s i,x i+1 ) = s i+1 und s k F δ * (s o,w) = s k F w L(A) = L L() = L Diese Beweisrichtung wird in der nächsten Vorlesung verfolgt