Zusammenfassung Grundzüge der Informatik 4



Ähnliche Dokumente
Wortproblem für kontextfreie Grammatiken

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

Mathematische Grundlagen der Informatik 2

Vorlesung Theoretische Informatik

Programmiersprachen und Übersetzer

Aufgabentypen: Spickerblatt: kontextfrei (Typ 2): zusätzlich: u ist eine!"# v 1

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Grammatiken. Einführung

Theoretische Grundlagen der Informatik

Kontextfreie Sprachen

Grundbegriffe der Informatik

Theoretische Informatik I

Kontextfreie Sprachen

Grundlagen der Theoretischen Informatik

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Grundlagen der Theoretischen Informatik, SoSe 2008

Informatik III - WS07/08

Sprachen/Grammatiken eine Wiederholung

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

Grundbegriffe der Informatik

Theorie der Informatik

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

Theorie der Informatik

Tutorium zur theoretischen Informatik Übungsblatt 4 ( )

Mächtigkeit von WHILE-Programmen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

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

Carlos Camino Einführung in die Theoretische Informatik SS 2015

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt:

Formale Sprachen und Grammatiken

Grundbegriffe der Informatik

Theoretische Informatik SS 04 Übung 1

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

Reguläre Sprachen Endliche Automaten

1 Mathematische Grundlagen

Grundlagen der Informatik

Primzahlen und RSA-Verschlüsselung

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

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

GTI. Hannes Diener. 6. Juni Juni. ENC B-0123, diener@math.uni-siegen.de

Übung Theoretische Grundlagen

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

Theorie der Informatik

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

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

Zeichen bei Zahlen entschlüsseln

Erstellen von x-y-diagrammen in OpenOffice.calc

Informationsblatt Induktionsbeweis

Zwischenablage (Bilder, Texte,...)

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

Elexis-BlueEvidence-Connector

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Einführung in die Algebra

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

11.1 Kontextsensitive und allgemeine Grammatiken

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Mathematische Maschinen

2.11 Kontextfreie Grammatiken und Parsebäume

1. So beginnen Sie eine Kalkulation

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

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

Berechnungen in Access Teil I

Programmierkurs Java

4. BEZIEHUNGEN ZWISCHEN TABELLEN

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Die Komplexitätsklassen P und NP

Informatik IC2. Balazs Simon

1. Einführung. 2. Die Abschlagsdefinition

Mediator 9 - Lernprogramm

Data Mining: Einige Grundlagen aus der Stochastik

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

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

Lineare Gleichungssysteme

Einführung in die Theoretische Informatik

Formale Sprachen. Script, Kapitel 4. Grammatiken

8. Turingmaschinen und kontextsensitive Sprachen

Tutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5

Professionelle Seminare im Bereich MS-Office

teischl.com Software Design & Services e.u. office@teischl.com

Kapiteltests zum Leitprogramm Binäre Suchbäume

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Anleitung über den Umgang mit Schildern

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Summenbildung in Bauteiltabellen mit If Then Abfrage

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Komplexität und Komplexitätsklassen

Was meinen die Leute eigentlich mit: Grexit?

Ogden s Lemma: Der Beweis (1/5)

Leichte-Sprache-Bilder

Platinen mit dem HP CLJ 1600 direkt bedrucken ohne Tonertransferverfahren

Der Zwei-Quadrate-Satz von Fermat

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Ein Buch entsteht. Ein langer Weg

PowerPoint: Text. Text

Word 2010 Schnellbausteine

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine.

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

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.

Transkript:

Zusammenfassung Grundzüge der Informatik 4 Sommersemester 04 Thorsten Wink 21. September 2004

Version 1.2 Dieses Dokument wurde in L A TEX 2εgeschrieben. Stand: 21. September 2004

Inhaltsverzeichnis 1 Automatentheorie und formale Sprachen 1 1.1 Grammatiken....................................... 1 1.2 Reguläre Sprachen.................................... 1 1.2.1 DFA........................................ 1 1.2.2 NFA........................................ 2 1.2.3 Minimalautomat................................. 2 1.2.4 Reguläre Ausdrücke............................... 2 1.2.5 Pumping Lemma................................. 2 1.2.6 Abschlusseigenschaften/Entscheidbarkeit.................... 3 1.3 Kontextfreie Sprachen.................................. 3 1.3.1 Kellerautomaten................................. 3 1.3.2 CNF........................................ 3 1.3.3 CYK-Algorithmus................................ 3 1.3.4 Pumping-Lemma................................. 4 1.3.5 Abschlusseigenschaften/Entscheidbarkeit.................... 4 1.3.6 deterministisch kontextfreie Sprachen..................... 4 1.4 Übersicht......................................... 4 2 Berechenbarkeit 6 2.1 Turing-Maschinen.................................... 6 2.2 RAM-Programme..................................... 7 2.3 Loop-While-GOTO.................................... 7 2.4 Primitive Rekursion................................... 7 2.5 µ-rekursion........................................ 8 2.6 Entscheidbarkeit: Gödelisierung, Satz von Rice, Diagonalisierung.......... 8 I

