Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Ähnliche Dokumente
Theoretische Grundlagen der Informatik

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

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

Theorie der Informatik

Formale Sprachen und Grammatiken

Theoretische Informatik I

Vorlesung Theoretische Informatik

2.11 Kontextfreie Grammatiken und Parsebäume

Programmiersprachen und Übersetzer

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

Wortproblem für kontextfreie Grammatiken

Einführung in die Computerlinguistik

7. Formale Sprachen und Grammatiken

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

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

Sprachen/Grammatiken eine Wiederholung

Tutorium zur theoretischen Informatik Übungsblatt 4 ( )

Mathematische Grundlagen der Informatik 2

Grammatiken. Einführung

4. 4. Algorithmen und Datenstrukturen in deskriptiven Programmiersprachen

Funktionale Programmierung mit Haskell

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit

Kapitel 2. Methoden zur Beschreibung von Syntax

Grundbegriffe der Informatik

Einführung in die Computerlinguistik

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

Theoretische Informatik I

Grundbegriffe der Informatik

Einführung in die Informatik Grammars & Parsers

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

Kapitel 2: Formale Sprachen Gliederung

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Syntax (= Satzgefüge), vgl. auch Grammatik

Formale Sprachen, reguläre und kontextfreie Grammatiken

Formale Sprachen. Script, Kapitel 4. Grammatiken

Grundlagen der Theoretischen Informatik

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

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

Grundlagen der Künstlichen Intelligenz

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

Theoretische Informatik Mitschrift

Formelsammlung theoretische Informatik I

TEIL III: FORMALE SPRACHEN

IT-Basics 2. DI Gerhard Fließ

Was ist ein Compiler?

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

REG versus CF. Theorem REG ist echt in CF enthalten.

Informatik I WS 07/08 Tutorium 24

Parsing-EinfŸhrung Ð 1

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

Zusammenfassung Grundzüge der Informatik 4

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Theoretische Informatik

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Formale Sprachen. Eine Einführung. Tim Lethen Düsseldorf Version II (04-06)

Compiler. Kapitel. Syntaktische Analyse. Kapitel 4. Folie: 1. Syntaktische Analyse. Autor: Aho et al.

Notation um Grammatik G hervorzuheben: Eine kontextfreie Grammatik erzeugt eine kontextfreie Sprache. Informatik I -1- WS 2005/2006

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013

Erfüllbarkeit und Allgemeingültigkeit

SWE1 / Übung 2 ( )

Einführung Computerlinguistik. Konstituentensyntax II

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Sprachen. Grammatiken (Einführung)

Grundbegriffe der Informatik Tutorium 7

Grammatiken in Prolog

Kapitel 7: Formaler Datenbankentwurf

Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik. Seminar Entscheidungsverfahren für logische Theorien. Endliche Modelle.

Modul Formale Sprachen Bachelor Informatik 3. Semester

1 Syntax von Programmiersprachen

Programmieren I. Formale Sprachen. Institut für Angewandte Informatik

Mächtigkeit von WHILE-Programmen

TheGI 1: Grundlagen und algebraische Strukturen Prof. Dr.-Ing. Uwe Nestmann Februar Schriftliche Leistungskontrolle (EK)

Automaten, Formale Sprachen und Berechenbarkeit I. Skript zur Vorlesung im WS 2001/02 an der TU München

Informatik I. Lutz Donnerhacke PGP:db c1c 6311 ef09 d819 e029 65be bfb6 c9cb

Entwurf und Implementierung eines LL(1)-Parser-Generatorsystems

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

Das Briefträgerproblem

2. Vorlesung. Slide 40

Einführung in die Computerlinguistik

Aufgabentypen die in der Klausur vorkommen

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 )

Einführung in die Theoretische Informatik

Kapitel 11: Wiederholung und Zusammenfassung

4.2.4 Reguläre Grammatiken

Theoretische Informatik

Formale Methoden II. Gerhard Jäger. SS 2008 Universität Bielefeld. Teil 8, 11. Juni Formale Methoden II p.1/30

Automaten und formale Sprachen: Vorlesungsskript G. Brewka, A. Nittka

ARBEITSBLATT ZU FORMALEN SPRACHEN

Grundlagen der theoretischen Informatik

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

