Christian Schindelhauer

Slides:



Advertisements
Ähnliche Präsentationen
Christian Schindelhauer
Advertisements

Christian Schindelhauer
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Kontextfreie Grammatiken
Telefonnummer.
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Einführung in Berechenbarkeit und Formale Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Notationen A = ist eine endliche, nichtleere menge,
Grammatiken, Definitionen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Verifizieren versus Berechnen
Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Christian Schindelhauer
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
= = = = 47 = 47 = 48 = =
Kapitel 4 Syntaktische Analyse: LR Parsing.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Reguläre Sprachen Karin Haenelt.
© Karin Haenelt 2006, Äquivalenzen Reg.Ausdrücke, Reg.Sprachen, EA ( ) 1 Reguläre Sprachen Karin Haenelt.
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
20:00.
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Syntaxanalyse Bottom-Up und LR(0)
PROCAM Score Alter (Jahre)
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Symmetrische Blockchiffren DES – der Data Encryption Standard
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Arne Vater Wintersemester 2006/07 28.
Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07
Arne Vater Wintersemester 2006/ Vorlesung
Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
Technische Frage Technische Frage Bitte löse die folgende Gleichung:
Wintersemester 2005 / Vorlesung
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
 Präsentation transkript:

Christian Schindelhauer Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/2006 08.11.2005 6. Vorlesung Christian Schindelhauer

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

Kapitel IV Kontextfreie Sprachen Kontextfreie Grammatik

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

Formale Definition einer kontextfreien Grammatik 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  u1  u2  ...  uk  v Sprache der Grammatik G L(G) = { w   * | S * v} Die kontextfreien Sprachen werden durch kontextfreie Grammatiken erzeugt.

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 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

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. 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  # }

Der Cocke-Younger-Kasami-Algorithmus (CYK-Algorithmus) l = Länge der Teilfolge i = Startindex der Teilfolge j = Schlussindex der Teilfolge

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a }

Cocke-Younger-Kasami-Algorithmus Beispiel l = Länge i = Startindex j = Schlussindex G = (V , Σ, S, P ), wobei V = {S, A, B, C } und Σ = {a, b}. P = { S → AB, S → BC, A → BA B → CC, C → AB, A → a, B → b, C → a } baaba ist in der Sprache

Kapitel IV Kontextfreie Sprachen Keller-automaten

Prinzip des Kellerautomats Push-Down-Automaton (PDA) Ein Kellerautomat vereinigt einen NFA mit einem Keller (Stack) Der Keller kann potenziell beliebig viel Zeichen speichern Zugriff ist eingeschränkt: Pop: Auslesen des obersten Zeichens (inklusive Entfernen) Push: Hineinlegen eines Zeichens Auf den Übergängen des NFA wird der Zugriff auf den Keller festgelegt zusätzlich zum aktuellen Zeichen der Eingabe, die weiterhin von links nach rechts gelesen wird.

Keller-Automat: Formale Definition Ein Kellerautomat (pushdown automaton - PDA) wird durch ein Sechser-Tupel (Q, ,,,q0,F), wobei Q, ,,F endliche Mengen sind und Q ist die Menge der Zustände  ist das Eingabealphabet  ist das Kelleralphabet  : Q      P(Q  ) ist die Übergangsfunktion q0 ist der Startzustand F  Q ist die Menge der akzeptierenden Zustände Ein PDA akzeptiert die Eingabe w, wenn es eine Darstellung w= w1 w2 ...wm mit wi   gibt wenn es eine Zustandsfolge q = r0 r2 ...rm mit si  Q gibt wenn es Zeichenketten s0,s1 , ... , sm  * gibt, so dass r0 = q0 und s0 = Startzustand mit leeren Keller Für i = 0, ..., m-1 gilt: (ri+1,b)  (ri,wi+1,a), wobei si = at und si+1 = bt für passende a,b  , t  * Übergang mit Kellerverhalten: Lies a, Schreibe b rm  F Ein akzeptierender Zustand erscheint als Endzustand