Kapitel 1 Automatentheorie und formale Sprachen 1.1 Grammatiken Definition: Eine Grammatik ist ein 4-Tupel G = (V, Σ, P, S) mit V = Menge der Variablen Σ = Terminalalphabet P = Regeln bzw. Produktionen S = Startvariable Man kann alle Grammatiken in die folgende Hierarchie einordnen: TYP 0: Alle Grammatiken TYP 1: Eine Grammatik ist kontextsensitiv, falls für alle Regeln w 1 w 2 aus P w 1 w 2 gilt. TYP 2: Eine Grammatik ist kontextfrei, wenn sie von TYP 1 ist und für alle Regeln aus P gilt dass w 1 eine einzelne Variable ist. TYP 3: Eine Grammatik ist regulär, wenn sie von Typ 2 ist und die rechte Seite der Regeln entweder ein einzelnes Terminalzeichen oder ein Terminalzeichen gefolgt von einer Variable ist. 1.2 Reguläre Sprachen 1.2.1 DFA Defintion: Ein deterministischer endlicher Automat (DFA) M wird angegeben durch ein 5-Tupel M = (Z, Σ, δ, z 0, E) mit Z = Menge der Zustände Σ = Eingabealphabet δ = Überführungsfuntion z 0 = Startzustand E = Menge der Endzustände Endliche Automaten werden entweder mithilfe der Übergangsfunktion oder als Zustandsgraph 1

angegeben. Mit einem DFA kann man genau die Menge aller TYP 3 Sprachen erkennen. 1.2.2 NFA Ein nichtdeterministischer endlicher Automat (NFA) wird formal wie ein DFA angegeben, nur ist hier S die Menge der Startzustände statt z 0. Ein NFA kann zu einem Eingabezeichen mehrere mögliche Übergänge haben, zum Aktzeptieren eines Wortes muss es mindestens eine mögliche Zustandsfolge geben. DFA und NFA sind ineinander überführbar, die Modelle sind demnach gleichmächtig. ev. TODO: Algo NFA DFA 1.2.3 Minimalautomat Folgender Algorithmus liefert aus einem DFA den Minimalautomaten: 1. Stelle eine Tabelle aller Zustandspaare {z, z } mit z z auf. 2. Markiere alle Paare {z, z } mit z E und z / E (oder umgekehrt) 3. Für jedes noch unmarkierte Paar {z, z } und für jedes a Σ teste, ob {δ(z, a), δ(z, a)} bereits markiert ist. Wenn ja markiere auch {z, z } 4. Wiederhole den letzten Schritt, bis sich keine Änderungen mehr an der Tabelle ergeben 5. Alle jetzt noch unmarkierten Paare können zu jeweil einem Zustand verschmolzen werden. 1.2.4 Reguläre Ausdrücke Mit regulären Ausdrücken kann man alle regulären Sprachen definieren. Die reg. Ausdrücke sind wie folgt definiert: ist ein regulärer Ausdruck ɛ ist ein regulärer Ausdruck Für jedes a Σ ist a ein regulärer Ausdruck wenn α und β reguläre Ausdrücke sind, dann auch αβ, (α β) sowie (α) 1.2.5 Pumping Lemma Das Pumping Lemma ist ein Hilfsmittel um von einer Sprache zu zeigen, dass sie NICHT regulär ist. Sei L eine reguläre Sprache. Dann gibt es eine Zahl n, so dass sich alle Wörter x L mit x n zerlegen lassen in x = uvw, so dass folgende Eigenschaften erfüllt sind: v 1 uv n für alle i = 0,1,2,... gilt: uv i w L. 2

