TEIL III: FORMALE SPRACHEN



Ähnliche Dokumente
Programmiersprachen und Übersetzer

Grammatiken. Einführung

Theoretische Grundlagen der Informatik

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Theorie der Informatik

Grundbegriffe der Informatik

Formale Sprachen und Grammatiken

Wortproblem für kontextfreie Grammatiken

1 Mathematische Grundlagen

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Theoretische Informatik I

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

2.11 Kontextfreie Grammatiken und Parsebäume

Primzahlen und RSA-Verschlüsselung

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Grundlagen der Theoretischen Informatik, SoSe 2008

Informationsblatt Induktionsbeweis

Theoretische Informatik SS 04 Übung 1

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Prolog basiert auf Prädikatenlogik

7 Rechnen mit Polynomen

Eine Logikschaltung zur Addition zweier Zahlen

Einführung in die Algebra

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Lineare Gleichungssysteme

9. Übung Formale Grundlagen der Informatik

Beweisbar sichere Verschlüsselung

Semantik von Formeln und Sequenzen

Logik für Informatiker

Mathematische Grundlagen der Informatik 2

Vorlesung Theoretische Informatik

Informatik IC2. Balazs Simon

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

WS 2008/09. Diskrete Strukturen

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Theoretische Grundlagen des Software Engineering

Data Mining: Einige Grundlagen aus der Stochastik

3. Grundlagen der Linearen Programmierung

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Rundung und Casting von Zahlen

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Logische Folgerung. Definition 2.11

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Lineare Gleichungssysteme

Der Zwei-Quadrate-Satz von Fermat

3.2 Spiegelungen an zwei Spiegeln

Erstellen von x-y-diagrammen in OpenOffice.calc

Grundlagen der Künstlichen Intelligenz

Übung Theoretische Grundlagen

Theoretische Informatik I

Codex Newsletter. Allgemeines. Codex Newsletter

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

3. Zusammenhang. 22 Andreas Gathmann

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Anmerkungen zur Übergangsprüfung

Beispiel Zusammengesetzte Zufallsvariablen

Vorname: Nachname: Matrikelnummer: -Addresse: Studiengang (bitte genau einen ankreuzen): Master of SSE Erasmus Sonstige:

Musterlösungen zur Linearen Algebra II Blatt 5

Einfache kryptographische Verfahren

Grundlagen der Theoretischen Informatik

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Mathematische Maschinen

11.3 Komplexe Potenzreihen und weitere komplexe Funktionen

Zeichen bei Zahlen entschlüsseln

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Die Komplexitätsklassen P und NP

Theoretische Grundlagen der Informatik WS 09/10

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Was meinen die Leute eigentlich mit: Grexit?

POP -Konto auf iphone mit ios 6 einrichten

Sollsaldo und Habensaldo

5. Bildauflösung ICT-Komp 10

Die Optimalität von Randomisationstests

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Physik & Musik. Stimmgabeln. 1 Auftrag

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Dieses erste Kreisdiagramm, bezieht sich auf das gesamte Testergebnis der kompletten 182 getesteten Personen. Ergebnis

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

1 topologisches Sortieren

Kostenstellen verwalten. Tipps & Tricks

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Transkript:

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2011 TEIL III: FORMALE SPRACHEN 16. TERMERSETZUNGSSYSTEME UND CHOMSKY-GRAMMATIKEN Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 1 / 30

Einleitung In der Linguistik beschreibt man die Syntax von Sprachen mit Hilfe von Grammatiken. Definiert man eine Sprache als die Menge ihrer Sätze, so kann man eine Grammatik als Regelwerk zur Beschreibung der syntaktisch korrekten Sätze der Sprache, d.h. der Syntax der Sprache, auffassen: Durch eine Folge von Anwendungen von Regeln der Grammatik lässt sich die syntaktische Korrektheit eines gegebenen Satzes nachweisen (Verifikation, Akzeptor), oder alternativ lassen sich durch Ausführung aller möglichen Anwendungsfolgen der Regeln alle korrekten Sätze der Sprache erzeugen (Aufzählung, Erzeugendensystem, generative Grammatik). In der Theorie der formalen Sprachen betrachtet man verschiedene Typen von Grammatiken zur Beschreibung von formalen Sprachen und vergleicht die hierdurch gegebenen Sprachdarstellungen bezüglich ihrer Mächtigkeit und Qualität. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 2 / 30