Keller-Automat: Beispielberechnung Der PDA M = (Q, ,,,q1,F) akzeptiert die Sprache {0n1n | n≥0} Q = {q1,q2,q3,q4}  = {0,1}  = {0,$} F = {q1, q4} : (q1 , , ) = {(q2,$)} q1: Push $, Gehe zu q2 (q2 , 0, ) = {(q2,0)} q2: Falls Lese = 0: Push 0; Gehe zu q2 (q2 , 1, 0) = {(q3,)} q2: Falls Lese=1 und Pop=0 gehe zu q3 (q3 , 1,0) = {(q3,)} q3: Falls Lese=1 gehe zu q3 (q3 , , $) = {(q4,)} q3: Falls Pop=$ gehe zu q4 (q , a) = {}, für alle anderen Kombinationen q  Q,a  

Keller-Automat: Beispielberechnung

Keller-Automat: Beispielberechnung

Keller-Automat: Beispielberechnung

Keller-Automat: Beispielberechnung

Keller-Automat: Beispielberechnung

Keller-Automat: Beispielberechnung

Keller-Automat: Beispielberechnung

Keller-Automat: Beispielberechnung

Keller-Automat: Beispielberechnung

Keller-Automat: Beispielberechnung

Keller-Automat: Beispielberechnung Automat akzeptiert!

Keller-Automaten beschreiben genau die kontextfreien Sprachen Theorem 6.1 Eine Sprache ist genau dann kontextfrei, wenn ein Kellerautomat sie erkennt Lemma 6.1 Ist eine Sprache kontextfrei, dann erkennt Sie ein Kellerautomat. Beweisidee Die Mehrdeutigkeit der kontextfreien Sprache wird durch den Nichtdeterminismus des PDA gelöst Die Ableitung der Worte steht im Keller Im Keller werden die möglichen Übergänge der Ableitung geraten Oben im Keller = Links, Unten im Keller = Rechts. Sobald oben im Keller ein Terminal steht, wird es mit der Eingabe verglichen und jeweils gestrichen Sobald oben im Keller eine Variable steht, wird eine mögliche Ersetzung im Keller durchgeführt.

Jede kontextfreie Sprache kann von einem PDA erkannt werden Lemma 6.1 Ist eine Sprache kontextfrei, dann gibt es einen Kellerautomat für sie. Konstruktion des Kellerautomaten Wir können davon ausgehen, dass die Sprache als kontextfreie Grammatik G=(V,,R,S) in Chomsky-Normalform vorliegt. Ist S   in der Grammatik so gibt es einen ist der Startzustand des PDA akzeptierend Zuerst wird der Stack mit den Symbolen $S initialisiert Sei q der Zustand nach der Initialisierung Für jede Regel der Form A  BC wird ein Übergang von q zu Zustand q[BC] hergestellt, der A vom Keller geholt,  von der Eingabe liest und C auf den Keller legt Der Übergang von q[BC] nach q liest  von der Eingabe und legt B auf den Keller ablegt. A  a wird ein Übergang von q zu q anglegt, der von der Eingabe a liest und A vom Keller holt Eine weitere Regel liest $ vom Keller und geht in den einzigen akzeptierenden Zustand q[akz]

Beispielkonstruktion Grammatik: G=(V,,R,S) mit V={S,,A,B} ={a,b,c} R = { S  AB, A  BB, A  a, A  c, B  b } Beispiel: S Keller: $S Eingabe: cb  AB Keller: $BA Eingabe: cb  cB Keller: $B Eingabe: b  cb Keller: $ Eingabe: -

Miniklausur Termin: MORGEN, 09.11.2005, 13-14 (s.t.) Anmeldung: Keine Thema: Reguläre Sprachen Inhalt: 4 Aufgaben (je 10 Punkte) Hilfsmittel: Keine - außer Schreibmaterial - Papier wird gestellt Bitte: Pünktlich erscheinen Mit Sicherheitsabstand hinsetzen (möglichst zwei Sitze zum Nachbarn) Punkteverteilung Abschreiben = 0 Punkte Abschreiben lassen = 0 Punkte Unterhalten = 0 Punkte.

Vielen Dank Ende der 5. Vorlesung Nächste Vorlesung:. Mo. 14. 11 Vielen Dank Ende der 5. Vorlesung Nächste Vorlesung: Mo. 14.11.2005 Nächste Miniklausur: Mi. 09.11.2005 Nächste Zentralübung: Mi. 16.11.2005 Heinz Nixdorf Institut & Institut für Informatik Universität Paderborn 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