1.2.6 Abschlusseigenschaften/Entscheidbarkeit Die regulären Sprachen sind abgeschlossen unter: Vereinigung, Schnitt, Komplement, Produkt, Stern-Operator. Entscheidbar für reguläre Sprachen sind das Wortproblem, Leerheitsproblem, Schnittproblem, Äquivalenzproblem. 1.3 Kontextfreie Sprachen Die kontextfreien Sprachen sind in der Informatik besonders wichtig, da sich mit Ihnen die meisten Programmiersprachen beschreiben lassen. Einen Parser für Klammerstrukturen oder IF-THEN- ELSE Strukturen kann man mithilfe eines Kellerautomaten implementieren. 1.3.1 Kellerautomaten Das Problem des DFA ist es, dass er keinen Speicher hat. Diese Einschränkung wird nun durch einen Kellerspeicher aufgehoben. Definition: Ein Kellerautomat (PDA) M wird wie folgt angeben: M = (Z, Σ, Γ, δ, z 0, #) mit Z = Menge der Zustände Σ = Eingabealphabet Γ = Kelleralphabet δ = Überführungsfuntion z 0 = Startzustand # = unterstes Kellerzeichen Bei einem Zustandsübergang kann nur das oberste Zeichen des Kellers verändert werden. So ist es möglich das oberste Zeichen zu entfernen oder weitere Zeichen in den Keller zu legen. Ein Kellerautomat akzeptiert ein Wort durch leeren Keller. Mit einem nichtdeterministischen Kellerautomat kann man die Menge aller kontextfreien Sprachen erkennen. 1.3.2 CNF Zu jeder kontextfreien Grammatik gibt es eine entsprechende Grammatik in Chomsky Normalform (CNF). Dafür muss gelten, dass alle Regeln eine der beiden folgenden Formen haben: A BC A a Um eine Grammatik in CNF zu transformieren, muss sie zuerst ɛ-frei gemacht werden. Danach werden sukzessive neue Variablen eingeführt und die Produktionen aufgespalten, bis alle Regeln obiges Format haben. 1.3.3 CYK-Algorithmus Der CYK-ALgorithmus entscheidet, ob ein Wort x durch eine Grammatik G erzeugt werden kann, also ob x L(G). Er hat die Komplexität O(n 3 ). Die Grammatik muss in CNF vorliegen. TODO: Erklärung 3

1.3.4 Pumping-Lemma Ebenso wie bei dem Pumping-Lemma für reguläre Sprachen benutzt man das folgende um zu zeigen, dass eine Sprache nicht kontextfrei ist. Sei L eine kontextfreie Sprache. Dann gibt es eine Zahl n, so dass sich alle Wörter z L mit z n zerlegen lassen in z = uvwxy, so dass folgende Eigenschaften erfüllt sind: vx 1 vwx n für alle i = 0,1,2,... gilt: uv i wx i y L. 1.3.5 Abschlusseigenschaften/Entscheidbarkeit Die kontextfreien Sprachen sind abgeschlossen unter: Vereinigung, Produkt, Stern-Operator. Sie sind nicht abgeschlossen unter Schnitt und Komplement Entscheidbar für reguläre Sprachen sind Wortproblem und Leerheitsproblem. Nicht entscheidbar sind Schnittproblem und Äquivalenzproblem. 1.3.6 deterministisch kontextfreie Sprachen Ein deterministischer Kellerautomat DPDA hat für jede mögliche Konfiguration höchstens einen Folgezustand. Desweiteren akzeptiert ein det. Kellerautomat per Endzustand und nicht per leerem Keller. Ein deterministisch kontextreier Kellerautomat erkennt die Menge der deterministisch kontextfreien Sprachen. Dies sind die LR(k)-Sprachen, die im Compilerbau eine wichtige Rolle spielen. Wichtig: PDA und DPDA sind nicht gleichwertig, ein DPDA ist in einen PDA überführbar, die Richtung PDA DPDA gilt jedoch nicht. 1.4 Übersicht Typ 3 Det. kf. Typ 2 Typ 1 Typ 0 reguläre Grammatik DFA NFA reguläre Ausdrücke LR(k)-Grammatik kontextfreie Grammatik Kellerautomat kontextsensitive Grammatik linear beschränkter Automat Typ 0 Grammatik Turinmaschine nichtdet. Automat deterministischer Automat äquivalent? NFA DFA Ja PDA DPDA nein LBA DLBA? TM DTM Ja 4

Abschlusseigenschaften Schnitt Vereinigung Komplement Produkt Stern Typ 3 ja ja ja ja ja det. kf nein nein ja nein nein Typ 2 nein ja nein ja ja Typ 1 ja ja ja ja ja Typ 0 ja ja nein ja ja Entscheidbarkeit Wortproblem Leerheitsproblem Äquivalenzproblem Schnittproblem Typ 3 ja ja ja ja det. kf ja ja ja nein Typ 2 ja ja nein nein Typ 1 ja nein nein nein Typ 0 nein nein nein nein 5

Kapitel 2 Berechenbarkeit Der Begriff der Berechnebarkeit konnte bisher noch nicht eindeutig formal definiert werden. Intuitiv ist jede Funktion, für die man eine Berechnungsvorschrift (einen Algorithmus) angeben kann, berechenbar. Die Churchsche These besagt: Die durch die formale Definition der Turing- Berechenbarkeit (die äquivalent ist zur WHILE-, GOTO-Berechenbarkeit und µ-rekursivität) erfasste Klasse von Funktionen stimmt genau mit der Klasse der im intuitiven Sinne berechenbaren Funktionen überein. Es wurden noch verschiedene Berechenbarkeitsdefinitionen angegeben, die wie folgt zusammenhängen: primitiv rekursiv LOOP = W HILE GOT O T M RAM µ rekursiv 2.1 Turing-Maschinen Eine Turing-Maschine besteht aus einem (oder auch mehreren) auf einer Seite unendlich langen Band und einem Schreib/Lesekopf. In jedem Rechenschritt kann das Zeichen gelesen werden, und abhängig vom Zeichen und dem aktuellen Zustand ein neues Zeichen geschrieben werden. Danach kann der Kopf entweder nach Links/Rechts oder garnicht bewegt werden. Noch ein paar Konventionen: Leere Zellen sind mit einem bedruckt, die Eingabe steht am Beginn des 1.Bandes, die Ausgabe beginnt an der Stelle auf Band 1 wo die TM stoppt. Formale Definition der TM τ (nach Brandt): τ = (A (τ), S (τ), an (τ), δ τ ) mit A (τ) = Bandalphabet der TM S (τ) = Zustandsmenge der TM an (τ) = Anfangszustand δ τ = Programm Das Programm schreibt man in folgender Art: (s 0, 0) : (s 1, (0, S)), wobei die TM in diesem Beispiel in Zustand s 0 beim Lesen einer 0 in den Zustand s 1 wechselt, eine 0 druckt und den Kopf nicht bewegt. Eine Mehrband-TM ist immer auch mit einer Einband-TM realisierbar. Dazu teilt man das Band in mehrere Spuren auf und markiert auf jeder Spur, wo sich der entsprechende Kopf befinden würde. 6

Eine TM berechnet für jede r-stellige Eingabe die Wort-Funktion f r τ : (Σ ) r Σ Um auch Zahl-Funktionen mit einer TM darstellen zu können, decodiert man die natürlichen Zahlen bin2ar auf das Eingabeband. Dann berechnet die TM die Zahl-Funktion 2.2 RAM-Programme Assembler-like 2.3 Loop-While-GOTO wie die Programmier-Konstrukte 2.4 Primitive Rekursion ϑ r τ : (N) r N Die Menge der primitiv rekursiven Funktionen P rim ist folgendermaen definiert: Alle folgenden Ausgangsfunktionen sind in P rim: die Nachfolgerfunktion die Projektion die konstante Funftion Aus primitiv rekursiven Funktionen können neue Funktionen gebildet werden, die ebenfalls in P rim sind durch: Substitution Primitive Rekursion beschränkte Summation beschränkte Produktbildung Definition durch Fallunterscheidung Iteration beschränkter µ-operator Der beschränkte µ-operator ist definiert durch (µ b f)(y, x 1,..., x r ) = { min{z y f(z, x1,..., x r ) = 0},falls dieses Minimum existiert y + 1,sonst 7

Beispiele für primitiv rekursive Funktionen: Addition, Multiplikation, Vorgängerfunktion, Modifizierte Differenz, Signumsfunktion, Ganzzahldivision. Ein Beispiel für eine Funktion, die total und intuitiv berechenbar ist, die aber nicht primitiv rekursiv ist: die Ackermannfunktion: a(0, y) = y + 1) a(x + 1, 0) = a(x, 1) a(x + 1, y + 1) = a(x, a(x + 1, y)) 2.5 µ-rekursion Die Menge µ Rek der µ-rekursiven Funktionen ist die kleinste Menge von (eventuell partiellen) Funktionen, die die Ausgangsfunktionen Nachfolgerfunktion Projektion konstante Funktion enthält und abgeschlossen ist unter Substitution primitiver Rekursion Anwendung des µ-operators Der µ-operator ist definiert durch min{z N f(z, x 1,..., x r ) = 0} (µf)(x 1,..., x r ) = undefiniert,falls dieses Minimum existiert und y z min : f(y, x 1,..., x r )terminiert.,sonst 2.6 Entscheidbarkeit: Gödelisierung, Satz von Rice, Diagonalisierung 8