Einleitung Im Folgenden werden wir uns auf generative Grammatiken konzentrieren, d.h. auf Grammatiken als Erzeugendensysteme, und hierbei insbesondere die verschiedenen Typen von Chomsky-Grammatiken diskutieren. Korrespondierende Verifikationsmethoden oder Akzeptoren werden durch Angabe äquivalenter Maschinenkonzepte gegeben. Dabei werden wir einen Satz als Zeichenreihe, d.h. als ein Wort auffassen. Die korrekt gebildeten Sätze einer Sprache bilden daher eine Menge von Wörtern, d.h. eine Sprache (in dem von uns bereits früher benutzten formalen Sinn). Die formale, mathematische Beschreibung von generativen Grammatiken basiert auf Termersetzungssystemen (oder Semi-Thue-Systemen). Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 3 / 30

Termersetzungssysteme (Semi-Thue-Systeme) DEFINITION. Ein Termersetzungssystem oder Semi-Thue-System ist ein Paar E = (Σ,P) bestehend aus einem Alphabet Σ und einer endlichen Relation P Σ Σ. Die Elemente r = (u,v) von P heißen die Regeln (oder Produktionen) von E, wobei u die Prämisse und v die Konklusion von r ist. Für eine Regel r schreiben wir meist u v statt (u,v). Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 4 / 30

Semantik von E = (Σ,P) Die Semantik eines Termersetzungssystems E = (Σ, P) lässt sich auf die Einschritt-Relation E Σ Σ mit w E w (u,v) P x,y Σ (w = xuy & w = xvy) zurückführen, die einen Herleitungsschritt (Ersetzungsschritt) beschreibt. Hieraus erhält man wie üblich (durch n-fache bzw. endliche Iteration) die n-schritt- und Mehrschritt-Relationen n E bzw. E : w 0 E w : w = w und w n+1 E w : w [w n E w & w E w ]. Für n 1 gilt also w n E w genau dann, wenn es Wörter w 0,...w n gibt mit w = w 0, w i E w i+1 (für i = 0,...n 1) und w n = w ]. w E w n 0 [w n E w ]. Die Mehrschrittrelation E ist also gerade der reflexive und transitive Abschluss der Einschrittrelation. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 5 / 30

Semantik von E = (Σ,P) Gilt w E w (w n E w ), so sagt man, dass w aus w (in n-schritten) herleitbar ist. Eine Herleitung oder Ableitung (der Länge n) ist eine Folge von Wörtern w 0,...,w n mit w 0 = w, w i E w i+1 (i < n) und w n = w. Weiter nennt man w eine Normalform von w, wenn w aus w herleitbar ist und nicht weiter umgeformt werden kann, d.h. es kein w mit w E w gibt. NOTATION. Ist das Termersetzungssystem E aus dem Kontext bekannt, so schreiben wir statt E (usw.). Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 6 / 30

Beispiel: Arithmetische Terme Als Beispiel geben wir ein Termersetzungssystem zur Beschreibung der korrekt geklammerten, variablenfreien arithmetischen Terme über den Binärzahlen an. Induktive Definition der Terme: (T1) Jede Binärzahl ist ein Term. (T2) Sind t 1,t 2 Terme, so ist auch (t 1 + t 2 ) ein Term. (T3) Sind t 1,t 2 Terme, so ist auch (t 1 t 2 ) ein Term. Diese Definition basiert noch auf der folgenden induktiven Definition von (Binärwörtern und) Binärzahlen: (Z1) 0 und 1 sind Binärzahlen und Binärwörter. (Z2) Ist w ein Binärwort, so sind 0w und 1w ebenfalls Binärwörter und 1w eine Binärzahl. Wir wandeln nun diese induktiven Definitionen in ein entsprechendes Termersetzungssystem um. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 7 / 30

