Kontextfreie Grammatiken

Slides:



Advertisements
Ähnliche Präsentationen
Vorlesung Compilertechnik Sommersemester 2008
Advertisements

Christian Schindelhauer
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
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
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Reduktionen Def: L · L (L ist reduzierbar auf.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Universelle Turingmaschinen Eine universelle Turingmaschine.
Programmiertechniken: Zustand fungiert als „endlicher Speicher“
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
Verifizieren versus Berechnen
Algorithmen und Komplexität
Christian Schindelhauer
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
Einführung in Algorithmen und Komplexität
Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004.
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
CFGs und Kellerautomaten
Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der.
Prolog Grundkurs WS 98/99 Christof Rumpf
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
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
Algorithmen des Internets 2005 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität 1 Materialien zu Übung 9 Bälle in Körbe Ranged.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt WS 06/
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Noam CHOMSKY, Sheila GREIBACH
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken III Christian Schindelhauer
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.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung
Arne Vater Wintersemester 2006/ Vorlesung
Wintersemester 2005 / Vorlesung
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
Kapitel 4:Die Chomsky Hierarchie
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VI Christian Schindelhauer
 Präsentation transkript:

Kontextfreie Grammatiken … haben Regeln der Form

Das Wortproblem für kontextfreie Sprachen … ist entscheidbar. Sei G kontextfreie Grammatik für L in Chomsky Normal Form. Dann hat jede Ableitung für ein Wort x aus L, |x| = n die Länge 2n – 1. Es gibt nur endlich viele Ableitungen der Länge 2n-1. Naiver Algorithmus: Probiere alle diese Ableitungen aus. Zeit: Exponentiell in n.

Der Algorithmus von Cocke, Younger, Kasami Der CYK-Algorithmus. Eingabe: Kontextfreie Grammatik G in Chomsky-NF, w 2 *. Frage: w 2 L(G) ? CYK-Algorithmus: Eingabe w1 w2 … wn 2 * Berechne für jedes Paar i, j, 1 · i · j · n, die Menge T(i,j) = {A 2 V, A ! wi … wj}, und zwar zuerst für alle i, j mit j – i = 0, dann j – i = 1, dann j – i = 2, …, j – i = n – 1. Für j – i = n – 1 ist i = 1, j = n. Also: w 2 L S 2 T (1, n).

CYK-Algorithmus/Fortsetzung Wie berechnet man T (i,j)? T(i,i) = {A, A wi} = {A, A wi} In P nachlesen. Seien alle T (i,j) mit j - i < r berechnet. Wie berechnet man T (i,j) mit j – i = r? Falls A 2 T (i,j) ist, gibt es A BC wi … wk wk+1 wj mit B wi … wk, k-i < r, und C wk+1 … wi j – k+1 < r d.h.: Es gibt k, i · k < j und (A BC) 2 P mit: B 2 T (i,k), C 2 T (k+1, j), Beachte: T(i,k), T (k+1, j) sind bereits berechnet!

CYK-Algorithmus/Fortsetzung Laufzeit: Für T (i,j): O((j – i + 1) ¢ |P| ¢ |V|) Insgesamt: O(1 · i · j · n (j – i + 1) |P| ¢ |V|) = O(n3 ¢ |P| ¢ |V|) Polynomielle Laufzeit, aber viel zu langsam, um ihn etwa für die Syntaxanalyse bei (Java-)Programmen einzusetzen. Hier arbeitet man mit eingeschränkten Teilklassen von CF, den deterministisch kontextfreien Sprachen, gut strukturierten Grammatiken und zugehörigen Parsern.

Das Pumping Lemma für kontextfreie Sprachen Sei L kontextfrei. Dann gibt es ein p 2 , so dass für alle w 2 L mit |w| ¸ p eine Zerlegung w = uvxyz existiert mit: |v x y| · p |vy| ¸ 1 (iii) u vi x yi z 2 L für alle i ¸ 0.

Anwendungen des Pumping Lemma Wir wenden die Kontraposition des Pumping Lemma an: Falls für jedes p 2 ein w 2 L mit |w| ¸ p existiert, so dass für jede Zerlegung w = uvxyz mit |vy| ¸ 1 und |vxy| · p ein i existiert mit u vi x yi z L, so ist L nicht kontextfrei.

Nicht kontextfreie Sprachen Folgende Sprachen sind nicht kontextfrei: L1 = {an bn cn | n ¸ 1} L2 {ai bj ck | 1 · i · j · k} Korollar: Sei CF die Klasse der kontextfreien, CS die Klasse der kontextsensitiven Sprachen. Dann ist CF eine echte Teilmenge von CS. Bew.: „µ“ ist klar. „ „ gilt, da L1 2 CS, aber L1 CF gilt.

Abschlusseigenschaften kontextfreier Sprachen Seien L und L‘ kontextfrei. Dann sind auch L [ L‘ L L‘ L* kontextfrei. Aber: Es gibt kontextfreie L, L’, so dass L Å L’ nicht kontextfrei ist. Bsp: L = {ai bj cj, i, j ¸ 1}, L’ = {ai bi cj, i, j ¸ 1} Es gibt kontextfreie L, so dass nicht kontextfrei ist.