Übungsaufgaben und Lösungen. zur Vorlesung. Theoretische Grundlagen der Informatik

Informatik IC2. Balazs Simon

Identifizierbarkeit von Sprachen

66TT2. Herbst. Erste Staatsprüfung für ein Lehramt an öffentlichen Schulen. Prüfungsaufgaben - Prüfungsteilnehmer Prüfungstermin Einzelprüfungsnunrmer

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

Grundlagen der Künstlichen Intelligenz

Was bisher geschah: Formale Sprachen

16. All Pairs Shortest Path (ASPS)

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

Transkript:

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/2006 07.11.2005 5. Vorlesung 1

Überblick: Kontextfreie Sprachen Formale Grammatik Einführung, Beispiele Formale Definition Das Wort-Problem Chomsky Normalform Cocke-Younger-Kasami-Algorithmus Kellerautomaten Formale Definition Beispiele Äquivalenz zu kontextfreien Sprachen Nichtkontextfreie Sprachen Pumping-Lemma für kontextfreie Sprachen Komplexitätstheorie 05-2

Kapitel IV Kontextfreie Sprachen Kontextfreie Grammatik Komplexitätstheorie 05-3

Grammatik - Was ist das? Komplexitätstheorie 05-4

Grammatik - Was ist das? <SATZ> <SUBJEKT> <PRÄDIKAT> <OBJEKT> <SUBJEKT> <ARTIKEL> <SUBSTANTIV> <OBJEKT> <ARTIKEL> <SUBSTANTIV> <PRÄDIKAT> <VERB> <ARTIKEL> die <SUBSTANTIV> Mutter <SUBSTANTIV> Tochter <SUBSTANTIV> Professorin <SUBSTANTIV> Studentin <VERB> langweilt <VERB> prüft <VERB> belehrt <VERB> besucht <VERB> beleidigt <VERB> tötet Komplexitätstheorie 05-5

Syntax und Semantik <SATZ> <SUBJEKT> <PRÄDIKAT> <OBJEKT> <SUBJEKT> <ARTIKEL> <SUBSTANTIV> <OBJEKT> <ARTIKEL> <SUBSTANTIV> <PRÄDIKAT> <VERB> <ARTIKEL> die <SUBSTANTIV> Mutter <SUBSTANTIV> Tochter <SUBSTANTIV> Professorin <SUBSTANTIV> Studentin Mögliche Ableitungen: die Studentin besucht die Professorin die Professorin belehrt die Studentin die Professorin langweilt die Studentin die Studentin beleidigt die Professorin die Professorin prüft die Studentin die Tochter besucht die Mutter die Mutter besucht die Professorin die Professorin belehrt die Mutter die Mutter tötet die Professorin <VERB> langweilt <VERB> prüft <VERB> belehrt <VERB> besucht <VERB> beleidigt <VERB> tötet Komplexitätstheorie 05-6

Beispiele kontextfreier Grammatiken Kontextfreie Grammatiken sind Wortersetzer A 0A1 A B B # Ersetzungsregeln bestehen aus Produktionen Variablen, Terminalsymbole (Terminale) Startvariable: A A 0A1 00A11 000A111 000B111 000#111... und Schluss Das Wort 000#111 ist ein Wort der Grammatik Ableitungsbaum Komplexitätstheorie 05-7

Formale Definition einer kontextfreien Grammatik Definition Eine kontextfreie Grammatik ist ein Vierer-Tupel G=(V,Σ,R,S), wobei V ist die endliche Menge der Variablen (Nichtterminale) Σ ist die endliche Menge der Terminale (Terminalsymbole) V und Σ sind disjunkte Mengen R ist eine endliche Menge an Ersetzungsregeln (Regeln/Produktionen) Jede Regel besteht aus einer Variable und einer Zeichenkette aus Variablen und Terminalen, A w, mit A V, w (V Σ)* S V ist die Startvariable Ableitung Falls die Regel A w in R ist, dann ist uav uwv, d.h. uav kann zu uwv in einem Schritt abgeleitet werden Wir sagen das u zu v abgeleitet werden kann oder u * v, wenn es ein k 0 gibt mit u u 1 u 2... u k v Sprache der Grammatik G L(G) = { w Σ * S * v} Die kontextfreien Sprachen werden durch kontextfreien Grammatiken erzeugt. Komplexitätstheorie 05-8