Beispiel: Arithmetische Terme Termersetzungssystem E = (Σ, P) zur Beschreibung der arithmetischen Terme: 1 Alphabet Σ = {0,1,+,,(,),T,Z,W } (Interpretation: T ˆ= Term, Z ˆ= Binärzahl, W ˆ= Binärwort) 2 Die Regeln P entsprechen gerade den Klauseln der induktiven Definition: (R1) T Z ˆ= (T1) (R2) T (T + T ) ˆ= (T2) (R3) T (T T ) ˆ= (T3) (R4) Z 0 ˆ= (Z1) (R8) W 0W ˆ= (Z2) (R5) Z 1 ˆ= (Z1) (R9) W 1W ˆ= (Z2) (R6) W 0 ˆ= (Z1) (R10) Z 1W ˆ= (Z2) (R7) W 1 ˆ= (Z1) Die Normalformen von W, Z und T sind dann gerade die nichtleeren Binärwörter, die Binärzahlen und die Terme. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 8 / 30

Beispiel: Arithmetische Terme Eine Herleitung eines Terms t aus T erhält man, indem man den Strukturbaum von t von oben nach unten (top down) durchläuft und die entsprechenden Regeln anwendet. Z.B. besitzt der Term t = ((10 0) + 11) folgende Herleitung: T (T + T ) (R2) ((T T ) + T ) (R3) ((Z T ) + T ) (R1) ((Z Z ) + T ) (R1) ((Z Z ) + Z ) (R1) ((1W Z ) + Z ) (R10) ((1W 0) + Z ) (R4) ((1W 0) + 1W ) (R10) ((10 0) + 1W ) (R6) ((10 0) + 11) (R7) NB: Die Stelle, an der die angegebene Regel angewendet wird, ist jeweils unterstrichen. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 9 / 30

Von Ersetzungssystemen zu Chomsky-Grammatiken In dem vorhergehenden Beispiel werden zu den Grundzeichen, die in den Termen vorkommen, (syntaktische) Variablen hinzugenommen, die für das gewünschte syntaktische Objekt (T = Term) bzw. die benötigten Hilfsobjekte (W = Binärwort, Z = Binärzahl) stehen. Die aus dem Zeichen T herleitbaren Wörter, die nur die eigentlichen Grundzeichen enthalten, sind dann gerade die arithmetischen Terme. Da man ähnliche Beobachtungen allgemein macht, hat Chomsky den Begriff des Termersetzungssystems entsprechend erweitert, und so den für die Sprachtheorie grundlegenden, nach ihm benannten Grammatikbegriff eingeführt: Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 10 / 30

Von Ersetzungssystemen zu Chomsky-Grammatiken Das Alphabet wird in zwei Teile aufgeteilt: das terminal Alphabet, das gerade die eigentlichen Zeichen enthält, genannt die Terminalzeichen. das nichtterminale Alphabet, das die Hilfszeichen zur Bezeichnung der betrachteten (Hilfs-)Konzepte enthält, genannt die (syntaktischen) Variablen oder Nichtterminalzeichen. Eine der Variablen (die das zu beschreibende Konzept bezeichnet) wird als Startzeichen oder Axiom ausgezeichnet. Die dargestellte (oder erzeugte) Sprache besteht gerade aus den Terminalwörtern (d.h. den aus Terminalzeichen gebildeten Wörtern), die aus dem Axiom herleitbar sind. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 11 / 30

