Kapitel 2: Formale Sprachen Gliederung
|
|
- Helene Junge
- vor 6 Jahren
- Abrufe
Transkript
1 Gliederung 0. Motivation und Einordnung 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. Chomsky-Grammatiken 2.2. Reguläre Sprachen /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
2 u Anmerkungen es geht immer noch darum formale Sprachen mit Hilfe von Regeln (Chomsky-Grammatiken) zu beschreiben und zu verstehen, wie man das Wortproblem für so beschriebene Sprache lösen kann bisher haben wir uns vor allem mit regulären Grammatiken (Typ-3) und den durch sie beschriebenen Sprachen (regulären Sprachen) beschäftigt in diesem Kapitel schauen wir uns einen komplizierten Typ von Grammatiken (kontextfreien Grammatiken bzw. Typ-2 Grammatiken) und die durch sie beschriebene Sprachen (kontextfreie Sprachen) genauer an 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
3 u Warum machen wir das? es gibt Sprachen, die man nicht mit regulären Grammatiken beschreiben kann beispielsweise sind die folgenden Sprachen über dem Alphabet Σ = { 0,1 } keine regulären Sprachen L = { 0 n 1 n n N } L = { w Σ* w enthält genauso viele Nullen wie Einsen } Warum stimmen diese Behauptungen? 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
4 u Warum machen wir das? (cont.) u Anmerkung wir interessieren uns für Sprachen die man nicht mit regulären Grammatiken beschreiben kann die man aber mit kontextfreien Grammatiken beschreiben kann Vorteil: das Wortproblem für diese Sprachen ist effizient lösbar und man kann anhand der Grammatik einen effizienten Lösungsalgorithmus für das Wortproblem konstruieren wir könnten im Prinzip auch kontextsensitive Grammatiken (Typ-1) verwenden, um diese Sprachen zu beschreiben Nachteil: es ist unklar, wie man anhand einer solcher Grammatik einen effizienten Lösungsalgorithmus für das Wortproblem konstruieren soll 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
5 u Warum machen wir das? (cont.) neben den rein akademischen Argumenten gibt es noch ein praktisches Argument die meisten Sprachen, denen wir als Informatiker begegnen sind kontextfreie Sprachen (zumindest in ihrem Kern) einige Beispiel für solche Sprachen sind, die Mengen: aller Programme einer Programmiersprache, die ein Compiler übersetzen können sollte alle Dokumente, die ein Internet-Browser darstellen können sollte alle Dokumente, die ein Textverarbeitungssystems verarbeiten können sollte... 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
6 u Ein kleines Beispiel wir schauen uns eine einfache Programmiersprache genauer an, die in der Theoretischen Informatik (konkret in der Berechnungstheorie) eine wichtige Rolle spielt; das liegt daran, dass gilt: für jede berechenbare Funktion (über der Menge der natürlichen Zahlen) kann man ein Programm in dieser Programmiersprache angeben, das diese Funktion berechnet in dieser Programmiersprache gibt es nur die folgenden Sprachkonstrukte: Programmvariablen (/* x0,x1,x2,... */) Konstante (/* 0,1,2,... */) Wertzuweisungen (/* x0 := x1 + 0, x2:= x2-1,... */) While-Schleifen (/* while x2 0 do x0:= x0 + 1; x2 = x2-1 end */) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
7 u Ein kleines Beispiel (cont.) das folgende Programm in dieser Programmiersprache addiert zwei Zahlen (/* diese Zahlen werden den Variablen x1 und x2 vor dem Programmstart zugewiesen; das Ergebnis steht nach Ende der Programmausführung in der Variablen x0 */) x0 := x1 + 0; while x2 0 do x0 = x0 + 1; x2 = x2-1; end 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
8 u Ein kleines Beispiel (cont.) mit der folgenden kontextfreien Grammatik, kann man genau alle Programme dieser Programmiersprache erzeugen <P> <A> und <P> <A> ; <P> <A> <V> := <V> + <K> und <A> <V> := <V> - <K> <A> while <V> 0 do <P> end <V> x<k> <K> 0,..., <K> 9 und <K> 1<K >,..., <K> 9<K > <K > 0,..., <K > 9 und <K > <K ><K > Anmerkung: die Variable <P> steht für Programm und ist die Startvariable; die Variable <A> steht für Anweisung, <V> für Programmvariable und <K> für Konstante 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
9 u Anmerkung es gibt Programmiersprachen (/* dazu gehören auch C++ und Java */) für die gilt: es gibt keine kontextfreie Grammatik, mit der man genau alle Programme dieser Programmiersprache erzeugen kann man kann aber eine kontextfreie Grammatik angeben, für die gilt: mit dieser Grammatik kann man eine echte Obermenge aller Programme dieser Programmiersprache erzeugen man kann sehr effizient überprüfen, ob ein mit dieser Grammatik erzeugtes Wort ein Programm dieser Programmiersprache ist oder nicht... auf diesen Aspekt bezog sich der Hinweis, dass die meisten Sprachen, die uns als Informatiker begegnen, im Kern kontextfreie Sprache sind 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
10 u Ein Beispiel anhand der folgenden Programmiersprache kann man den eben diskutierten Aspekt ganz gut illustrieren (/* für C++ und Java würde diese Diskussion mehr Zeit brauchen */) stammt auch aus der theoretischen Informatik (ist genauso leistungsfähig wie die zuvor betrachtete Programmiersprache) in dieser Programmiersprache werden (wie in Assembler) die Anweisungen durchnummeriert die zugehörigen Nummern werden verwendet, um die Programmabarbeitung zu steuern 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
11 u Ein Beispiel (cont.) das folgende Programm dieser Programmsprache kann benutzt werden, um zwei Zahlen zu addieren: (a0) x0 := x1 + 0 (a1) if x2 = 0 goto (a5) (a2) x0 := x0 + 1 (a3) x2 := x2-1 (a4) goto (a1) (a5) ende 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
12 u Ein Beispiel (cont.) eine geeignete Obermenge aller Programme dieser Programmiersprache kann man mit folgender kontextfreien Grammatik erzeugen: <P> <P > <E> <E> <AN> ende <P > <A> und <P > <A> <P > <A> <AN> <V> := <V> + <K> und <A> <AN> <V> := <V> - <K> <A> <AN> goto <AN> und <A> <AN> if <V> = 0 goto <AN> <AN> (a<k>) <V> x<k> <K> 0,..., <K> 9 und <K > 1<K >,..., <K> 9<K > <K > 0,..., <K > 9 und <K > <K ><K > 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
13 u Ein Beispiel (cont.) mit der angegebenen kontextfreien Grammatik kann man auch folgendes Wort erzeugen: (a3) x0 := x1 (a1) if x2 = 0 goto (a27) (a0) x0 := x0 + 1 (a3) x2 := x2-1 (a4) goto (a0) (a5) end dass dieses Wort kein korrektes Programm ist, kann man recht einfach rauskriegen (/* allgemein überprüft man, ob die Anweisungen in aufsteigender Reihenfolge durchnummeriert sind und ob die Nummer hinter jedem goto mit einer definierten Anweisung verknüpft ist */) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
14 u Anmerkungen mit ähnlichen Problemen ist man konfrontiert, wenn man alle C++- bzw. Java-Programme mit einer kontextfreien Grammatik beschreiben will diese Probleme ergeben sich, weil in C++ bzw. Java alle Variablen und Funktionen vor ihrer Verwendung deklariert worden sein müssen und nur typ- bzw. signaturkonform verwendet werden dürfen vor der eigentlichen Übersetzung wird deshalb wie folgt vorgegangen: es werden alle verwendeten Variablen und Funktionen bestimmt es finden Prüfungen zur Typ- und Signaturkonformität statt es wird geprüft, ob das Programm mit Hilfe der zugrunde liegenden kontextfreien Grammatik erzeugt werden kann 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
15 u Zur Erinnerung: Begriff kontextfreie Grammatik (Typ-2 Grammatik) sei G = [Σ,V,S,R] eine Chomsky-Grammatik dann definieren wir: G ist genau dann eine kontextfreie Grammatik, wenn für alle Regeln l r in R gilt: die linke Seite l ist eine Variable aus V die rechte Seite r ist ein nichtleeres Wort aus (Σ V)* 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
16 u Zur Erinnerung: Begriff kontextfreie Sprache sei L Σ* dann definieren wir: L ist genau dann eine kontextfreie Sprache, wenn gilt: es gibt eine kontextfreie Grammatik G mit L(G) = L \ { ε }. 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
17 u erstes Beispiel Palindrome ein Palindrom ist ein Wort, das von links nach rechts gelesen und von rechts nach links gelesen dasselbe Wort ergibt einige Beispiel: Reliefpfeiler (reliefpfeiler) Ein Esel lese nie (einesellesenie) /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
18 u erstes Beispiel Palindrome (cont.) wir interessieren uns für alle Palindrome über dem Alphabet Σ = { a,b,c } zugrunde liegende induktive Definition: Die Wörter a,b,c,aa,bb und cc sind Palindrome. Es sei w ein Palindrom. Dann sind auch die folgenden drei Wörter Palindrome: a w a, b w c und c w c. abgeleitete kontextfreie Grammatik für die Sprache, die alle Palindrome über den Alphabet Σ = { a,b,c } enthält folgende Regeln: S a b c und S aa bb cc S asa, S bsb und S csc Hinweis: S a b c steht für die drei Regel S a, S b und S c 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
19 u zweites Beispiel Σ = { a,b,c } L = { a i b c j i,j N und i j } zugrunde liegende induktive Definition der Sprache L: Das Wort abc gehört zur Sprache L. Es sei w ein Wort aus L. Dann gehören auch die folgenden zwei Wörter zur Sprache L: a w c und w c. abgeleitete kontextfreie Grammatik für die Sprache L, mit der Startvariablen S und zwei weiteren Variablen A und B: S A und S AB A abc und A aac B c und B cb 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
20 u drittes Beispiel sei Σ = { 0,1 } sei L = { 0 i 1 j 0 k i,j,k N und (i = j oder j = k) } kontextfreie Grammatik für die Sprache L, mit der Startvariablen S und drei weiteren Variablen A, B und C: S AB CA A 0 0A B 10 1B0 C 01 0C1 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
21 u.. und nun zum algorithmischen Aspekt sei L Σ* mit ε L es sei G = [Σ,V,S,R] eine kontextfreie Grammatik mit L(G) = L wir suchen einen Algorithmus, mit dem man für jedes Wort w Σ* entscheiden kann, ob w L gilt dazu benötigen wir den Begriff Ableitungsbaum und den Begriff kontextfreie Grammatik in Chomsky-Normalform... um den Fall, dass die Sprache L das leere Wort enthält, müssen wir uns nicht ernsthaft kümmern 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
22 u zentraler Begriff: Ableitungsbaum es sei G = [Σ,V,S,R] eine kontextfreie Grammatik es sei w L(G) Ein Ableitungsbaum für w ist ein Baum, für den gilt: seine Wurzel ist mit S markiert jeder innere Knoten ist mit einer Variablen A V markiert die Söhne eines inneren Knotens mit der Variablen A ergeben von links nach rechts gelesen die rechte Seite einer Regel zum Ersetzen von A die Blätter sind jeweils mit einem Buchstaben aus Σ markiert (/ *die Blätter von links nach rechts gelesen ergeben das Wort w */) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
23 u Ableitungsbäume (/* Beispiele */) S AB CA A 0 0A B 10 1B0 C 01 0C1 w = S S C A A B 0 C 1 0 A 0 A 1 B /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
24 u Anmerkung es sei G = [Σ,V,S,R] eine kontextfreie Grammatik es sei w L(G) und B ein Ableitungsbaum für w... in B finden sich mehrere Ableitungen des Wortes w 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
25 u Illustration S AB CA A 0 0A B 10 1B0 C 01 0C1 w = S S G CA G 0C1A G 0011A G 00110A G C A S G CA G 0C1A G 0C10A G 0C100 G C 1 0 A S G CA G C0A G C00 G 0C100 G /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
26 u Anmerkung es sei G = [Σ,V,S,R] eine kontextfreie Grammatik es sei w L(G) es gibt in der Regel mehrere Ableitungsbäume für w in jedem Ableitungsbaum finden sich mehrere Ableitungen von w in jedem Ableitungsbaum findet sich eine eindeutig festgelegte Linksableitung von w (/* es wird jeweils die am weitesten links stehende Variable ersetzt */) in jedem Ableitungsbaum findet sich eine eindeutig festgelegte Rechtsableitung von w (/* es wird jeweils die am weitesten rechts stehende Variable ersetzt */) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
27 u Anmerkung um herauszukommen, ob ein gegebenes Wort w aus der Startvariablen einer gegebenen kontextfreien Grammatik G ableitbar ist (d.h. zur Sprache L(G) gehört), versucht man eine Rechts- bzw. Linksableitung für das Wort w zu konstruieren oder nachzuweisen, dass es keine Links- bzw. Rechtsableitung für das Wort w gibt... das geht einfach, wenn die gegebene Grammatik bestimmte Eigenschaften hat (d.h. in Chomsky-Normalform ist) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
28 u Chomsky-Normalform für kontextfreie Grammatik es sei G = [Σ,V,S,R] eine kontextfreie Grammatik G ist in Chomsky-Normalform, falls für alle Regeln l r von G gilt: l V r = x mit x Σ oder r = AB mit A,B V u Einordnung Es sei L eine kontextfreie Sprache. Dann gibt es eine Grammatik G = [Σ,V,S,R] in Chomsky-Normalform, so dass L(G) = L \ { ε } gilt. 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
29 u Vorteile von kontexfreien Grammatiken in Chomsky-Normalform (Teil 1) es sei G = [Σ,V,S,R] eine Grammatik in Chomsky-Normalform es sei w L(G) mit w = n Jede Ableitung des Worts w benötigt genau 2n-1 viele Ableitungsschritte. u Hintergrund... jeder Ableitungsbaum für w ist mit Ausnahme der letzten Ebene ein Binärbaum... ein Binärbaum mit n Blättern hat n-1 viele innere Knoten 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
30 u Beispiel Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 S A C 0 S B A B /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
31 u Vorteile von Grammatiken in Chomsky-Normalform (/* Teil 2 */) es sei G = [Σ,V,S,R] eine Grammatik in Chomsky-Normalform es sei w Σ* mit w = x 1...x n es sei A V Das Wort w ist aus der Variablen A ableitbar (/* d.h. A G * w */) gdw. es tritt einer der folgenden beiden Fälle ein: Fall 1: falls n = 1 gilt, muß es die Regel A x 1 in G geben Fall 2: falls n > 1 gilt, muß es ein z { 1,...,n-1 }, Variablen B,C V und eine Regel A BC in G geben, so daß gilt: B G * x 1...x z C G * x z+1...x n... kann man benutzen, um unter Verwendung des Paradigmas der dynamischen Programmierung einen effizienten Algorithmus zur Lösung des Wortproblems für L(G) zu konzipieren 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
32 u Cocke-Younger-Kasami Algorithmus es sei G = [Σ,V,S,R] eine Grammatik in Chomsky-Normalform es sei w Σ* mit w = x 1... x n verwendete Datenstruktur: Tabelle der Größe n n Zelle t[i][k] enthält Informationen, die das Teilwort x i x i+1... x i+k-1 betreffen (/* d.h. das Teilwort betreffen, welches in w an der Position i beginnt und aus k Zeichen besteht */) t[i][k] enthält die Variable A V, falls A G * x i x i+1... x i+k-1 gilt 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
33 u Cocke-Younger-Kasami Algorithmus (cont.) Berechnungsvorschrift (/* jede Zelle auf und über der Nebendiagonalen enthält nach der Berechnung eine (eventuell leere) Menge von Variablen */): Eingabe: ein Wort w = x 1... x n (1) falls k = 1 ist, so gilt für eine Variable A genau dann A t[i][k], wenn es die Regel A x i in G gibt (2) falls k > 1 ist, so gilt für eine Variable A genau dann A t[i][k], wenn es eine Regel A BC in G gibt und für ein z { 1,...,k-1 } gilt, dass B t[i][z] und C t[i+z][k-z] gilt 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
34 u Beispiel Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 i k /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
35 u Beispiel (cont.) Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 i k 1 { A } { A } { B } { B } 1 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
36 u Beispiel (cont.) Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 i k 1 { A } { A } { B } 2 { S } { B } 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
37 u Beispiel (cont.) Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 i k 1 { A } { A } { B } 2 { S } 3 { C } { B } 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
38 u Beispiel (cont.) Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 i k 1 { A } { A } { B } 2 { S } 3 { C } 4 { S } { B } S G AC G 0C G 0SB G 0ABB G 00BB G 001B G /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
39 CYK-Algorithmus u Cocke-Younger-Kasami Algorithmus es sei G = [Σ,V,S,R] eine Grammatik in Chomsky-Normalform es sei w Σ* mit w = x 1... x n für i = 1,...,n: setze t[i][1] := { A A x i } für k = 2,...,n: für i = 1,...,n - k + 1: setze t[i][k] := für z = 1,...,k - 1: füge ein A V zu t[i][z] hinzu, falls es B,C V mit folgenden Eigenschaften gibt: - B t[i][z] - C t[i+ z][k-z] - die Regel A BC gehört zu R falls S t[1][n], gib 1 aus; sonst gib 0 aus 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
40 u Cocke-Younger-Kasami Algorithmus löst das Wortproblem für eine kontextfreie Sprache L = L(G), falls die Grammatik G in Chomsky-Normalform ist der CYK-Algorithmus benötigt O(n 3 ) viele Schritte, um für ein Wort w der Länge n zu entscheiden, ob w L(G) oder w L(G) gilt (/* die Größe von G ist in der O-Notation versteckt */) der CYK- Algorithmus basiert auf dem Paradigma der dynamischen Programmierung... es gelte o.b.d.a. wieder ε L 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
41 u zurück zu Chomsky-Normalformen Es sei L eine kontextfreie Sprache. Dann gibt es eine kontextfreie Grammatik G = [Σ,V,S,R] in Chomsky-Normalform mit L(G) = L \ { ε }. es sei G = [Σ,V,S,R] eine kontextfreie Grammatik dann kann man aus G eine Grammatik G = [Σ,V,S,R ] in Chomsky- Normalform konstruieren, so dass L(G ) = L(G) gilt... der CYK-Algorithmus löst das Membership-Problem für alle kontextfreien Sprachen... bevor man den CYK-Algorithmus anwenden kann, ist ein Art pre-processing erforderlich (/* man muss zu G erst eine äquivalente Grammatik G in Chomsky-Normalform konstruieren */) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
42 u Zur Erinnerung die Regeln einer kontextfreien Grammatik in Chomsky-Normalform dürfen nur die Form u Typen von Regeln X x bzw. X YZ haben um eine kontextfreie Grammatik G, die nicht in Chomsky-Normalform ist, in eine äquivalente kontextfreie Grammatik G in Chomsky-Normalform zu überführen, klassifizieren wir die Regeln von G wie folgt: Typ A: Regeln die schon in Chomsky-Normalform sind Typ B: Regeln, deren rechte Seiten mindestens zwei Zeichen enthalten Typ C: alle anderen Regeln, also genau die Regeln der Form X Y 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
43 u Zum Umgang mit Regeln vom Typ A hier ist nichts zu tun (die Regeln werden einfach in G übernommen) u Zum Umgang mit Regeln vom Typ B jede Regel von diesem Typ kann separat behandelt werden für jede Regel l r in G werden endlich viele äquivalente Regeln l 1 r 1,..., l k r k in Chomsky-Normalform in G aufgenommen 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
44 u Details für den Umgang mit Regeln vom Typ B Regel in G: A ab anstatt der Regel A ab fügt man die folgenden Regeln zu G hinzu: H a a und H b b A H a H b... die Regel A ab entspricht der Regel A H a H b... offenbar kann man mit diesen drei neuen Regeln nicht mehr (und nicht weniger) tun, als mit der gegebenen Regel 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
45 u Details für den Umgang mit Regeln vom Typ B (cont.) Regel in G: A cxcy anstatt der Regel A cxcy fügt man die folgenden Regeln zu G hinzu: H c c A H c H 1, H 1 XH 2 und H 2 H c Y... die Regel A cxcy entspricht der Regel A H c XH c Y, deren rechte Seite aus vier Variablen besteht... offenbar kann man mit diesen vier neuen Regeln nicht mehr (und nicht weniger) tun, als mit der gegebenen Regel 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
46 u Schritte des pre-processing Schritt 0: Schritt 1: Schritt 2: Schritt 3: Die Regeln von G werden in drei Gruppen R A, R B und R C aufgeteilt (/* R A enthält alle Regeln vom Typ A; R B alle vom Typ B; R C alle vom Typ C */). Alle Regeln aus R A in die Regelmenge von G übernommen. Für jede Regel aus R B werden äquivalente Regeln in Chomsky- Normalform in die Regelmenge von G aufgenommen. Es wird sich um die Regeln in R C gekümmert. 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
47 u Beispiel (/* Schritt 0 bis Schritt 2 */) Σ = { a,b } V = { S } Σ = { a,b } V = { S,H a,h b,v 1 } S asb S ab S H a V 1 V 1 SH b S H a H b H a a H b b 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
48 u Anmerkungen zu Schritt 3 da wir wissen, wie man kontextfreie Regeln vom Typ B äquivalent durch kontextfreie Regeln in Chomsky-Normalform ersetzt, müssen wir nur noch den folgenden Fall betrachten gegeben ist eine kontextfreie Grammatik G, die nur Regeln vom Typ A (also Regeln in Chomsky-Normalform) und Regeln vom Typ C (also Regeln der Form X Y) enthält Regeln vom Typ C kann man nicht separat ersetzen, d.h. man muss beachten, welche anderen Regeln in G vorkommen 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
49 u generelle Idee sei X Y eine Regel vom Typ C seien Y l 1,..., Y l k alle Regeln vom Typ A mit der linken Seite Y dann gehe wie folgt vor: streiche die Regel X Y nimm die Regeln X l 1,..., X l k auf da die Regeln Y l 1,..., Y l k in Chomsky-Normalform sind, sind die neuen Regeln X l 1,..., X l k auch in Chomsky-Normalform 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
50 u Beispiel Σ = { a,b } V = { S,A,B} S AA S AB S A A BB A a B b Σ = { a,b } V = { S,A,B } S AA S AB A BB A a B b S BB S a 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
51 u Anmerkungen es geht nicht immer so einfach... S AA und S B A a und A B B b und B A falls wir uns um die Regel S B kümmern, so erhalten wir: S AA, S b und S A A a und A B B b und B A falls wir uns jetzt um die Regel S A kümmern, so erhalten wir: S AA, S b, S a und S B A a und A B B b und B A... das Spiel können wir beliebig iterieren 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
52 u Anmerkungen (cont.) besser ist es wie folgt vorzugehen S AA und S B A a und A B B b und B A wir schauen uns nur die Regeln vom Typ C an S A, A B und B A da sie einen Zyklus enthalten, können wir die Variablen A und B in jeder Regel von G durch eine neue Variable H ersetzen S AA und S H H a und H H H b und H C... jetzt können wir die Regeln H H streichen und wie gehabt weitermachen 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
53 u Verallgemeinerung (/* Schritt 3 */) betrachte in G alle Regeln vom Typ C gemeinsam, d.h. alle Regeln der Form X Y überprüfe, ob diese Regeln zyklenfrei sind falls ja, wähle eine neue Variable H und ersetze in jeder Regel von G jeder Variable X, die in diesem Zyklus vorkommt, durch die neue Variable H und streiche alle neuen Regeln der Form H H falls nein, verfahre mit den verbliebenden Regeln der Form X Y wie bereits erläutert, wobei zu beachten ist: im Fall, dass mehr als eine Regel vom Typ C übrigbleibt, wähle stets eine Regel X Y für die es keine Regel der Form Y Z in der Menge der verbliebenden Regeln vom Typ C gibt 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
54 u Beispiel Σ = { a,b } V = { S,A,B,C } Σ = { a,b } V = { S,H } S AA S AC S A A B B A B C A a B b C AA S A A B B A B C A = B S HH S HC S H H H H H H C H a H b C HH S HH S HC S H H HH H a H b C HH... 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Kapitel 2: Formale Sprachen Gliederung
Gliederung 0. Einleitung und Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. Chomsky-Grammatiken 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen
MehrKapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen
reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung
MehrKapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie
Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen 2/1, Folie 1 2015 Prof. Steffen
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 15.01.2015 INSTITUT FÜR THEORETISCHE 0 KIT 15.01.2015 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrKlammersprache Definiere
Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere
MehrLemma Für jede monotone Grammatik G gibt es eine kontextsensitive
Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G
MehrKapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung
Gliederung 1. Berechenbarkeitstheorie 2. Grundlagen 3. Grundlegende Ergebnisse aus der Komplexitätstheorie 4. Die Komplexitätsklassen P und NP 5. Die Komplexitätsklassen RP und BPP 3.1. Ressourcenkompression
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
Mehrkontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung
Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben
MehrKapitel 3: Berechnungstheorie Gliederung
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 3.1. Einordnung 3.2. Berechnungsmodelle 3.3. Diskussion 3.4. Ergebnisse und
MehrI.5. Kontextfreie Sprachen
I.5. Kontextfreie prachen Zieht man in Betracht, dass BNF-yteme gerade so beschaffen sind, dass auf der linken eite immer genau ein Nichtterminal steht, so sind das also gerade die Ableitungsregeln einer
MehrKapitel 3: Berechnungstheorie Gliederung
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 3.1. Einordnung 3.2. Berechnungsmodelle 3.3. Diskussion 3.4. Ergebnisse und
MehrTheoretische Informatik
Theoretische Informatik Sommersemester 2016 Steffen Lange 0/1, Folie 1 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik Literatur S. Lange, M. Margraf, Theoretische Informatik, Lehrmaterial
MehrUmformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.
Chomsky-0-Grammatik Rek. Aufz. Satz T5.2.2: Wenn L durch eine Chomsky-0- Grammatik G beschrieben wird, gibt es eine NTM M, die L akzeptiert. Beweis: Algo von M: Schreibe S auf freie Spur. Iteriere: Führe
MehrKapitel 3: Berechnungstheorie Gliederung
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 3.1. Einordnung 3.2. Berechnungsmodelle 3.3. Diskussion 3.4. Ergebnisse und
MehrÜbungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 7 Vorlesung Theoretische Grundlagen der Informatik im W 16/17 Ausgabe 17. Januar 2017 Abgabe 31. Januar 2017, 11:00 Uhr (im
MehrGrammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen
Grammatiken Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken eignen sich besonders zur Modellierung beliebig tief geschachtelter,
MehrÜbungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 10. Januar 2018 Abgabe 23. Januar 2018, 11:00 Uhr (im
MehrKontextfreie (Typ-2) Sprachen
Kontextfreie (Typ-2) prachen Bsp.: L 1 = { n 1 n n>} с {,1}* 1 1 L 2 = {w wє{,1}* und w=w rev } с {,1}* 11 1 ε L 3 = {w w hat genausoviele Nullen wie Einsen} с {,1}* B 1 ε 1 B 1 1 BB 1 11 11 11 11B 111
MehrMaike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden
Maike Buchin 8. Februar 26 Stef Sijben Probeklausur Theoretische Informatik Bearbeitungszeit: 3 Stunden Name: Matrikelnummer: Studiengang: Geburtsdatum: Hinweise: Schreibe die Lösung jeder Aufgabe direkt
MehrTheorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie
Theorie der Informatik 17. März 2014 6. Formale Sprachen und Grammatiken Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 6.1 Einführung
MehrKapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14
Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen
MehrWas bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen
Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen (Kontextsensitive) Sprachen L 2 Menge aller kontextfreien
MehrKontextfreie Sprachen
Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung
MehrAutomatentheorie und formale Sprachen
Automatentheorie und formale Sprachen VL 8 Chomsky-Grammatiken Kathrin Hoffmann 23. Mai 2012 Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 23.5. 2012 250 Wortproblem Wortproblem ist das
Mehr2.1 Allgemeines. Was ist eine Sprache? Beispiele:
Was ist eine Sprache? Beispiele: (a) Deutsch, Japanisch, Latein, Esperanto,...: Natürliche Sprachen (b) Pascal, C, Java, Aussagenlogik,...: Formale Sprachen Wie beschreibt man eine Sprache? (i) Syntax
MehrLösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004
Lösung zur Klausur Grundlagen der Theoretischen Informatik im WiSe 2003/2004 1. Geben Sie einen deterministischen endlichen Automaten an, der die Sprache aller Wörter über dem Alphabet {0, 1} akzeptiert,
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (II) 11.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie
MehrKapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie
Gliederung. Grundbegriffe. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.. Chomsky-Grammatiken 2.2. Reguläre Sprachen (noch weiter) 2.3. Kontextfreie Sprachen 2/4,
MehrAutomaten und formale Sprachen Klausurvorbereitung
Automaten und formale Sprachen Klausurvorbereitung Rami Swailem Mathematik Naturwissenschaften und Informatik FH-Gießen-Friedberg Inhaltsverzeichnis 1 Definitionen 2 2 Altklausur Jäger 2006 8 1 1 Definitionen
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (III) 17.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie
MehrKontextfreie Sprachen
Kontextfreie Sprachen besitzen große Bedeutung im Compilerbau Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung durch
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 17. Januar 2012 INSTITUT FÜR THEORETISCHE 0 KIT 18.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der
MehrTheoretische Informatik Mitschrift
Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (I) 3.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Organisatorisches 1. Teilklausur: Mittwoch,
MehrInformatik III. Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung 09.11.2006 schindel@informatik.uni-freiburg.de 1 Äquivalenzklassen Definition und Beispiel Definition Für eine Sprache L Σ* bezeichnen
MehrInformatik III. Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung 10.11.2006 schindel@informatik.uni-freiburg.de 1 Kapitel IV Kontextfreie Sprachen Kontextfreie Grammatik Informatik III 6. Vorlesung
MehrEinführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie
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
MehrAutomaten und formale Sprachen Notizen zu den Folien
Automaten und formale prachen Notizen zu den Folien 10 Kontextfreie Grammatiken Beispiele für kontextfreien Grammatiken ei Σ = {a, b}. Beispiel 1 (Folie 233, oben) Geben ie eine kontextfreie Grammatik
MehrAutomaten und formale Sprachen Notizen zu den Folien
Automaten und formale prachen Notizen zu den Folien 10 Kontextfreie Grammatiken Beispiele für kontextfreien Grammatiken ei Σ = {a, b}. Beispiel 1 (Folie 211, oben) Geben ie eine kontextfreie Grammatik
MehrAlphabet, formale Sprache
n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l
MehrGrundlagen der Informatik II. Teil I: Formale Modelle der Informatik
Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende
Mehr(Prüfungs-)Aufgaben zu formale Sprachen
(Prüfungs-)Aufgaben zu formale Sprachen (siehe auch bei den Aufgaben zu endlichen Automaten) 1) Eine Grammatik G sei gegeben durch: N = {S, A}, T = {a, b, c, d}, P = { (S, Sa), (S, ba), (A, ba), (A, c),
MehrSei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.
Der Satz von Kleene Wir haben somit Folgendes bewiesen: Der Satz von Kleene Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden
MehrGrundlagen der Theoretischen Informatik
1 Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Wintersemester 2014/15 2 Kontextfreie Grammatiken Definition: Eine Grammatik G
MehrTheorie der Informatik
Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax
Mehr1 Automatentheorie und Formale Sprachen
Sanders: TGI October 29, 2015 1 1 Automatentheorie und Formale Sprachen 1.1 Allgemeines Sanders: TGI October 29, 2015 2 Beispiel: Arithmetische Ausdrücke:EXPR Σ={1,a,+,,,(,)} a ist Platzhalter für Konstanten
MehrGrundlagen der Informatik II
Grundlagen der Informatik II Tutorium 2 Professor Dr. Hartmut Schmeck Miniaufgabe * bevor es losgeht * Finden Sie die drei Fehler in der Automaten- Definition. δ: A = E, S, δ, γ, s 0, F, E = 0,1, S = s
MehrVorlesung im Sommersemester Informatik IV. Probeklausurtermin: 21. Juni 2016
Heinrich-Heine-Universität Düsseldorf Institut für Informatik Prof. Dr. J. Rothe Universitätsstr. 1, D-40225 Düsseldorf Gebäude: 25.12, Ebene: O2, Raum: 26 Tel.: +49 211 8112188, Fax: +49 211 8111667 E-Mail:
Mehr1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff
MehrFormale Sprachen. Script, Kapitel 4. Grammatiken
Formale Sprachen Grammatiken Script, Kapitel 4 erzeugen Sprachen eingeführt von Chomsky zur Beschreibung natürlicher Sprache bedeutend für die Syntaxdefinition und -analyse von Programmiersprachen Automaten
MehrAlgorithmen und Datenstrukturen I - Exkurs Formale Sprachen -
Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 1 Exkurs: Formale
MehrDefinition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An
Definition 4 (Operationen auf Sprachen) Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A 0 = {ɛ}, A n+1 = AA n A = n 0 An A + = n 1 An Beispiel 5 {ab, b}{a, bb} = {aba, abbb,
MehrTheoretische Informatik I
Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Verarbeitung von Programmiersprachen Was ist das einfachste
MehrKapitel 0: Grundbegriffe Gliederung
Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechenbarkeitstheorie 4. Komplexitätstheorie 5. Kryptographie 0/2, Folie 1 2009 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
MehrInformatik IC2. Balazs Simon
Informatik IC2 Balazs Simon Inhaltsverzeichnis 1 Contextfreie Sprachen 3 1.1 Ableitungsbaum..................................... 3 1.2 Schönheit........................................ 4 1.3 Normalformen......................................
MehrKontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45
Kontextfreie Grammatiken Kontextfreie Grammatiken 1 / 45 Was kann man mit kontextfreien Grammatiken anfangen? Kontextfreie Grammatiken, kurz: werden zur Modellierung von KFGs beliebig tief geschachtelten
Mehrq 0 q gdw. nicht (q A) (q A) q i+1 q gdw. q i q oder ( a Σ) δ(q, a) i δ(q, a) L = {a n b n : n N} für a, b Σ, a b
Kap. 2: Endliche Automaten Myhill Nerode 2.4 Minimalautomat für reguläre Sprache Abschnitt 2.4.3 L Σ regulär der Äuivalenzklassen-Automat zu L ist ein DFA mit minimaler Zustandszahl (= index( L )) unter
MehrGrammatiken. Einführung
Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische
Mehr1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 139 Unentscheidbarkeit Überblick Zunächst einmal definieren wir formal
MehrNachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen
Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 6 7 7 8 8 12 err. Punkte Gesamtpunktzahl: Note: 1 Aufgabe 1 (3+1+1+1 = 6 Punkte) Es seien
MehrTutoraufgabe 1 (ɛ-produktionen):
Prof aa Dr J Giesl Formale Systeme, Automaten, Prozesse SS 2010 M Brockschmidt, F Emmes, C Fuhs, C Otto, T Ströder Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus dem gleichen Tutorium
Mehr1. Klausur Einführung in die Theoretische Informatik Seite 1 von 14
1. Klausur Einführung in die Theoretische Informatik Seite 1 von 14 1. Welche der folgenden Aussagen zu Normalformen einer aussagenlogischen Formel A ist falsch? A. Für Formel A existiert eine KNF K, sodass
MehrBeschreibungskomplexität von Grammatiken Definitionen
Beschreibungskomplexität von Grammatiken Definitionen Für eine Grammatik G = (N, T, P, S) führen wir die folgenden drei Komplexitätsmaße ein: Var(G) = #(N), Prod(G) = #(P ), Symb(G) = ( α + β + 1). α β
MehrGrammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)
Grammatiken Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V Startsymbol S V Produktionen P ( (V Σ) \ Σ ) (V Σ) Kurzschreibweise G = (V, Σ, P, S) Schreibweise für Produktion (α, β) P: α β 67 /
MehrKapitel 2: Formale Sprachen Gliederung
Gliederung. Einleitung und Grundbegriffe. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.. Chomsky-Grammatiken 2.2. Reguläre Sprachen Reguläre Grammatiken, ND-Automaten
MehrTheoretische Informatik Kap 1: Formale Sprachen/Automatentheorie
Gliederung der Vorlesung. Grundbegriffe. Formale Sprachen/Automatentheorie.. Grammatiken.2..3. Kontext-freie Sprachen 2. Berechnungstheorie 2.. Berechenbarkeitsmodelle 2.2. Die Churchsche These 2.3. Unentscheidbarkeit
MehrÜbungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN
Universität Heidelberg / Institut für Informatik 7. Juli 24 Prof. Dr. Klaus Ambos-Spies Nadine Losert Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 2 LÖSUNGEN Aufgabe Verwenden
MehrMehrdeutige Grammatiken
Mehrdeutige Grammatiken Wir haben gesehen, dass es auch mehr als eine Linksableitung, d.h. mehr als einen Syntaxbaum geben kann, um das selbe Terminalwort zu erzeugen. Eine Grammatik, die für mindestens
MehrGrundlagen der Informatik II
Grundlagen der Informatik II Dr.-Ing. Sven Hellbach S. Hellbach Grundlagen der Informatik II Abbildungen entnommen aus: Dirk W. Hoffmann: Theoretische Informatik; Hanser Verlag 2011, ISBN: 978-3-446-42854-6
MehrEinführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 7
Prof. J. Esparza Technische Universität München S. Sickert, J. Krämer KEINE ABGABE Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt 7 Übungsblatt Wir unterscheiden zwischen Übungs-
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch
MehrDank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs)
ank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert iese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 18. Januar 2018 INSTITUT FÜR THEORETISCHE 0 18.01.2018 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität
MehrDank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep
Dank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen
MehrGrundbegriffe. Grammatiken
Grammatiken Grammatiken in der Informatik sind ähnlich wie Grammatiken für natürliche Sprachen ein Mittel, um alle syntaktisch korrekten Sätze (hier: Wörter) einer Sprache zu erzeugen. Beispiel: Eine vereinfachte
Mehr2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik
2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik Ulrich Furbach Claudia Schon Christian Schwarz Arbeitsgruppe Künstliche Intelligenz Fachbereich Informatik, Universität Koblenz-Landau
MehrChomsky-Grammatiken 16. Chomsky-Grammatiken
Chomsky-Grammatiken 16 Chomsky-Grammatiken Ursprünglich von Chomsky in den 1950er Jahren eingeführt zur Beschreibung natürlicher Sprachen. Enge Verwandschaft zu Automaten Grundlage wichtiger Softwarekomponenten
MehrMotivation natürliche Sprachen
Motivation natürliche Sprachen (Satz) (Substantivphrase)(Verbphrase) (Satz) (Substantivphrase)(Verbphrase)(Objektphrase) (Substantivphrase) (Artikel)(Substantiv) (Verbphrase) (Verb)(Adverb) (Substantiv)
MehrFormale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER
Formale Sprachen Grammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marian KOGLER Grammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind Grammatiken.
MehrEinführung in die Theoretische Informatik
Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm
MehrReguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,
Reguläre Sprachen Reguläre Sprachen (Typ-3-Sprachen) haben große Bedeutung in Textverarbeitung und Programmierung (z.b. lexikalische Analyse) besitzen für viele Entscheidungsprobleme effiziente Algorithmen
Mehr4.2 Die Chomsky Normalform
4.2 Die Chomsky Normalform Für algorithmische Problemstellungen (z.b. das Wortproblem) aber auch für den Nachweis von Eigenschaften kontextfreier Sprachen ist es angenehm, von CFG in Normalformen auszugehen.
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 10.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
Mehr1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
MehrWS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven
WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven 1. Allgemeines 2. Formale Sprachen 3. Formale Grammatiken 4. Chomsky-Hierarchie 5.
MehrTheoretische Informatik I (Grundzüge der Informatik I)
Theoretische Informatik I (Grundzüge der Informatik I) Literatur: Buch zur Vorlesung: Uwe Schöning, Theoretische Informatik - kurzgefasst. Spektrum Akademischer Verlag, Heidelberg/Berlin, 4. Auflage, 2001.
MehrWas bisher geschah: Formale Sprachen
Was bisher geschah: Formale Sprachen Alphabet, Wort, Sprache Operationen und Relationen auf Wörtern und Sprachen Darstellung unendlicher Sprachen durch reguläre Ausdrücke (Syntax, Semantik, Äquivalenz)
MehrKontextfreie Grammatiken
Kontextfreie Grammatiken Bisher haben wir verschiedene Automatenmodelle kennengelernt. Diesen Automaten können Wörter vorgelegt werden, die von den Automaten gelesen und dann akzeptiert oder abgelehnt
MehrInformales Beispiel. Formale Grundlagen der Informatik 1 Kapitel 6 Eigenschaften kontextfreier Sprachen. Grammatiken. Anmerkungen
Informales Beispiel Formale Grundlagen der Informatik 1 Kapitel 6 Eigenschaften kontextfreier Sprachen Frank Heitmann heitmann@informatik.uni-hamburg.de 22. April 2014 I L IL ID L a b c D 0 1 2 3 4 Eine
MehrKapitel 3: Untere Schranken für algorithmische Probleme Gliederung
Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte
MehrGrundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I
Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:
Mehr1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI
MehrKontextfreie Sprachen Kontextfreie Sprachen und Grammatiken. Satzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft
und Grammatiken (Folie 119, eite 202 im kript) atzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft a, b, c,... für Terminalsymbole A, B, C,... für Nonterminale u, v, w,... für Terminalwörter
MehrTheoretische Informatik I
Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Theoretische nformatik inheit 3.1 Kontextfreie Grammatiken
MehrNachklausur zur Vorlesung
Lehrstuhl für Theoretische Informatik Prof. Dr. Markus Lohrey Grundlagen der Theoretischen Informatik Nachklausur Nachklausur zur Vorlesung Grundlagen der Theoretischen Informatik WS 2016/17 / 27. Februar
MehrFormale Grundlagen der Informatik
Formale Grundlagen der Informatik / 2015 1 Reguläre Ausdrücke Kommen in der Praxis immer dann vor, wenn standardisierte Eingaben erforderlich sind: Telefonnummern: +Land (0) Ort Anschluß Dateinamen: (A-Z,
Mehr7. Syntax: Grammatiken, EBNF
7. Syntax: Grammatiken, EBNF Teil 1 Sehr schönes Beispiel für Notwendigkeit der Theoretischen Informatik für Belange der Praktischen Informatik Vertiefung in: Einführung in die Theoretische Informatik
Mehr