Beispiel einer kontextfreien Grammatik Definition Eine kontextfreie Grammatik ist ein Vierer-Tupel G=(V,Σ,R,S) V: Variablen Σ: Terminale V und Σ sind disjunkt R : Ersetzungsregeln A w mit A V, w (V Σ)* S V : Startvariable Ableitung Falls A w in R, dann ist uav uwv u * v, wenn es ein k 0 gibt mit u u 1 u 2... u k v Sprache der Grammatik G L(G) = { w Σ * S * v} G = ({A,B}, {0,1,#}, R, A} R = {A 0A1, A B, B #} Alternative Schreibweise: R = {A 0A1 B, B #} A 0A1 00A11 000A111 000B111 000#111 Also: A 000#111 Damit ist das Wort 000#111 in der Sprache L(G) L(G) = {#, 0#1, 00#11, 000#111, 0000#1111,...} Komplexitätstheorie 05-9

Probleme mit kontextfreien Grammatiken Mehrdeutigkeit: Beispiel: Grammatik ({S}, {+,x,3}, R, A} R = {S S + S, S S x S, S 3} Betrachte das Wort: w = 3+3x3 S S+S S + SxS 3 + 3x3 S SxS S+S x S 3+3 x 3 Die Ableitung ist jeweils verschieden damit ist auch die Interpretation verschieden Epsilon-Regeln Beispiel: Grammatik ({S,A,B,C}, {a,b,c}, R, S } R = {S ABC ε, A BaB ε, B ε c, C BAbACB ε } S ABC ABBAbACB C ABBAbA BAbACB B ABBAbA BAbA BAbACB B B ABBAbA caba BAbACB B B εεεεεbεcεbεεεbεεεεεε = bcbb Zwischenergebnisse können gigantisch lang werden und dann wieder verschwinden Komplexitätstheorie 05-10

Ist ein Wort in der Sprache? Die Entscheidung, ob ein Wort in einer kontextfreien Grammatik abgeleitet werden kann ist nicht trivial: Mehrdeutige Ableitung Riesige Worte, die aufgrund der Epsilon-Regeln wieder verschwinden Wenig aussichtsreiche Ansätze: 1. Versuche Terminalsymbole von links nach rechts zu erzeugen Führt für viele Sprachen in Sackgassen 2. Probiere alle Ableitungsmöglichkeiten aus Grammatik mit Epsilon-Regeln: Unendliche Laufzeit Grammatik ohne Epsilon-Regeln: Unglaublich schlechte (= exponentielle) Laufzeit Die Lösungsstrategie: Chomski-Normalform Jede Grammatik lässt sich (praktisch) ohne Epsilon-Regeln in einer einfachen Form darstellen Cocke-Younger-Kasami-Algorithms Durch dynamische Programmierung lässt sich die Laufzeit reduzieren Komplexitätstheorie 05-11

Chomsky-Normalform Definition Eine kontextfreie Grammatik ist in Chomsky-Normalform, falls jede Regel die Form A BC oder A a oder S ε hat wobei A,B,C,S sind Variablen a ist ein Terminal B,C sind nicht das Startsymbol, S ist das Startsymbol. Beispiel G = ({A,B,C,N,E}, {0,1,#}, R, S} R = {S NC, N 0,S #, A NC, C AE, E 1, A #} Komplexitätstheorie 05-12

Chomsky-Normalform Definition Eine kontextfreie Grammatik ist in Chomsky-Normalform, falls jede Regel die Form A BC oder wobei A a oder S ε hat A,B,C,S sind Variablen a ist ein Terminal B,C sind nicht das Startsymbol, S ist das Startsymbol. Theorem Jede kontextfreie Sprache kann in Chomsky-Normalform dargestellt werden. Beispiel Kontextfreie Grammatik G = ({A,B}, {0,1,#}, R, A} R = {A 0A1, A B, B #} Grammatik mit gleicher Sprache in Chomski-Normalform G = ({A,B,C,N,E}, {0,1,#}, R, S} R = {S NC, N 0,S #, A NC, C AE, E 1, A #} Komplexitätstheorie 05-13

Chomsky-Normalform Definition Eine kontextfreie Grammatik ist in Chomsky-Normalform, falls jede Regel die Form A BC oder wobei Theorem A a oder S ε hat A,B,C,S sind Variablen a ist ein Terminal B,C sind nicht das Startsymbol, S ist das Startsymbol. Jede kontextfreie Sprache kann in Chomsky-Normalform dargestellt werden. Beweisidee: Forme alle Produktionsregeln, welche gegen die Normalform verstoßen um Führe ggf. neue Variablen ein Vier Probleme 1. Startsymbol auf der rechten Seite Lösung: Neues Startsymbol, Übernahme der direkten Ableitung des alten Startsymbols 2. Epsilon-Regeln: A ε Lösung: Falls A in einer Regel rechts vorkommt, füge neue Regeln ohne A rechts ein 3. Eins-zu-eins-Regeln A B Lösung: In Ziele einsetzen 4. Lange und gemischte Regeln: A abcaba Lösung: neue Variablen/neue Regeln für schrittweise Ableitung Komplexitätstheorie 05-14

Konstruktion der Chomsky-Normalform Theorem Jede kontextfreie Sprache kann in Chomsky-Normalform dargestellt werden. Beweis: Gegeben eine kontextfreie Grammatik G=(V,Σ,R,S) Konstruiere äquivalente Grammatiken G 1,G 2,G 3,G 4 G 4 ist dann eine kontextfreie Grammatik in Chomsky-Normalform D.h. jede Regel hat die Form A BC oder wobei A a oder S ε hat A,B,C,S sind Variablen a ist ein Terminal B,C sind nicht das Startsymbol, S ist das Startsymbol. 1.Konstruiere äquiv. kontextfreie Grammatik G 1, in der das Startsymbol S nicht auf der rechten Seite vorkommt G 1 = (V,Σ,R,S ) R besteht aus allen Regeln von R und der neuen Regel S S G 1 ist äquivalent zu G und erfüllt Bedingung 1. Komplexitätstheorie 05-15

Beweis Fortsetzung Gegeben eine kontextfreie Grammatik G 1 = (V,Σ,R,S), in der das Startsymbol S nicht auf der rechten Seite vorkommt Konstruiere eine äquiv. Grammatik G 2 = (V,Σ,R,S) ohne Regeln der Form A ε, für A V \ {S} R entsteht durch folgende Modifikation von R Für jede Regel A ε aus R mit A V \ {S} Lösche Regel A ε aus R Falls A auf der rechten Seite einer Regel einfach vorkommt, d.h. B uav füge Regel B uav zu R hinzu Falls uv = ε (also B A) füge B ε nur hinzu, falls B ε noch nicht behandelt wurde Falls A auf der rechten Seite einer Regel mehrfach vorkommt, z.b. B uavaw füge jede Kombination der Ersetzungen von A durch ε zu R hinzu Also: B uavaw, B uvaw, B uavw, B uvw Falls uvw= ε füge B ε nur hinzu, falls B ε noch nicht behandelt wurde Komplexitätstheorie 05-16

Beweis 2. Fortsetzung Gegeben eine kontextfreie Grammatik G 2 = (V,Σ,R,S), in der das Startsymbol S nicht auf der rechten Seite vorkommt ohne Regeln der Form A ε, für A V \ {S} Konstruiere eine äquiv. Grammatik G 3 = (V,Σ,R,S) ohne Regeln der Form A B R entsteht durch folgende Modifikation von R Für jede Regel A B aus R Lösche Regel A B aus R Für jede Regel B u füge Regel A u hinzu außer A u hat die Form A C für A V und diese Regel wurde schon behandelt Korrektheitsbeweis folgt durch Betrachtung der Ableitung eines Wortes in G 2 und G 3 Komplexitätstheorie 05-17

Beweis 3. Fortsetzung Gegeben eine kontextfreie Grammatik G 3 = (V,Σ,R,S), in der das Startsymbol S nicht auf der rechten Seite vorkommt ohne Regeln der Form A ε, für A V \ {S} ohne Regeln der Form A B für A,B V Konstruiere kontextfreie Grammatik G 4 = (V,Σ,R,S) in Chomsky-Normalform, d.h. 1. ohne Regeln A u 1 u 2...u m für m 2, wobei ein Symbol u i ein Terminal ist 2. ohne Regeln A u 1 u 2...u m für m 3 1. Führe für jedes Terminal a eine Variable V[a] ein Füge Regeln V[a] a für jedes Terminal a hinzu Ersetze in jeder Regel A u 1 u 2...u n für n 2 die Vorkommen der Terminale u i durch die Hilfsvariablen V[u i ] 2. Für jede Regel A u 1 u 2...u m mit m 3 Lösche diese Regel Füge neue Variablen V[u 2...u m ], V[u 3...u m ], V[u m-1 u m ] hinzu, sowie die Regeln A u 1 V[u 2...u m ], V[u 2...u m ] u 2 V[u 3...u m ], V[u 3...u m ] u 3 V[u 4...u m ],... V[u m-1 u m ] u m-1 u m Enstandene Grammatik G 4 ist äquivalent und in Chomsky-Normalform. Komplexitätstheorie 05-18

Beispiel: 1. Schritt Betrachte kontextfreie Grammatik (V,Σ,R,S) mit den Regeln mit V = {A,B,S} Σ = {a,b} R = { S ASA, S ab, A B, A S, B b, B ε } Äquivalente kontextfreie Grammatik G = (V,Σ,R,S ) mit den Regeln ohne Vorkommen des Startsymbols auf der rechten Seite S neues Startsymbol R = { S S, S ASA, S ab, A B, A S, B b, B ε } Komplexitätstheorie 05-19

Beispiel: 2. Schritt R = { S S, S ASA, S ab, A B, A S, B b, B ε } Entfernen von B ε, neue Regeln: R = { S S, S ASA, S ab, S a, A B, A ε, A S, B b } Entfernen von A ε, neue Regeln: R = { S S, S ASA, S SA, S AS, S S, S ab, S a, A B, A S, B b } Komplexitätstheorie 05-20

Beispiel: 3a. Schritt R = { S S, S ASA, S SA, S AS, S S, S ab, S a, A B, A S, B b } Entferne S S R = { S S, S ASA, S SA, S AS, S ab, S a, A B, A S, B b } Entferne S S, neue Regeln: R = { S ASA, S SA, S AS, S ab, S a S ASA, S SA, S AS, S ab, S a, A B, A S, B b } Entferne A B, neue Regeln: R = { S ASA, S SA S AS, S ab, S a, S ASA, S SA, S AS, S ab, S a, A b, A S, B b } Komplexitätstheorie 05-21

Beispiel: 3b. Schritt R = { S ASA, S SA S AS, S ab, S a, S ASA, S SA, S AS, S ab, S a, A b, A S, B b } Entferne A S, neue Regeln R = { S ASA, S SA S AS, S ab, S a, S ASA, S SA, S AS, S ab, S a, A b, A ASA, A SA, A AS, A ab, A a, B b } Komplexitätstheorie 05-22

Beispiel: 4. Schritt R = { S ASA, S SA S AS, S ab, S a, S ASA, S SA, S AS, S ab, S a, A b, A ASA, A SA, A AS, A ab, A a, B b } Füge Variablen V[SA], V[a] hinzu Neue Regeln R = { S A V[SA], V[SA] SA S SA S AS, S V[a]B, S a, S A V[SA], S SA, S AS, S V[a]B, V[a] a, S a, A b, A A V[SA], A SA, A AS, A V[a] B, A a, B b } Grammatik R ist in Chomsky-Normalfom Komplexitätstheorie 05-23

Das Wort-Problem der kontextfreien Sprachen Gegeben: Eine kontextfreie Grammatik G=(V,Σ,R,S) in Chomsky-Normalform und ein Wort w Σ * Entscheide: Ist w L(G) Oder: Kann w aus dem Startsymbol S abgeleitet werden? Komplexitätstheorie 05-24

Vielen Dank Ende der 5. Vorlesung Nächste Vorlesung: Di. 08.11.2005 Nächste Miniklausur: Mi. 09.11.2005 Nächste Zentralübung: Mi. 16.11.2005 Heinz Nixdorf Institut & Institut für Informatik Fürstenallee 11 33102 Paderborn Tel.: 0 52 51/60 66 92 Fax: 0 52 51/62 64 82 E-Mail: schindel@upb.de http://www.upb.de/cs/schindel.html 25