Chomsky-Grammatiken DEFINITION. Eine (Chomsky-)Grammatik G = (N, T, P, S) besteht aus: dem (nichtterminalen) Alphabet N bestehend aus den (syntaktischen) Variablen oder Nichtterminalzeichen dem (terminalen) Alphabet T mit N T = /0 bestehend aus den Terminalzeichen der endlichen Menge P ((N T ) T ) (N T ) von Regeln oder Produktionen dem Axiom oder Startzeichen S N. Von der Prämisse u einer Regel (u,v) verlangt man hier also, dass sie zumindest eine Variable enthält, während die Konklusion v ein beliebiges (möglicherweise leeres) Wort aus Terminal- und/oder Nichtterminalzeichen ist. (Wir schreiben wieder i.a. u v statt (u,v)). Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 12 / 30

Chomsky-Grammatiken: Erzeugte Sprachen Ein nur aus Terminalzeichen bestehendes Wort heißt auch Terminalwort (oder Satz), ein beliebiges Wort w (das möglicherweise auch Variablen enthält) Satzform. Kommt hierbei in w tatsächlich eine Variable vor, sprechen wir von einer echten Satzform. Die von der Grammatik G = (N,T,P,S) erzeugte Sprache L(G) besteht gerade aus den Sätzen, die sich aus dem Axiom S mit Hilf der Regeln in P herleiten lassen. Formal definiert man L(G), indem man das der Grammatik G = (N,T,P,S) zugrundeliegende Termersetzungssystem E G = (N T,P) und den für solche Systeme bereits formal definierten Herleitbarkeitsbegriff verwendet. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 13 / 30

Chomsky-Grammatiken: Erzeugte Sprachen Die von der Grammatik G = (N,T,P,S) erzeugte Sprache L(G) wird formal wie folgt definiert: Das der Grammatik G = (N,T,P,S) zugrundeliegende Termersetzungssystem ist das System E G = (N T,P). Der Herleitungsbegriff für E G wird auf die Grammatik G direkt übertragen: Wir schreiben w G w (und sagen, dass w in G aus w herleitbar ist), falls w EG w gilt, also w in E G aus w herleitbar ist. Die von G erzeugte Sprache L(G) (über dem Alphabet T ) ist die Menge der aus dem Axiom herleitbaren Terminalwörter (=Sätze), d.h. L(G) = {w T : S G w}. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 14 / 30

Chomsky-Grammatiken: Bemerkungen und weitere Definitionen Ähnlich wie die Herleitbarkeitsrelation werden auch die Ein- und Mehrschrittrelation des zugrundeliegenden Termersetzungssystems E G = (N T,P) für die Grammatik G übernommen. So schreiben wir statt EG und n E G kurz G und n G. Ist die Grammatik G aus dem Kontext bekannt, so schreiben wir weiter, n, statt, n, G G. G Eine Sprache L ist eine Chomsky-Sprache, falls L von einer Chomsky-Grammatik erzeugt wird. Die Klasse aller Chomsky-Sprachen bezeichnen wir mit CH. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 15 / 30

Beispiele: Beispiel 1 BEISPIEL 1. Das Termersetzungssystem zur Erzeugung der arithmetischen Terme lässt sich in folgende Chomsky-Grammatik G = (N,T,P,S) überführen, deren erzeugte Sprache gerade die korrekt gebildeten arithmetischen Terme enthält: N = {T,W,Z } T = {0,1,+,,(,)} P enthält die Regeln (R1)-(R10) von oben S = T Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 16 / 30

Beispiele: Beispiel 2 BEISPIEL 2. Die Sprache L = {0 m 1 n : m,n 1} wird von der Grammatik G = (N,{0,1},P,S) erzeugt, wobei N = {S,T } und P aus den vier Regeln (G1) S 0S (G2) S 0T (G3) T 1T (G4) T 1 besteht. BEMERKUNG / NOTATION. Enthält eine Grammatik mehrere Regeln mit derselben Prämisse, so fasst man diese mitunter zusammen. Im obigen Beispiel schreibt man z.b.: S 0S 0T T 1T 1 Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 17 / 30

Beispiele: Beispiel 2 - Korrektheitsbeweis Um zu zeigen, dass eine Grammatik G eine Sprache L erzeugt, d.h., dass L = L(G) gilt, muss man die Inklusionen L L(G) und L(G) L zeigen. Zum Nachweis von L L(G) muss man zu jedem Wort w L eine G-Herleitung angeben. Dies lässt sich i.a. leicht zeigen, da die Grammatik ja gerade so entworfen wurde, dass dies möglich ist. Der Nachweis von L(G) L ist meist schwieriger. Hier zeigt man in der Regel durch die geeignete Wahl von Invarianten, dass keine ungewünschten Wörter in G herleitbar sind. Wir illustrieren einen (einfachen) Korrektheitsbeweis am gegebenen Beispiel. (Im Folgenden werden wir auf Korrektheitsbeweise meistens verzichten und lediglich an die Anschauung appellieren.) Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 18 / 30

Beispiele: Beispiel 2 - Korrektheitsbeweis L L(G) L L(G) : Für gegebenes m,n 1 müssen wir eine Herleitung von 0 m 1 n aus S angeben: S m 1 0 m 1 S (m 1 (G1)) 0 m T (1 (G2)) n 1 0 m 1 n 1 T (n 1 (G3)) 0 m 1 n (1 (G4)) Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 19 / 30

Beispiele: Beispiel 2 - Korrektheitsbeweis L(G) L L(G) L : Zum Nachweis dieser Inklusion charakterisieren wir durch Herleitungsinduktion, d.h. durch Induktion nach k, die in k Schritten aus S herleitbaren Sätze und Satzformen: S k w w = 0 k S oder m 1 n 0 (k = m + n & w = 0 m 1 n T ) oder m 1 n 1 (k = m + n & w = 0 m 1 n ) Für terminales w zeigt dies, dass S k w impliziert, dass w L gilt. k = 0: Für k = 0 ist die Behauptung klar, da S 0 w nur für w = S = 0 0 S gilt. k k + 1: Im Induktionsschritt von k nach k + 1 betrachtet man den letzten Schritt in der Herleitung S k+1 w, d.h. S k w w. Wird eine der Regeln (G1) oder (G2) angewendet, so muss w die Variable S enthalten, also nach Induktionsvoraussetzung w = 0 k S gelten. Es ist dann aber w = 0 k+1 S bzw. w = 0 k+1 T von der verlangten Gestalt. Wurde die Regel (G3) oder (G4) angewendet, muss entsprechend T in w vorkommen und daher w = 0 m 1 n T für geeignete m 1,n 0 mit m + n = k gelten. Hier gilt dann w = 0 m 1 n+1 T oder w = 0 m 1 n+1, weshalb wegen m + (n + 1) = k + 1 das Wort w wieder eine der gewünschten Gestalten hat. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 20 / 30 (1)

Beipiele: Beispiel 3 BEISPIEL 3. Die Sprache L = {0 n 1 n : n 1} variiert die Sprache in Beispiel 2, indem zusätzlich gefordert wird, dass der 0-Block und der 1-Block gleiche Länge haben. Diese Sprache wird von der Grammatik G = ({S},{0,1},P,S) mit der Produktionenmenge S 0S1 01 erzeugt. Während in Beispiel 2 die Wörter 0 m 1 n von links nach rechts erzeugt wurden, werden hier die Wörter von der Mitte aus erzeugt. Hierdurch lässt sich garantieren, dass der Nullblock und der Einsblock dieselbe Länge haben, indem in jedem Schritt die Länge jeden Blocks um 1 vergrößert wird. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 21 / 30

Beipiele: Beispiel 4 BEISPIEL 4. Die Sprache L = {0 n 1 n 0 m : n,m 1} wird von der Grammatik G mit Axiom S und Regeln S TU T 0T 1 01 U 0U 0 erzeugt. Alternativ könnte man auch folgende Regeln wählen: S U0 U U0 0T 1 T 0T 1 λ Bei den bisherigen Beispielen haben die Prämissen der Regeln jeweils nur aus einer Variablen bestanden. Wir betrachten nun noch eine Sprache, bei der dies nicht möglich ist. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 22 / 30

Beispiele: Beispiel 5 BEISPIEL 5. Die Sprache L = {0 n 1 n 0 n : n 1} unterscheidet sich vom vorhergehenden Beispiel dadurch, dass alle Blöcke nun gleich lang sind. Eine Grammatik G = (N,{0,1},P,S), die L erzeugt, besitzt die Variablen und enthält folgende Regeln: N = {S,A,B,C,A,B,C} (E1) S SABC (S1) AA 0A (E2) S ABC (S2) AB 0B (S3) BB 1B (V 1) BA AB (S4) BC 1C (V 2) CA AC (S5) CC 0C (V 3) CB BC (S6) C 0 Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 23 / 30

Beispiele: Beispiel 5 - Idee Der Grammatik G liegt folgende Idee zugrunde: Die Variablen A,A bzw. B,B bzw. C,C sind jeweils Platzhalter für eine 0 im 1. Teil bzw. eine 1 im 2. Teil bzw. eine 0 im 3. Teil eines hergeleiteten Worts w = 0 n 1 n 0 n (n 1). In der 1. Phase der Herleitung wird mit Hilfe der Erzeugungsregeln (E1) und (E2) die erforderliche Anzahl von Platzhaltern geschaffen: S ABC(ABC) n 1 In der 2. Phase werden die Variablen mit Hilfe der Vertauschungsregeln (V1) - (V3) sortiert: ABC(ABC) n 1 AA n 1 B n C n Schließlich werden in der 3. Phase die Variablen mit Hilfe der Substitutionsregeln (S1)-(S6) durch ihre terminalen Werte ersetzt. Dabei darf nur die am Anfang dieser Phase ganz links stehende überstrichene Variable ersetzt werden. Gleichzeitig wird die rechte Nachbarvariable überstrichen, sodass diese im nächsten Schritt ersetzt werden kann, usw. bis die letzte Variable C überstrichen und im letzten Schritt direkt durch 0 ersetzt wird. D.h. die Ersetzung der Variablen erfolgt durchgehend von links nach rechts. AA n 1 B n C n 0 n 1 n 0 n Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 24 / 30

Mächtigkeit der Chomsky-Sprachen: Charakterisierungssatz CHARAKTERISIERUNGSSATZ FÜR CH. Zu jeder Turingmaschine M kann man effektiv eine Chomsky-Grammatik G angeben, die die von M akzeptierte Sprache erzeugt, und umgekehrt. Insbesondere sind also die von Chomsky-Grammatiken erzeugten Sprachen gerade die rekursiv aufzählbaren Sprachen: CH = RA. Turingakzeptoren als Methode zur Erkennung von Sprachen und Chomsky-Grammatiken als Methode zur Erzeugung von Sprachen sind also äquivalent! Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 25 / 30

Charakterisierungssatz: Beweisidee (1) 1. Jede Chomsky-Sprache L(G) ist rekursiv aufzählbar. Sei G = (N,T,P,S). Eine Herleitung eines Wortes w T in G hat die Form S v 1 v 2... v n w (n 0,v i (N T ) ), kann also als Wort über dem Alphabet Σ = N T { } aufgefasst werden. Da wir für Wörter v und v durch Mustervergleich überprüfen können, ob v durch Anwendung einer Regel in v überführbar ist, also v v gilt, kann man effektiv feststellen, ob ein Wort z Σ eine Herleitung beschreibt, und im positiven Fall lässt sich das hergeleitete Wort effektiv bestimmen. D.h. die Menge H = {(w,z) : w T,z Σ,z Herleitung von w} ist entscheidbar - also nach der Church-Turing-These rekursiv. Da w L(G) z((w,z) H) gilt, ist also L(G) nach dem Projektionslemma rekursiv aufzählbar. Durch Formalisierung des Arguments erhält man eine (nichttotale) TM M, die L(G) akzeptiert. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 26 / 30

Charakterisierungssatz: Beweisidee (2) 2. Jede von einem (nichttotalen) 1-Band-Turingakzeptor M = (Σ,Γ,Z,z 0,Z +,δ) erkannte Sprache L(M) Σ wird von einer Chomsky-Grammatik G erzeugt. Wie wir schon früher gesehen haben, können die Konfigurationen von M durch Wörter über Γ Z beschrieben werden (wobei wir Γ Z = /0 voraussetzen) [a l... a 1 a 0 z a 1... a r ] wobei a l... a 1 a 0 a 1... a r die relevante Bandinschrift ist und der Zustand z hinter dem Arebitsfeld steht. Weiter kann wegen der Lokalität der Turingmaschinen-Operationen der Übergang von einer Konfiguration zur Nachfolgekonfiguration durch eine Regel beschrieben werden. Hierbei werden jeder Programmzeile entsprechende Regeln zugeordnet. Z.B. entsprechen der Instruktion δ(z,a) = (a,r,z ) die Regeln aza a a z (für alle a Γ) und az] a bz] Wir können daher M als ein Termersetzungssystem auffassen. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 27 / 30

Charakterisierungssatz: Beweisidee (2) Fortsetzung Eine Grammatik G, die L(M) erzeugt, arbeitet nun anschaulich wie folgt, wobei eine Spurendarstellung mit 2 Spuren verwendet wird: (a) Aus dem Axiom S lässt sich für jedes Wort w Σ das Wort ŵ erzeugen, bei dem in der oberen Spur w und in der unteren Spur die zugehörige Startkonfiguration steht. (b) In einem Wort in Spurendarstellung lässt sich die in der unteren Spur stehende Konfiguration durch ihre Nachfolgekonfiguration ersetzen. (Hier benutzt man gerade die zuvor gemachte Beobachtung, dass M als Termersetzungssystem beschrieben werden kann.) (c) In einem Wort in Spurendarstellung, dessen untere Spur eine akzeptierende Stoppkonfiguration enthält, kann die untere Spur gelöscht werden. D.h. man erhält das Wort in der oberen Spur als Terminalwort. Details: s. Skript Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 28 / 30

Unentscheidbare Probleme für Chomsky- Grammatiken Mit dem Charakterisierungssatz überträgt sich die Unentscheidbarkeit semantischer Eigenschaften von Turingmaschinen auf Grammatiken. Insbesondere ist das Wortproblem für Chomsky-Grammatiken, d.h. die Frage, ob ein Wort w von einer Grammatik G erzeugt wird, unentscheidbar, und es gibt nicht-rekursive, d.h. unentscheidbare Chomsky-Sprachen. Beispiele nichtrekursiver Probleme (für Chomsky-Grammatiken G und beliebiges terminales Alphabet Σ): W Σ = {(G,w) : w L(G)} (Wortproblem) EMPTY Σ = {G : L(G) = /0} (Leerheitsproblem) TOT Σ = {G : L(G) = Σ } (Totalitätsproblem) EQ Σ = {(G,G ) : L(G) = L(G )} (Äquivalenzproblem) Beweis: Durch Reduktion des Halteproblems bzw. der entsprechenden Indexmengen (für Turingmaschinen). Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 29 / 30

Unentscheidbare Probleme für Chomsky- Grammatiken (Forts.) Stellt man eine Sprache durch eine Chomsky-Grammatik dar, so kann man also die wesentlichen Fragen über die dargestellte Sprache i.a. nicht entscheiden. In der Praxis schränkt man daher die zulässigen Regeln in einer Grammatik in geeigneter Weise ein. Hierdurch erhält man Darstellungen, die mehr über die dargestellte Sprache verraten. Generell gilt aber, je mehr Information man der Grammatik über die erzeugte Sprache effektiv oder gar effizient entnehmen kann, um so weniger Sprachen lassen sich mit Grammatiken diesen Typs darstellen. Wir werden dem Rechnung tragen und eine Hierarchie von Chomsky-Grammatiken und zugehörigen Sprachen einführen. Theoretische Informatik (SoSe 2011) 16. Termersetzungssysteme 30 / 30