5.7 Kontextfreie Grammatiken und Kellerautomaten

Größe: px
Ab Seite anzeigen:

Download "5.7 Kontextfreie Grammatiken und Kellerautomaten"

Transkript

1 Kontextfreie Grammatiken und Kellerautomaten Im letzten Abschnitt haben wir gesehen, dass wir reguläre Sprachen auch mit Hilfe von endlichen Automaten charakterisieren können. Jetzt wollen wir ein Rechenmodell definieren, dass die kontextfreien Sprachen charakterisiert. Es wird sich dabei um die Kellerautomaten (PDA für pushdown automaton) handeln. Anders als bei endlichen Automaten werden wir Kellerautomaten gleich mit Nichtdeterminismus definieren, da gezeigt werden kann, dass deterministische Kellerautomaten nicht äquivalent zu den nichtdeterministischen Kellerautomaten sind. Diejenigen kontextfreien Sprachen, die von deterministischen Kellerautomaten akzeptiert werden können, spielen in der Theorie der Programmiersprachen eine große Rolle. Darauf einzugehen, würde allerdings den Rahmen dieser Vorlesung sprengen Kellerautomaten Kellerautomaten (PDAs) ähneln NFAs, die einen stark eingeschränkten Speicher besitzen. Dieser Speicher wird durch einen sogenannten Stapel oder Keller oder Stack realisiert. Bei einem Stapel kann nur auf das zuletzt eingefügte Element zugegriffen werden. Soll auf ein anderes Element zugegriffen werden, so müssen zunächst alle nach diesem Element eingefügten Elemente aus dem Stapel entfernt werden. Wie der Name Stapel schon sagt, stellen wir uns die in einem Stapel gespeicherten Elemente von unten nach oben angeordnet vor. Das zuletzt eingefügte Element liegt dabei ganz oben auf dem Stapel. Hinzufügen eines Elementes auf einen Stapel nennen wir Ablegen eines Elementes oder eine Push-Operation. Entfernen eines Elementes nennen wir auch eine Pop-Operation. Ein PDA wird wie ein NFA genau einmal über die Eingabe gehen. Der letzte Zustand, der dabei erreicht wird, entscheidet, ob die Eingabe akzeptiert wird oder nicht. Wir werden allerdings auch so genannte ɛ-bewegungen zulassen. Dies bedeutet, dass ein PDA den Zustand wechseln und den Stapel ändern kann, ohne ein Eingabesymbol zu lesen. Schematisch können wir einen PDA wie in Abbildung 5.12 darstellen. Abbildung 5.12: Schematische Darstellung eines Kellerautomaten. Zur Beschreibung von ɛ-bewegungen erweitern wir bei einem PDA das Eingabealphabet Σ um die leere Folge ɛ. Wir bezeichnen dieses erweiterte Alphabet mit Σ ɛ. Analog erweitern wir das Alphabet Γ des Stapels um ɛ zum Alphabet Γ ɛ. Definition Ein Kellerautomat (PDA) ist definiert durch ein 6-Tupel (Q, Σ, Γ, δ, q 0, F ), wobei

2 131 Q eine endliche Menge von Zuständen ist, Σ das endliche Eingabealphabet ist, Γ das endliche Stapelalphabet ist, δ : Q Σ ɛ Γ ɛ P(Q Γ ɛ ) die Übergangsfunktion ist, q 0 der Startzustand ist, F Q die Menge von akzeptierenden Zuständen ist. Da wir die Zustandsfunktion als eine Abbildung in die Potenzmenge von Q Γ ɛ definiert haben, sind Kellerautomaten nichtdeterministisch. Da wir als Definitionsbereich von δ die Menge Q Σ ɛ Γ ɛ haben und wir insbesondere als gelesenes Eingabesymbol ɛ zulassen, können Kellerautomaten Aktionen ausführen ohne ein Eingabesymbol zu lesen. Diese wird durch die folgenden Erläuterungen der Rechenschritte von Kellerautomaten präzisiert. Ist (q, z) δ(q, a, u), q, q Q, a, u, z Γ ɛ, so kann der PDA, wenn er sich im Zustand q befindet, das Eingabesymbol a liest und das oberste Stapelsymbol u ist, in den Zustand q gehen, das Stapelsymbol u entfernen (= Pop-Operation) und das Symbol z auf dem Stapel ablegen (= Push-Operation). Wir erlauben also, dass eine Pop- und eine Push-Operation gleichzeitig in einem Schritt erfolgen. Wir lassen in unserer Definition aber auch u, z = ɛ zu. Ist u = ɛ, so bedeutet dieses, dass nur das Element z abgelegt wird, aber kein Element vom Stapel entfernt wird. Ist hingegen z = ɛ, so wird das Element u entfernt, aber kein anderes Element von Γ auf den Stapel abgelegt. Schließlich gibt es noch den Fall, dass gleichzeitig u = ɛ und v = ɛ gilt. In diesem Fall wechselt der Kellerautomat nur den Zustand. Ein PDA K = (Q, Σ, Γ, δ, q 0, F ) akzeptiert ein Wort w Σ, wenn w geschrieben werden kann als w = w 1... w m, w i Σ ɛ, sowie r 0, r 1,..., r m Q und s 0, s 1,..., s m Γ existieren mit 1. r 0 = q 0, s 0 = ɛ 2. Für i = 1,..., m gibt es Elemente a i, b i Γ ɛ und eine Folge t i Γ mit s i = a i t i, s i+1 = b i t i und (r i+1, b i ) δ(r i, w i+1, a i ). 3. r m F. r i sind also die verschiedenen Zustände, die bei Eingabe w durchlaufen werden. Die s i sind die Stapelinhalte nach dem i-ten Rechenschritt. 1. sagt, dass die Rechnung im Startzustand und mit leerem Stapel beginnt. 2. sagt, dass die Rechnung gemäß der Übergangsfunktion erfolgt und 3. sagt, dass die Rechnung in einem akzeptierenden Zustand endet. Wichtig ist hier wie bei den NFAs und den NTMs, dass ein Wort w vom PDA K akzeptiert wird, sobald eine akzeptierende Rechnung bei Eingabe w existiert. Wie bei NFAs kann es bei PDAs Berechnungen geben, so dass für ein i m gilt δ(r i, w i+1, a i ) =. Diese Berechnung bricht dann vor Erreichen des Endes der Eingabe ab. Solche Berechnungen sind nicht akzeptierend, auch dann wenn der Zustand r i in F liegt. Die von einem PDA K akzeptierte Sprache L(K) besteht aus allen Worten, die von K akzeptiert werden, also L(K) := {w Σ es gibt eine akzeptierende Berechnung von K bei Eingabe w}.

3 132 Als nächstes betrachten wir die Sprache L 1 = {0 n 1 n n 1}. Wir wollen uns überlegen, dass diese Sprache von einem PDA akzeptiert wird. Hier zunächst eine informelle Beschreibung des PDA. 1. Solange das Eingabesymbol 0 ist, pushe eine 0 auf den Stapel. 2. Wird eine 1 gelesen, poppe eine 0 vom Stapel. 3. Wenn hierbei nach der ersten 1 noch eine 0 auftaucht oder eine 1 bei leerem Stapel gelesen wird, lehne die Eingabe ab. 4. Akzeptiere die Eingabe, wenn am Ende der Rechnung der Stapel leer ist. Um diese informelle Beschreibung zu formalisieren, benutzen wir eine graphische Darstellung für PDAs, die derjenigen für NFAs nachgebildet ist. Wir haben dabei einen gerichteten Graphen mit Q als Knotenmenge. Einen Übergang (q, z) δ(q, a, u) machen wir dadurch kenntlich, dass wir an die gerichtete Kante von q nach q das Label a, u z schreiben. Dabei wird eine Kante in der Regel mehrere Label haben. Darunter können auch einige sein, die dasselbe Eingabesymbol und dasselbe oberste Stapelsymbol haben, denn PDAs sind nichtdeterministisch. Gilt hingegen δ(q, a, s) =, so wird es für das Eingabesymbol a und das Stapelsymbol s keine Kante aus dem Knoten q geben. In unserem Beispiel des PDAs für L 1 = {0 n 1 n n 1} erhalten wir dann den Graphen in Abbildung Zu diesem Graphen ist noch eine weitere Erläuterung erforderlich. Der PDA für L hat als Stapelalphabet Γ = {0, 1, }. Das Symbol wird nur benutzt, um den Boden des Stapels zu erkennen. D.h., ist das oberste Symbol des Stapels, so enthält der Stapel keine weiteren Elemente. Abbildung 5.13: PDA für L 1 = {0 n 1 n n 1} Betrachten wir bei dem PDA für L 1 eine akzeptierende Berechnung für das Wort w = Wir schreiben w als w = ɛ0011ɛ. Die Folge von Zuständen r 0 r 1... r 6, die durchlaufen wird, ist q 0, q 1, q 1, q 1, q 2, q 2, q 3. Die Stapelinhalte s 0, s 1,..., s 6 sind gegeben durch ɛ ɛ Als nächstes Beispiel betrachten wir die Sprache L 2 = {ww R w {0, 1} }, also die Menge aller Worte, die aus einem Wort w verknüpft mit dem Wort w rückwärts gelesen bestehen. Graphisch ist der PDA für L 2 wie in Abbildung 5.14 dargestellt. Das Stapelalphabet des PDA für L 2 ist

4 133 Abbildung 5.14: PDA für L 2 = {ww R w {0, 1} } Γ = {0, 1, }. Auch in diesem Beispiel wird benutzt, um zu erkennen, wann der Stapel leer ist. Um einzusehen, dass dieser PDA L 2 akzeptiert, beobachtet man, dass der PDA nur dann ein Wort akzeptieren kann, wenn er alle Eingabesymbole, die auf dem Stapel abgelegt wurden, solange sich der PDA im Zustand q 1 befand, nur dann im Zustand q 2 vom Stapel entfernen kann, wenn die Eingabe die abgelegten Eingabesymbole in umgekehrter Reihenfolge noch einmal enthält. Damit ist die vom PDA akzeptierte Sprache eine Teilmenge von L 2. Aber es gibt für jedes Element von L 2 auch eine akzeptierende Berechnung des PDA. Hierzu muss der PDA nur korrekt das Ende von w und den Beginn von w R erraten. An genau dieser Stelle wird der PDA dann den Übergang von q 1 nach q 2 mit Hilfe von (q 2, ɛ) δ(q 1, ɛ, ɛ) vollziehen. Jetzt wollen wir zeigen, dass die von PDAs akzeptierten Sprachen genau die kontextfreien Sprachen sind. Zunächst zeigen wir Lemma Ist L eine kontextfreie Sprache, so gibt es einen PDA K mit L(P ) = L. Beweis: Da L kontextfrei ist, gibt es eine kontextfreie Grammatik G, die L erzeugt. Wie beim Beweis, dass eine reguläre Sprache von einem NFA akzeptiert wird, werden wir eine Ableitung eines Wortes w L mit Hilfe der Grammatik G in eine akzeptierende Berechnung eines PDAs umwandeln. Bei der Ableitung eines Wortes w L aus dem Startsymbol S der Grammatik G, werden als Zwischenergebnisse der Ableitung Folgen aus (Σ V ) erzeugt, wobei Σ die Menge der Terminale und V die Menge der Variablen von G ist. Aus einem Zwischenergebnis gibt es üblicherweise mehrere Möglichkeiten, die Ableitung fortzusetzen. Diesen Nichtdeterminismus von Grammatiken und Ableitungen können wir wie bei NFAs durch den Nichtdeterminismus von PDAs simulieren. Aber es gibt eine Schwierigkeit, Ableitungen aus kontextfreien Grammatiken zu Berechnungen von PDAs umzuwandeln, die bei regulären Grammatiken und NFAs nicht auftaucht. Schauen wir uns eine einfache Idee an. Betrachten wir einen PDA K, der seine Simulation der Ableitung eines Worts beginnt, indem er zunächst die Startvariable gefolgt von einem speziellen Symbol auf seinen Stapel schreibt. Das Symbol dient dazu, den Boden des Stapels erkennen zu können. Dann wählt K nichtdeterministisch Regeln der Grammatik aus, um eine Ableitung zu simulieren. Die Anwendung einer Regel wird simuliert, indem eine Variable, die auf der linken Seite einer Regel von G auftaucht, durch die rechte Seite der entsprechenden Regel ersetzt wird. Hierbei werden die Symbole auf der rechten Seite der Regel von rechts nach links auf den Stapel abgelegt. Irgendwann wird der Stapel nur Terminale der Grammatik enthalten. Nun kann geprüft werden, ob der Stapelinhalt mit der Eingabe übereinstimmt. Bei dieser Idee gibt es eine Schwierigkeit. Wir können nämlich nicht einfach alle Zwischenergebnisse im Stapel speichern. Der PDA kann ja immer nur auf das oberste Element des Stapels

5 134 zugreifen. Ist dieses keine Variable, so muss der PDA eine Variable finden, die als nächstes ersetzt werden kann. Der PDA kann aber nicht einfach Elemente vom Stapel entfernen, da er hierdurch Informationen über Zwischenergebnisse einer Ableitung unwiderruflich verliert. Die folgende Beobachtung hilft jedoch, diese Schwierigkeit zu umgehen. In einer kontextfreien Grammatik besteht die linke Seite jeder Regel aus einer Variablen. Daraus folgt, dass in jeder Ableitung eines Worts w die Terminale eines Zwischenergebnisses, die links von der ersten Variablen des Zwischenergebnisses stehen, mit den ersten Eingabesymbolen übereinstimmen müssen. Somit können wir Terminale, die oben auf dem Stapel liegen, gleich mit den ersten Eingabesymbolen vergleichen und vom Stapel entfernen. Das Zwischenergebnis einer Ableitung wird also durch einen PDA gespeichert, indem der Teil des Zwischenergebnisses, der rechts von der ersten Variablen steht, auf dem Stapel steht. Hierbei liegt die erste Variable ganz oben. Die führenden Terminale des Zwischenergebnisses müssen mit den links vom Lesekopf des PDA liegenden Eingabesymbolen übereinstimmen. Wir erhalten also für die Speicherung eines Zwischenergebnisses einer Ableitung durch einen PDA ein Bild wie in Abbildung Das Wort w muss dabei mit 001, den bereits gelesenen Symbolen der Eingabe, beginnen. Der Rest 0101 der Eingabe muss aus der Folge v11v0 ableitbar sein. Abbildung 5.15: Speicherung von Zwischenergebnissen einer Ableitung durch einen PDA. Diese Beobachtung führt zur folgenden informellen Beschreibung für die Arbeitsweise eines PDAs, der Ableitungen einer kontextfreien Grammatik simuliert. 1. Um den Beginn des Stapels erkennen zu können, lege ein spezielles Symbol auf den Stapel ab. Als nächstes Element lege die Startvariable S auf den Stapel. 2. Wiederhole folgende Schritte (a) Ist das oberste Stapelsymbol eine Variable v der Grammatik G, wähle nichtdeterministisch eine der Regeln von G mit linker Seite v. Entferne v vom Stapel und lege die gesamte rechte Seite der entsprechenden Regel auf den Stapel ab. (b) Ist das oberste Stapelsymbol ein Terminal a von G, vergleiche dieses Symbol mit dem nächsten Eingabesymbol und entferne es vom Stapel. Stimmen die Symbole überein, so wird die Berechnung weitergeführt. Sonst wird diese nichtdeterministische Berechnung abgebrochen. Die Berechnung ist dann ablehnend. (c) Ist das oberste Stacksymbol und wurden alle Eingabesymbole gelesen, akzeptiere. Sonst ist die Berechnung ablehnend. Die Schritte (a) und (b) sind in Abbildung 5.16 und Abbildung 5.17 illustriert. Hierbei wird zunächst auf den PDA im Zustand wie in Abbildung 5.15 die Regel v 0u angewandt. Dann

6 135 Abbildung 5.16: Berechnung bei Auswahl der Regel v 0u Abbildung 5.17: Berechnung bei Terminal als oberstem Stacksymbol wird die 0 als oberstes Stapelsymbol mit dem nächsten Eingabesymbol verglichen. Die Abbildungen zeigen jeweils den Zustand des PDA nach der Ausführung der Schritte. Im Schritt (a) müssen wir nicht nur ein Symbol, sondern eine Folge von Symbolen auf den Stapel ablegen. Dieses kann durch eine Folge von Push-Operationen geschehen. Um die Notation nicht zu kompliziert zu gestalten, nehmen wir an, dass wir einen Zustand q des PDA haben, der nicht nur ein Symbol, sondern eine Folge von Symbolen ablegen kann. So etwas kann durch eine Folge von speziellen Zuständen realisiert werden. Hierbei ist zu beobachten, dass es nur endlich viele Regeln in einer Grammatik geben kann. Daher gibt es eine feste obere Schranke für die Länge der rechten Seiten der Regeln. Damit können wir das gewünschte Verhalten des PDA im Zustand q durch endlich viele verschiedene Zustände realisieren. Zusammenfassend wird also der Übergang ( q, w) δ( q, ɛ, v), v V, w (Σ V ), bedeuten, dass v entfernt und w = w 1... w k auf den Stapel abgelegt wird, und zwar in der Reihenfolge w k,..., w 1. Jetzt können wir unseren PDA K = (Q, Σ, Γ, δ, q 0, F ) für eine kontextfreie Sprache L erzeugt durch die kontextfreie Grammatik G = (Σ, V, P, S) formal wie folgt beschreiben. Die Menge der Terminale von G und das Eingabealphabet von K stimmen überein. Das Stapelalphabet von K ist Γ = Σ V { }, wobei Σ V. Die Menge Q der Zustände von K ist Q = {q 0, q, q accept }. Die Menge F der akzeptierenden Zustände von K enthält nur q accept, F = {q accept }. Schließlich ist die Übergangsfunktion δ definiert durch die folgenden Regeln δ(q 0, ɛ, ɛ) = {( q, S )} δ( q, ɛ, v), v V = {( q, w) für alle Regeln v w in P } δ( q, a, a), a Σ = {( q, ɛ)} δ( q, ɛ, ) = {(q accept, ɛ)} Für alle Tripel aus Q Σ ɛ Γ ɛ, die nicht in dieser Aufstellung auftauchen, ist das Bild unter δ die leere Menge. Schematisch kann man den PDA wie in Abbildung 5.18 darstellen.

7 136 Abbildung 5.18: Schematische Darstellung für PDA gewonnen aus kontextfreier Grammatik Nach dem bislang Gesagten sollte klar sein, dass der PDA K genau die Sprache L akzeptiert. Nun wollen wir die Umkehrung dieses Lemmas zeigen. Lemma Sei K = (Q, Σ, Γ, δ, q 0, F ) ein PDA und sei L = L(K) die von K akzeptierte Sprache. Dann ist L kontextfrei. Beweis: Wir müssen eine kontextfreie Grammatik konstruieren, die L erzeugt. Hierzu überlegen wir uns zunächst, dass wir den PDA so modifizieren können, dass er L immer noch akzeptiert, aber zusätzlich folgende Eigenschaften besitzt: 1. F = 1, d.h., es gibt nur einen akzeptierenden Zustand q accept. 2. Am Ende einer akzeptierenden Berechnung ist der Stapel immer leer. 3. Jeder Rechenschritt gemäß der Übergangsfunktion δ poppt entweder ein Element vom Stapel oder er pusht ein Element auf den Stapel. 1. und 2. können durch zusätzliche ɛ-bewegungen erreicht werden. 3. kann erreicht werden, indem man einen Rechenschritt des PDA eventuell durch zwei Rechenschritte ersetzt. Um die gewünschte Grammatik G = (Σ, V, P, S) zu konstruieren, werden wir für je zwei (möglicherweise identische) Zustände p, q Q eine Variable v pq V einführen. Die Variable v pq soll dabei die folgende Funktion erfüllen: Aus v pq können alle Worte x Σ abgeleitet werden, die K aus dem Zustand p und mit leerem Stapel in den Zustand q und wiederum mit leerem Stapel überführen können. Hat ein Wort x die gerade beschriebene Eigenschaft, so gilt auch, dass x den PDA K aus dem Zustand p und mit Stapelinhalt s Γ in den Zustand q und mit Stapelinhalt s überführt. Dabei können zwar zwischenzeitlich Elemente auf den Stapel gelegt werden, aber diese werden dann vor Erreichen des Zustandes q wieder entfernt. Außerdem wird bei einer solchen Überführung keines der Elemente in s jemals entfernt. Nun müssen wir noch die Produktionen in der Grammatik angeben, damit die Variablen v pq die gewünschten Eigenschaften haben. Betrachten wir hierzu ein Wort x, das den PDA K aus dem Zustand p in den Zustand q überführt, wobei jeweils der Stapel leer ist. Betrachten wir weiter die Berechnung, die K bei der Überführung von p nach q durch das Wort x ausführt. Da wir immer annehmen, dass ein Rechenschritt von K entweder ein Element auf dem Stapel ablegt oder ein Element vom Stapel entfernt, aber wir den PDA im Zustand p bei leerem Stapel betrachten,

8 137 muss bei der Berechnung mit Eingabe x, die p in q überführt, die erste Stapeloperation eine Push-Operation sein. Ist K dann im Zustand q, muss der Stapel wieder leer sein. Also muss die letzte Stapeloperation eine Pop-Operation sein. Es gibt nun für die Berechnung mit x zwei Möglichkeiten. 1. Während der Berechnung mit Eingabe x, die K aus p nach q überführt, ist der Stapel nicht nur am Anfang und am Ende leer, sondern auch noch nach einem Zwischenschritt. Dieser Fall ist in Abbildung 5.19 schematisch dargestellt. 2. Während der Berechnung mit Eingabe x, die p nach q überführt, ist der Stapel nur am Anfang und am Ende leer. Dann ist das Element das zu Beginn auf dem Stapel abgelegt abgelegt wird, das Element, das am Ende vom Stapel entfernt wird. Dieser Fall ist in Abbildung 5.20 schematisch dargestellt. Abbildung 5.19: Überführung von p nach q mit zwischenzeitlich leerem Stapel Abbildung 5.20: Überführung von p nach q ohne zwischenzeitlich leerem Stapel Bei 1. sei r der Zustand, in dem sich K nach dem Zwischenschritt befindet, der den Stapel geleert hat. Wir können dann x in zwei Teile y, z aufteilen. y ist der Teil von x, der von p bis zum Erreichen von r abgearbeitet wird. z ist der Teil von x, der vom Erreichen des Zustands r bis zum Erreichen des Zustands q durchlaufen wird. Gemäß unseren Forderungen an die Variablen der Grammatik G soll y durch die Variable v pr und z durch die Variable v rq erzeugt werden können. Wir nehmen nun die Regel v pq v pr v rq in die Menge der Produktionen von G auf.

9 138 Tritt 2. ein, so sei a das erste Symbol von x und b das letzte Symbol von x. Weiter sei r der Zustand, indem sich der PDA nach dem ersten Schritt befindet. Schließlich sei s der Zustand des PDA, bevor er in den Zustand q wechselt. Für diesen Fall führen wir die Regel v pq av rs b ein. Hierbei lassen wir a, b = ɛ zu. Wichtig ist an beiden Fällen, dass wir die Ableitung von x aus der Variablen v pq ersetzt haben durch die Ableitung von Teilworten von x aus anderen Variablen der Grammatik. Bei 1. die Herleitung von y aus v pr und von z aus v rq. Im 2. Fall muss x verkürzt um das erste und letzte Symbol aus v rs abgeleitet werden. Formal können wir die Grammatik G wie folgt beschreiben. Die Menge Σ der Terminale von G ist identisch zum Eingabealphabet von K. Die Menge der Variablen von G ist gegeben durch V = {v pq p, q Q}. Das Startsymbol ist gegeben durch S = v q0 q accept, wobei q accept der einzige akzeptierende Zustand von K ist (zur Erinnerung: wir hatten bereits argumentiert, dass wir immer annehmen können, dass K nur einen akzeptierenden Zustand besitzt). Die Menge der Produktionen ist definiert durch: Für alle p, q, r Q ist v pq v pr v rq eine Produktion in G. Für alle p, q, r, s Q und alle a, b Σ ɛ ist v pq av rs b eine Produktion von G, falls es zusätzlich ein t Γ gibt, so dass (r, t) δ(p, a, ɛ) und (q, ɛ) δ(s, b, t). Für alle p Q ist v pp ɛ eine Produktion von G. Wir können nun zeigen, dass mit diesen Produktionen die Variablen v pq genau das Gewünschte erreichen. Wir erhalten nämlich 1. Wenn v pq ein Wort x erzeugt, so kann x den PDA K vom Zustand p in den Zustand q überführen, wobei am Anfang und Ende der Stapel jeweils leer ist. 2. Kann x den PDA K vom Zustand p in den Zustand q überführen, wobei am Anfang und Ende der Stapel jeweils leer ist, so kann x aus v pq abgeleitet werden. 1. kann durch Induktion über die Anzahl der Ableitungsschritte, die zur Ableitung von x aus der Variablen v pq benötigt werden, gezeigt werden. 2. kann durch Induktion über die Anzahl der Schritte in der Rechnung, die p in q überführt, gezeigt werden. Insbesondere erhalten wir nun, dass aus der Startvariablen S = v q0 q accept genau diejenigen Worte x Σ abgeleitet werden können, die K aus dem Zustand q 0 in den Zustand q accept überführen können, wobei am Anfang und am Ende der Stapel jeweils leer ist. Dieses sind aber genau die Worte, die von K akzeptiert werden. Somit gilt L = L(G) = L(P ). 5.8 Das Wortproblem für kontextfreie Sprachen - Der CYK- Algorithmus In diesem Abschnitt wollen wir das Wortproblem für kontextfreie Sprachen untersuchen. Dieses ist folgendermaßen definiert.

10 139 Gegeben: Eine kontextfreie Grammatik G = (Σ, V, P, S) und ein Wort w Σ. Entscheide: Ob w in der von G erzeugten Sprache L = L(G) liegt, d.h., entscheide, ob w aus der Startvariablen S abgeleitet werden kann. Um dieses Problem lösen zu können, brauchen wir zunächst den Begriff einer Chomsky Normalform. Definition Eine kontextfreie Grammatik (Σ, V, P, S) ist in Chomsky Normalform, wenn jede Regel in P von der Form ist. Zusätzlich ist die Regel S ɛ erlaubt. Es gilt folgender Satz. v uz u, z V \{S} oder v a a Σ Satz Sei G eine kontextfreie Grammatik. Dann kann aus G eine kontextfreie Grammatik G in Chomsky Normalform konstruiert werden, die dieselbe Sprache wie G erzeugt. Wir werden den Beweis dieses Satzes hier nicht führen. Er kann in den Büchern von Schöning, Wegener oder Sipser nachgelesen werden. Von nun an nehmen wir stets an, dass eine kontextfreie Sprache L durch eine kontextfreie Grammatik in Chomsky Normalform erzeugt wird. Dann kann gezeigt werden (Übung), dass für jedes Wort w = w 1 w n der Länge n in L jede Ableitung mit Hilfe der Grammatik G aus genau 2n 1 Ableitungsschritten besteht. Damit können wir das Wortproblem lösen, indem wir bei Eingabe w = w 1 w n alle möglichen Ableitungen mit höchstens 2n 1 vielen Ableitungsschritten ausprobieren, um zu sehen, ob eine dieser Ableitungen das Wort w erzeugt. Dieses ist jedoch eine sehr ineffiziente Methode. Wir werden deshalb jetzt einen sehr viel besseren Algorithmus für das Wortproblem bei kontextfreien Sprachen kennenlernen. Dieser Algorithmus beruht auf der Technik des dynamischen Programmierens. Dynamisches Programmieren löst ein Problem, indem die Lösung großer Probleminstanzen aus den Lösungen kleinerer Teilinstanzen auf einfache Art gewonnen wird. Beim Wortproblem für kontextfreie Sprachen wird dies folgendermaßen realisiert. Statt bei Eingabe w = w 1 w n Σ nur zu entscheiden, ob w aus der Startvariablen abgeleitet werden kann, werden alle Variablen v V berechnet, aus denen w abgeleitet werden kann. Die Teilprobleme, die wir betrachten, sind nun die folgenden. Für alle 1 i j n berechnen wir die Variablen aus V, die das Teilwort w i w j erzeugen können. Für ein Wort w der Länge n legen wir daher für alle i, j mit 1 i < j n, eine Menge T (i, j) an, die diese Variablen enthalten soll. Die Mengen T (i, i) können leicht berechnet werden. Hierzu müssen wir in der Menge P der Regeln von G, diejenigen Regeln der Form v a, a Σ mit a = w i finden. Für diese Regeln werden wir die Variablen v auf den linken Seiten der Regeln in die Menge T (i, i) aufnehmen. Grundlage zur Berechnung der T (i, j) für i < j ist die folgende leicht zu überprüfende Gleichung: { } T (i, j) = v V es existiert ein i k j 1 und eine Produktion v uz. mit u T (i, k) und z T (k, j)

11 140 Wir stellen uns nun die Mengen T (i, j) in der folgenden Tabelle angeordnet vor. l = n T (1, n) l = n 1 T (1, n 1) T (2, n) l = i T (1, i) T (2, i + 1)... T (n i + 1, n) l = 2 T (1, 2) T (2, 3)... T (n 1, n) l = 1 T (1, 1) T (2, 2)... T (n 1, n 1) T (n, n) In einer Zeile der Tabelle stehen die T (i, j) für Teilworte w i w j der gleichen Länge l. Nehmen wir nun an, wir haben für alle Teilfolgen w i w j der Länge höchstens l die Menge T (i, j) bereits berechnet. Dann können wir für Teilfolgen w i w j der Länge l + 1 die Menge T (i, j) wie folgt berechnen. Wir spalten w i... w j auf alle möglichen Arten in zwei zusammenhängende nicht-leere Teilfolgen auf. Für jede Aufspaltung w i w k und w k+1 w j, sowie für alle Regeln der Form v uz, u, z V testen wir, ob w 1 w k aus u und w k+1 w j aus z abgeleitet werden kann, indem wir in den entsprechenden Mengen T (i, k) und T (k + 1, j) nach den Einträgen u bzw. z suchen. Wir fügen v zu T (i, j) hinzu, falls dieses zutrifft. Wie oben bereits angemerkt, lösen wir also größere Teilprobleme (entsprechen längeren Teilfolgen) mit Hilfe bereits bekannter Lösungen zu kleineren Teilproblemen (entsprechen kürzeren Teilfolgen des Wortes w). Das Wortproblem lösen wir am Ende, indem wir testen, ob S T (1, n). Insgesamt erhalten wir damit den folgenden Algorithmus für das Wortproblem bei kontextfreien Sprachen. Er heißt CYK-Algorithmus nach seinen drei Erfindern Cocke, Younger, Kasami. Bei Eingabe w = w 1 w n : CYK-Algorithmus 1. Falls w = ɛ und S ɛ eine Regel ist, akzeptiere. 2. Für i = 1 bis n 3. Für jede Variable v 4. Teste, ob v b eine Regel ist, wobei b = w i 5. Falls ja, füge v zu T (i, i) hinzu. 6. Für l = 2 bis n \\l := Länge der Teilfolge 7. Für i = 1 bis n l + 1 \\i := Startindex der Teilfolge 8. Setze j = i + l 1 \\j := Schlussindex der Teilfolge 9. Für k = i bis j 1 \\k := Splitposition 10. Für jede Regel v uz 11. Falls u T (i, k) und z T (k + 1, j), füge v zu T (i, j) hinzu. 12. Falls S in T (1, n) enthalten ist, akzeptiere. Sonst lehne ab. Betrachten wir als Beispiel die Grammatik G = (V, Σ, S, P ), wobei V = {S, A, B, C} und Σ =

12 141 {a, b}. Die Menge der Produktionen P ist gegeben durch S AB S BC A BA A a P = B CC B b C AB C a Dieses ist eine Grammatik in Chomsky-Normalform. Betrachten wir weiter das Wort baaba. Der CYK-Algorithmus berechnet dann die folgende Tabelle von Mengen T (i, j), 1 i < j 5. l = 5 {S, A, C} l = 4 {S, A, C} l = 3 {B} {B} l = 2 {S, A} {B} {S, C} {S, A} l = 1 {B} {A, C} {A, C} {B} {A, C} b a a b a Es ist T (1, 5) = {S, A, C}. Da S in dieser Menge enthalten ist, liegt also das Wort baaba in der von der Grammatik G erzeugten Sprache. Jetzt wollen wir noch die Laufzeit des CYK-Algorithmus analysieren. Die Ausführung jeder einzelnen Zeile dieses Algorithmus benötigt nur Zeit polynomiell in der Beschreibungsgröße von G. Diese Beschreibungsgröße ist konstant. Die Schleife in Zeile 2 wird n-mal durchlaufen und die Schleife in Zeile 3 wird V -mal durchlaufen. Damit benötigen die ersten fünf Zeile des Algorithmus lineare Zeit. Die Schleifen in Zeilen 6,7 und 9 werden jeweils höchstens n-mal durchlaufen. Die Schleife in Zeile 10 wird P -mal durchlaufen, also konstant häufig, da P wie die gesamte Beschreibungsgröße von G konstant ist. Da, wie oben bemerkt, jede Zeile nur konstant viel Zeit benötigt, erhalten wir insgesamt einen Algorithmus mit Laufzeit O(n 3 ). 5.9 Das Pumping Lemma für kontextfreie Sprachen In diesem Abschnitt wollen wir das Pumping Lemma für kontextfreie Sprachen herleiten. Mit Hilfe dieses Lemmas kann häufig bewiesen werden, dass eine Sprache nicht kontextfrei ist. Das Pumping Lemma für kontextfreie Sprachen hat dieselbe logische Form wie das Pumping Lemma für reguläre Sprachen. Lemma Sei L eine kontextfreie Sprache. Dann gibt es ein p N, so dass für alle w L mit w p eine Aufteilung von w in fünf Teile u, v, x, y, z existiert mit w = uvxyz, vy 1 und vxy p, wobei dann für alle i N 0 gilt uv i xy i z L. Beweis: Sei G = (V, Σ, P, S) eine Grammatik in Chomsky Normalform, die L erzeugt. Nach Satz existiert eine solche Grammatik. Der Ableitungsbaum eines Worts w L = L(G) hat immer die Form wie in Abbildung 5.21.

13 142 Abbildung 5.21: Ableitungsbaum bei einer Grammatik in Chomsky Normalform Im Ableitungsbaum haben bis auf die Blätter und die Elternknoten der Blätter alle Knoten genau 2 Kinder. Die Elternknoten der Blätter haben jeweils ein Kind. Wir sagen, dass der Ableitungsbaum aus einem Binärbaum besteht mit zusätzlich angehängten Blättern. Die Anzahl der Blätter des gesamten Ableitungsbaums ist genau die Anzahl der Blätter seines zugehörigen Binärbaums. Diese Anzahl wiederum ist genau die Länge des abgeleiteten Wortes. Wir setzen nun p = 2 V. Sei w ein Wort mit w p. Ein beliebiger Ableitungsbaum T für w muss nun genau w p Blätter besitzen. Entsprechend muss auch der zu T gehörige Binärbaum p viele Blätter besitzen. Daher muss der Binärbaum Tiefe mindestens V haben, d.h., es muss in dem Binärbaum einen Pfad von der Wurzel zu einem Blatt des Binärbaums geben, auf dem mindestens V Kanten liegen. Dieses gilt, da ein Binärbaum der Tiefe V 1 nur 2 V 1 < p Blätter haben kann. Wir wählen nun einen Pfad der Länge mindestens V in dem Binärbaum des Ableitungsbaums T aus. Auf diesem Pfad liegen mindestens V + 1 viele Knoten, die alle mit Variablen aus V gelabelt sind (wir betrachten ja nur den Binärbaum, deshalb sind alle Labels Variablen). Gehen wir den Pfad nun vom Blatt zur Wurzel hoch, so müssen nach dem Schubfachprinzip unter den ersten V + 1 Variablen, die wir antreffen, 2 identisch sein. Nennen wir diese Variable R. Wir erhalten somit eine Bild wie in der ersten schematischen Darstellung in Abbildung Zu jedem Knoten des Ableitungsbaums können wir den Teilbaum betrachten, der diesen Knoten als Wurzel hat. Diesem Teilbaum wiederum können wir das Teilwort des Worts w zuordnen, das sich aus den Terminalen an den Blättern des Teilbaums ergibt. Damit erhalten wir aus den beiden Teilbäumen, deren Wurzel die beiden mit R gelabelten Knoten sind, eine Aufteilung des Worts w in w = uvxyz, wie sie ebenfalls in der ersten Darstellung in Abbildung 5.22 dargestellt ist. Diese Aufteilung von w erfüllt nun alle im Pumping Lemma geforderten Bedingungen. vy 1 ergibt sich aus der Tatsache, dass wir eine Grammatik in Chomsky Normalform betrachten. vxy p ergibt sich aus der Tatsache, dass der Teilbaum, dessen Wurzel der zweite mit R gelabelte Knoten ist, höchstens Tiefe V hat. Hier benutzen wir, dass wir das zweifache Auftauchen einer Variablen bereits unter den ersten V + 1 Variablen auf dem Weg vom Blatt zur Wurzel finden. Es bleibt noch nachzuweisen, dass uv i xy i z L für alle i 0. Zunächst kann der Teilbaum, dessen Wurzel der erste mit R gelabelte Knoten ist, durch den Teilbaum ersetzt werden, dessen

14 143 Abbildung 5.22: Schematische Darstellung des Pumping Lemmas für kontextfreie Sprachen Wurzel der zweite mit R gelabelte Knoten ist, um wiederum einen korrekten Ableitungsbaum zu erhalten. Dies ist dann ein Ableitungsbaum für uv 2 xy 2 z. Damit ist uv 2 xy 2 z L. Dies ist in der zweiten Darstellung in Abbildung 5.22 skizziert. Ersetzt man nun in diesem neuen Ableitungsbaum wie vorher den Teilbaum, dessen Wurzel der erste mit R gelabelte Knoten ist, durch den Teilbaum, der am zweiten mit R gelabelten Knoten hängt, so erhält man einen Ableitungsbaum für uv 3 xy 3 z L. Fährt man auf diese Weise fort, so sieht man dass uv i xy i z L für i 1. Es bleibt noch der Fall i = 0. Hierzu ersetzt man den Teilbaum, der am zweiten mit R gelabelten Knoten hängt, durch den Teilbaum, der am ersten mit R gelabelten Knoten hängt. Dies ist in der letzten Darstellung in Abbildung 5.22 skizziert. Man erhält so einen Ableitungsbaum für uv 0 xy 0 z. Somit ist auch dieses Wort in L. Wir wollen das Pumping Lemma für kontextfreie Sprachen benutzen, um zu zeigen, dass eine Sprache nicht kontextfrei ist. Dieses können wir tun, indem wir von einer Sprache L zeigen, dass sie den Bedingungen des Pumping Lemmas nicht genügt. Anders ausgedrückt, das Pumping Lemma ist logisch von der Form A B, wobei A die Aussage L ist kontextfrei ist. Nun ist aber A B äquivalent zu B A. Und in letzterer Form benutzen wir das Pumping Lemma, um zu zeigen, dass eine Sprache L nicht kontextfrei ist. Zusammengefasst sind die beiden äquivalenten Formulierungen des Pumping Lemmas für kontextfreie Sprachen in der folgenden Tabelle. Ist L kontextfrei, so gilt: L ist nicht kontextfrei, wenn gilt Es existiert ein p N, Für alle p N so dass für alle w L mit w p existiert ein w L mit w p, so dass eine Aufteilung w = uvxyz existiert für alle Aufteilungen w = uvxyz mit vxy p, vy 1 mit vxy p, vy 1 wobei für alle i N 0 ein i N 0 existiert, uv i xy i z L. so dass uv i xy i z L.

15 144 Wir wollen nun an zwei Beispielen zeigen, wie mit Hilfe des Pumping Lemmas bewiesen werden kann, dass eine Sprache nicht kontextfrei ist. Beispiel 1: Sei L = {a n b n c n n 1}. Sei p N beliebig. Wir wählen w = a p b p c p L. Sei nun w = uvxyz eine beliebige Aufteilung von w, mit vy 1 und vxy p. Wir werden zeigen, dass dann immer ein i 0 existiert, so dass uv i xy i z L. Aus vxy p schließen wir, dass vy nur zwei der drei Symbole a, b, c enthalten kann. Wir führen nun eine Fallunterscheidung durch, basierend auf dem in vy fehlenden Symbol. a fehlt Wir betrachten das Wort uv 0 xy 0 z. Da vy 1 fehlen nun einige der Symbole b, c, die in w auftauchten. Da aber vy kein a enthält, fehlen keine der a s. Damit enthält uv 0 xy 0 z mehr a s als b s oder c s, und ist somit nicht in L. b fehlt Wir betrachten das Wort uv 2 xy 2 z. Aus vy 1 folgt, dass in vy das Symbol a oder das Symbol c auftaucht. Damit enthält uv 2 xy 2 z mehr a s oder c s als b s und ist kein Element von L. c fehlt Wir betrachten das Wort uv 2 xy 2 z. Aus vy 1 folgt, dass in vy das Symbol a oder das Symbol b auftaucht. Damit enthält uv 2 xy 2 z mehr a s oder b s als c s und ist kein Element von L. Wir sehen also, dass es für diese Wahl von w keine Aufteilung mit vy 1 und vxy p gibt, so dass uv i xy i z L für alle i 0. Da dies für alle möglichen p s gilt, ist L nicht kontextfrei. Beispiel 2: Sei L = {a i b j c k 1 i j k}. Sei p N beliebig. Wir wählen w = a p b p c p L. Sei nun w = uvxyz eine beliebige Aufteilung von w, mit vy 1 und vxy p. Wir werden zeigen, dass dann immer ein i 0 existiert, so dass uv i xy i z L. Sei also w = uvxyz eine Aufteilung von w = a p b p c p mit vy 1 und vxy p. Aus vxy p schließen wir, dass vy nur zwei der drei Symbole a, b, c enthalten kann. Wir führen wieder eine Fallunterscheidung durch, basierend auf dem in vy fehlenden Symbol. a fehlt Wir betrachten das Wort uv 0 xy 0 z. Da vy 1 fehlen nun einige der Symbole b, c, die in w auftauchten. Da aber vy kein a enthält, fehlen keine der a s. Damit enthält uv 0 xy 0 z mehr a s als b s oder c s, und ist somit nicht in L. b fehlt Aus vy 1 folgt, dass in vy das Symbol a oder das Symbol c auftaucht. Taucht das Symbol a auf, so betrachten wir das Wort uv 2 xy 2 z. Dieses enthält in diesem Fall mehr a s als b s und ist kein Element von L. Taucht das Symbol c in vy auf, so betrachten wir uv 0 xy 0 z. Dieses Wort enthält in diesem Fall weniger c s als b s und ist kein Element von L. c fehlt Wir betrachten das Wort uv 2 xy 2 z. Aus vy 1 folgt, dass in vy das Symbol a oder das Symbol b auftaucht. Damit enthält uv 2 xy 2 z mehr a s oder b s als c s und ist kein Element von L. Für w = a p b p c p kann also keine Aufteilung mit vy 1 und vxy p gefunden werden, so dass uv i xy i z L für alle i 0. Daher kann L nicht kontextfrei sein.

16 Abschlusseigenschaften kontextfreier Sprachen In einer Übungsaufgabe wurde gezeigt, dass die regulären Sprachen unter Vereinigung abgeschlossen sind. D.h., sind L 1, L 2 regulär, so ist auch L 1 L 2 regulär. Beim Beweis wurde der Nichtdeterminismus von NFAs ausgenutzt. Denselben Beweis kann man nun für Kellerautomaten führen und erhält dann, dass für kontextfreie Sprachen L 1, L 2 auch die Sprache L 1 L 2 kontextfrei ist. Weiter kann unter Ausnutzung von Nichtdeterminismus und ɛ-bewegungen gezeigt werden, dass für kontextfreie Sprachen L 1 und L 2 auch ihr Produkt L 1 L 2 kontextfrei ist. Schließlich ist L 1 kontextfrei, wenn L 1 kontextfrei ist. Insgesamt haben wir also Satz Seien L 1, L 2 kontextfreie Sprachen. Dann sind auch 1. L 1 L 2 2. L 1 L 2 3. L 1 kontextfreie Sprachen. Nun wollen wir an einem Beispiel zeigen, dass die kontextfreien Sprachen nicht unter Durchschnitt abgeschlossen sind. Wir werden zwei kontextfreie Sprachen L 1, L 2 angeben, deren Schnitt L 1 L 2 nicht kontextfrei ist. Hierzu sei und L 1 := {a i b j c j i, j 1} L 2 := {a i b i c j i, j 1}. L 1 ist das Produkt der beiden kontextfreien Sprachen {b j c j j 1} und {a i i 1} und daher nach Satz auch kontextfrei. Dass L 1 kontextfrei ist, kann natürlich auch direkt durch die Angabe einer kontextfreien Grammatik G 1 mit L(G 1 ) = L 1 gezeigt werden. Wir können G 1 etwa wählen als G 1 = (V, Σ, P, S), wobei V = {S, A, B}, Σ = {a, b, c} und die Menge der Produktionen gegeben ist durch S AB A a A aa B bc B bbc Analog kann gezeigt werden, dass L 2 kontextfrei ist. Nun ist aber der Durchschnitt L 1 L 2 genau die Sprache {a n b n c n n 1}. Von dieser Sprache hatten wir mit Hilfe des Pumping Lemmas gezeigt, dass sie nicht kontextfrei ist. Damit ist gezeigt, dass der Schnitt kontextfreier Sprachen nicht kontextfrei sein muss. Nun folgt aber auch, dass das Komplement einer kontextfreien Sprachen nicht kontextfrei sein muss. Wir können nämlich den Schnitt zweier Sprachen L 1, L 2 Σ mit Hilfe von Vereinigung und Komplement folgendermaßen ausdrücken L 1 L 2 = Σ \ (Σ \L 1 Σ \L 2 ) = L 1 L 2. Wären nun die kontextfreien Sprachen unter Komplementbildung abgeschlossen, so müssten sie auch unter Durchschnitt abgeschlossen sein, denn unter Vereinigung sind die kontextfreien

17 146 Sprachen abgeschlossen. Da wir bereits wissen, dass die kontextfreien Sprachen nicht unter Durchschnitt abgeschlossen sind, sind sie es auch nicht unter Komplementbildung. Wir erhalten insgesamt Satz Es existieren kontextfreie Sprachen L 1, L 2, so dass L 1 L 2 nicht kontextfrei ist. Weiter gibt es kontextfreie Sprachen, deren Komplement nicht kontextfrei ist. Es kann gezeigt werden, dass das Komplement von L = {a n b n c n n 1} kontextfrei ist. Aber wie wir mit Hilfe des Pumping Lemmas für kontextfreie Sprachen gesehen haben, ist L nicht kontextfrei. L ist also ein Beispiel einer kontextfreien Sprache, deren Komplement nicht kontextfrei ist.

5.2 Endliche Automaten

5.2 Endliche Automaten 114 5.2 Endliche Automaten Endliche Automaten sind Turingmaschinen, die nur endlichen Speicher besitzen. Wie wir bereits im Zusammenhang mit Turingmaschinen gesehen haben, kann endlicher Speicher durch

Mehr

Die mathematische Seite

Die mathematische Seite Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Kontextfreie Sprachen

Kontextfreie 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

Mehr

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik 2. Übungsblatt 6.0 VU Theoretische Informatik und Logik 25. September 2013 Aufgabe 1 Geben Sie jeweils eine kontextfreie Grammatik an, welche die folgenden Sprachen erzeugt, sowie einen Ableitungsbaum

Mehr

Kontextfreie Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Automaten und formale Sprachen Klausurvorbereitung

Automaten 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

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

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

Mehr

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

kontextfreie 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

Mehr

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Ü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

Mehr

Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO).

Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO). 1 Grammatiken Autor: Tilman Blumenbach Letzte Änderung: 28. Juni 2012 18:15 Ziel von Grammatiken Wollen die Struktur von Sprachen modellieren und charakterisieren. Beispiel Ein Satz der deutschen Sprache

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

Mehr

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Lö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,

Mehr

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung!

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung! Universität Karlsruhe Theoretische Informatik Fakultät für Informatik WS 23/4 ILKD Prof. Dr. D. Wagner 2. Februar 24. Klausur zur Vorlesung Informatik III Wintersemester 23/24 Mit Lösung! Beachten Sie:

Mehr

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen Prof. Dr. Viorica Sofronie-Stokkermans Universität Koblenz-Landau Fachbereich 4: Informatik Dennis Peuter 01. Juni 2017 Übung zur Vorlesung Grundlagen der theoretischen Informatik Aufgabenblatt 7 Lösungen

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen 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

Mehr

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat Formale Grundlagen der Informatik 1 Kapitel 5 Über reguläre Sprachen hinaus und (Teil 2) Frank Heitmann heitmann@informatik.uni-hamburg.de 21. April 2015 Der Kellerautomat - Formal Definition (Kellerautomat

Mehr

Übungsaufgaben zu Formalen Sprachen und Automaten

Übungsaufgaben zu Formalen Sprachen und Automaten Universität Freiburg PD Dr. A. Jakoby Sommer 27 Übungen zum Repetitorium Informatik III Übungsaufgaben zu Formalen Sprachen und Automaten. Untersuchen Sie das folgende Spiel: A B x x 2 x 3 C D Eine Murmel

Mehr

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

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Umformung 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

Mehr

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

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

Mehr

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch FORMALE SYSTEME 3. Vorlesung: Endliche Automaten Markus Krötzsch TU Dresden, 17. Oktober 2016 Rückblick Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 2 von 31 Wiederholung Mit Grammatiken können

Mehr

Klammersprache Definiere

Klammersprache 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

Mehr

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

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten Inhalt 1 Einführung 2 Automatentheorie und Formale Sprachen Grammatiken Reguläre Sprachen und endliche Automaten Kontextfreie Sprachen und Kellerautomaten Kontextsensitive und Typ 0-Sprachen 3 Berechenbarkeitstheorie

Mehr

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

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

Mehr

Worterkennung in Texten speziell im Compilerbau 20. April Frank Heitmann 2/64

Worterkennung in Texten speziell im Compilerbau 20. April Frank Heitmann 2/64 Grenzen regulärer Sprachen? Formale Grundlagen der Informatik 1 Kapitel 4 Über reguläre Sprachen hinaus und Pumping Lemma Frank Heitmann heitmann@informatik.uni-hamburg.de Wir haben mittlerweile einiges

Mehr

Automatentheorie und formale Sprachen

Automatentheorie 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

Mehr

Grundlagen der theoretischen Informatik

Grundlagen der theoretischen Informatik Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 04.06.2013 An den Transitionen sieht man zunächst, dass nur die folgenden Zustandsübergänge

Mehr

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009 Theoretische Informatik Rainer Schrader Institut für Informatik 9. Juli 2009 1 / 41 2 / 41 Gliederung die Chomsky-Hierarchie Typ 0- Typ 3- Typ 1- Die Programmierung eines Rechners in einer höheren Programmiersprache

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen Malte Helmert Gabriele Röger Universität Basel 7. April 2014 Kontextsensitive und allgemeine Grammatiken Wiederholung: (kontextsensitive)

Mehr

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015 2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung

Informatik 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

Mehr

Hochschule Bonn-Rhein-Sieg University of Applied Sciences Grantham-Allee Sankt Augustin

Hochschule Bonn-Rhein-Sieg University of Applied Sciences Grantham-Allee Sankt Augustin Hochschule Bonn-Rhein-Sieg Uniersity of Applied Sciences Grantham-Allee 20 53757 Sankt Augustin Director b-it Applied Science Institute Fachbereich Informatik Prof. Dr. Kurt-Ulrich Witt Mathematische und

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Das Pumping-Lemma Formulierung

Das Pumping-Lemma Formulierung Das Pumping-Lemma Formulierung Sei L reguläre Sprache. Dann gibt es ein n N mit: jedes Wort w L mit w n kann zerlegt werden in w = xyz, so dass gilt: 1. xy n 2. y 1 3. für alle k 0 ist xy k z L. 59 / 162

Mehr

Die Nerode-Relation und der Index einer Sprache L

Die Nerode-Relation und der Index einer Sprache L Die Nerode-Relation und der Index einer Sprache L Eine zweite zentrale Idee: Sei A ein vollständiger DFA für die Sprache L. Repäsentiere einen beliebigen Zustand p von A durch die Worte in Σ, die zu p

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 3 14. Mai 2010 Einführung in die Theoretische

Mehr

TU Berlin Nachklausur TheGI 2 Automaten und Komplexität (Niedermeier/Hartung/Nichterlein, Sommersemester 2012)

TU Berlin Nachklausur TheGI 2 Automaten und Komplexität (Niedermeier/Hartung/Nichterlein, Sommersemester 2012) Berlin, 05. Oktober 2012 Name:... Matr.-Nr.:... TU Berlin Nachklausur TheGI 2 Automaten und Komplexität (Niedermeier/Hartung/Nichterlein, Sommersemester 2012) 1 2 3 4 5 6 7 Σ Bearbeitungszeit: 60 min.

Mehr

Übungsblatt Nr. 3. Lösungsvorschlag

Übungsblatt Nr. 3. Lösungsvorschlag Institut für Kryptographie und Sicherheit Prof. Dr. Jörn Müller-Quade Nico Döttling Dirk Achenbach Tobias Nilges Vorlesung Theoretische Grundlagen der Informatik Übungsblatt Nr. 3 svorschlag Aufgabe 1

Mehr

Kontextfreie Grammatiken

Kontextfreie 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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (IV) 31.05.2017 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

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

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/2006 07.02.2006 28. und letzte Vorlesung 1 Die Chomsky-Klassifizierung Chomsky-Hierachien 3: Reguläre Grammatiken

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen 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

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 7 15. Juni 2010 Einführung in die Theoretische

Mehr

1. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005

1. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005 Universität Karlsruhe Theoretische Informatik Fakultät für Informatik WS 2004/05 ILKD Prof. Dr. D. Wagner 24. Februar 2005 1. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005 Aufkleber Beachten

Mehr

THIA - Übungsblatt 2.

THIA - Übungsblatt 2. THIA - Übungsblatt 2. Aufgabe 12 (Eine einfache Sprache). Endliche Ziffernfolgen, die mit einer 0 beginnen, auf die mindestens eine weitere Ziffer folgt, wobei nur die Ziffern 0,..., 7 vorkommen, sollen

Mehr

11.1 Kontextsensitive und allgemeine Grammatiken

11.1 Kontextsensitive und allgemeine Grammatiken Theorie der Informatik 7. April 2014 11. Kontextsensitive und Typ-0-Sprachen Theorie der Informatik 11. Kontextsensitive und Typ-0-Sprachen 11.1 Kontextsensitive und allgemeine Grammatiken Malte Helmert

Mehr

Grundlagen der Informatik II

Grundlagen 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

Mehr

(z', B 1...B k ) δ(z,a,a):

(z', B 1...B k ) δ(z,a,a): 7. Kellerautomaten 7.1 Kellerautomaten und akeptierte Sprachen Endliche Automaten haben, abgesehen von den Zuständen, kein "Gedächtnis" und können sich nicht "merken", wie sie in einen bestimmten Zustand

Mehr

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen Dr. Sebastian Bab WiSe 12/13 Theoretische Grundlagen der Informatik für TI Termin: VL 15 + 16 vom 17.12.2012 und 20.12.2012 Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Mehr

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2012 17. DIE KONTEXTFREIEN SPRACHEN II: ABSCHLUSSEIGENSCHAFTEN, MASCHINENCHARAKTERISIERUNG, KOMPLEXITÄT Theoretische

Mehr

Musterlösung Informatik-III-Klausur

Musterlösung Informatik-III-Klausur Musterlösung Informatik-III-Klausur Aufgabe 1 (1+4+3+4 Punkte) (a) 01010 wird nicht akzeptiert: s q 0 q 1 q 2 f q 2 10101 wird akzeptiert: s q 2 q 2 f q 2 f (b) ε: {s, q 0, q 1, q 2 }, {f} 0: {s, q 0,

Mehr

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p. Thorsten Timmer SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke Turing Maschine SS 2005 p. 1/35 Inhalt Einführung Formale Definition Berechenbare Sprachen und Funktionen Berechnung ganzzahliger

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 8. Reguläre Sprachen II Malte Helmert Gabriele Röger Universität Basel 24. März 24 Pumping Lemma Pumping Lemma: Motivation Man kann zeigen, dass eine Sprache regulär ist, indem man

Mehr

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

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt: 5.2 Linear beschränkte Automaten Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt: (q, c, d) δ(q, ) = c =. Ein Leerzeichen wird also nie durch ein anderes

Mehr

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}} 2 Endliche Automaten Fragen 1. Was ergibt sich bei {a, bc} {de, fg}? a) {abc, defg} b) {abcde, abcfg} c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} 2. Was ergibt sich bei {abc, a} {bc, λ}?

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Rückblick Theoretische Informatik I 1. Mathematische Methoden 2. Reguläre Sprachen 3. Kontextfreie Sprachen Themen der Theoretischen Informatik I & II Mathematische Methodik in

Mehr

FORMALE SYSTEME. 10. Vorlesung: Grenzen regulärer Sprachen / Probleme für Automaten. TU Dresden, 14. November 2016.

FORMALE SYSTEME. 10. Vorlesung: Grenzen regulärer Sprachen / Probleme für Automaten. TU Dresden, 14. November 2016. FORMALE SYSTEME 10. Vorlesung: Grenzen regulärer Sprachen / Probleme für Automaten Markus Krötzsch TU Dresden, 14. November 2016 Rückblick Markus Krötzsch, 14. November 2016 Formale Systeme Folie 2 von

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Übung am 3..2 INSTITUT FÜR THEORETISCHE KIT 7..2 Universität des Andrea Landes Schumm Baden-Württemberg - Theoretische und Grundlagen der Informatik INSTITUT FÜR

Mehr

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen: Probeklausur Automatentheorie & Formale Sprachen WiSe 2012/13, Wiebke Petersen Name: Matrikelnummer: Aufgabe A: Typ3-Sprachen 1. Konstruieren Sie einen endlichen Automaten, der die Sprache aller Wörter

Mehr

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Klausur zur Vorlesung Informatik III Wintersemester 2007/2008 Hier Aufkleber mit Name und Matrikelnr. anbringen Vorname: Nachname: Matrikelnummer:

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Übung am 02.02.2012 INSTITUT FÜR THEORETISCHE 0 KIT 06.02.2012 Universität des Andrea Landes Schumm Baden-Württemberg - Theoretische und Grundlagen der Informatik

Mehr

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009 Theoretische Informatik Rainer Schrader nichtdeterministische Turingmaschinen Zentrum für Angewandte Informatik Köln 29. April 2009 1 / 33 2 / 33 Turingmaschinen das Konzept des Nichtdeterminismus nahm

Mehr

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden: Sprachen und Automaten 1 Deterministische endliche Automaten (DFA) Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden: M = (Z,3,*,qo,E) Z = Die Menge der Zustände 3 = Eingabealphabet

Mehr

I.5. Kontextfreie Sprachen

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

Mehr

Kurz-Skript zur Theoretischen Informatik I

Kurz-Skript zur Theoretischen Informatik I Kurz-Skript zur Theoretischen Informatik I Inhaltsverzeichnis 1 Grundlagen 2 2 Reguläre Ausdrücke 4 3 Endliche Automaten 5 3.1 Vollständige endliche Automaten................................... 6 3.2 ε

Mehr

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden

Maike 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

Mehr

Rekursiv aufzählbare Sprachen

Rekursiv aufzählbare Sprachen Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben

Mehr

Kellerautomat (1/4) Kellerautomat (2/4) Kellerautomat (3/4) Kellerautomat (4/4)

Kellerautomat (1/4) Kellerautomat (2/4) Kellerautomat (3/4) Kellerautomat (4/4) Kellerautomat (1/4) Kellerautomat (2/4) Kontextfreie Grammatiken können von Kellerautomaten (Push Down Automata, PDA) erkannt werden PDAs sind eine Erweiterung der endlichen Automaten um ein einfaches

Mehr

Übungsblatt Nr. 3. Lösungsvorschlag

Übungsblatt Nr. 3. Lösungsvorschlag Institut für Kryptographie und Sicherheit Prof. Dr. Jörn Müller-Quade Dirk Achenbach Tobias Nilges Vorlesung Theoretische Grundlagen der Informatik Übungsblatt Nr. 3 Aufgabe 1: Karlsruhe ist nicht genug

Mehr

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14 Institut für Theoretische Informatik Prof. Dr. Jörn Müller-Quade Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 23/4 Vorname Nachname Matrikelnummer Hinweise Für die

Mehr

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III Name Vorname Matrikelnummer Universität Karlsruhe Institut für Theoretische Informatik o. Prof. Dr. P. Sanders 26. Feb. 2007 Klausur: Informatik III Aufgabe 1. Multiple Choice 10 Punkte Aufgabe 2. Teilmengenkonstruktion

Mehr

Laufzeit einer DTM, Klasse DTIME

Laufzeit einer DTM, Klasse DTIME Laufzeit einer DTM, Klasse DTIME Definition Laufzeit einer DTM Sei M eine DTM mit Eingabealphabet Σ, die bei jeder Eingabe hält. Sei T M (w) die Anzahl der Rechenschritte d.h. Bewegungen des Lesekopfes

Mehr

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln, Theorie der Informatik 9. März 24 7. Reguläre Sprachen I Theorie der Informatik 7. Reguläre Sprachen I Malte Helmert Gabriele Röger Universität Basel 9. März 24 7. Reguläre Grammatiken 7.2 DFAs 7.3 NFAs

Mehr

Formale Sprachen. Script, Kapitel 4. Grammatiken

Formale 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

Mehr

FORMALE SYSTEME. 8. Vorlesung: Minimale Automaten. TU Dresden, 6. November Markus Krötzsch Lehrstuhl Wissensbasierte Systeme

FORMALE SYSTEME. 8. Vorlesung: Minimale Automaten. TU Dresden, 6. November Markus Krötzsch Lehrstuhl Wissensbasierte Systeme FORMALE SYSTEME 8. Vorlesung: Minimale Automaten Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 6. November 2017 Rückblick Markus Krötzsch, 6. November 2017 Formale Systeme Folie 2 von 26

Mehr

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie Hochschuldozent Dr. Christian Schindelhauer Paderborn, den 21. 2. 2006 Lösungen zur 1. Klausur in Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie Name :................................

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Grammatik und Automat Formale Sprachen und Automaten Automaten sind Konzepte, die eine Sprache L dadurch charakterisieren, dass sie L akzeptieren. Grammatiken sind Konzepte, die eine Sprache L dadurch

Mehr

Normalformen für kontextfreie Grammatiken. Noam CHOMSKY, Sheila GREIBACH. Bäume. Ableitungen in kontextfreien Grammatiken. Grammatik G = (N,T,P,S)

Normalformen für kontextfreie Grammatiken. Noam CHOMSKY, Sheila GREIBACH. Bäume. Ableitungen in kontextfreien Grammatiken. Grammatik G = (N,T,P,S) Noam CHOMSKY, Sheila GREIBACH Normalformen für kontextfreie Grammatiken Noam CHOMSKY (*1928 ) Sheila GREIBACH (*1939) Grammatik G = (N,T,P,S) GREIBACH Normalform: A aw, w N* Erweiterte GREIBACH Normalform:

Mehr

Polynomielle Verifizierer und NP

Polynomielle Verifizierer und NP Polynomielle Verifizierer und NP Definition Polynomieller Verifizierer Sei L Σ eine Sprache. Eine DTM V heißt Verifizierer für L, falls V für alle Eingaben w Σ hält und folgendes gilt: w L c Σ : V akzeptiert

Mehr

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Ü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

Mehr

Worterkennung in Texten speziell im Compilerbau 14. April Frank Heitmann 2/65

Worterkennung in Texten speziell im Compilerbau 14. April Frank Heitmann 2/65 Grenzen regulärer Sprachen? Formale Grundlagen der Informatik 1 Kapitel 4 Über reguläre Sprachen hinaus und Frank Heitmann heitmann@informatik.uni-hamburg.de Wir haben mittlerweile einiges kennengelernt,

Mehr

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13 Universität Karlsruhe Theoretische Informatik Fakultät für Informatik WS 2003/04 ILKD Prof. Dr. D. Wagner 14. April 2004 2. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004 Hier Aufkleber

Mehr

Theoretische Informatik II

Theoretische Informatik II Theoretische Informatik II Einheit 4.2 Modelle für Typ-0 & Typ-1 Sprachen 1. Nichtdeterministische Turingmaschinen 2. Äquivalenz zu Typ-0 Sprachen 3. Linear beschränkte Automaten und Typ-1 Sprachen Maschinenmodelle

Mehr

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07 Vortrag am 17.11.2006 Nichtdeterministische Turingmaschinen und NP Yves Radunz Inhaltsverzeichnis 1 Wiederholung 3 1.1 Allgemeines........................................

Mehr

2.3 Abschlusseigenschaften

2.3 Abschlusseigenschaften 2.3 Abschlusseigenschaften 2.3 Abschlusseigenschaften In diesem Abschnitt wollen wir uns mit Abschlusseigenschaften der regulären Sprachen, d.h. mit der Frage, ob, gegeben eine Operation und zwei reguläre

Mehr

Musterlösungen zu Grundlagen der theoretischen Informatik (skizziert)

Musterlösungen zu Grundlagen der theoretischen Informatik (skizziert) Musterlösungen zu Grundlagen der theoretischen Informatik (skizziert) (3a) L 2 =(a + ε)(ba) (b + ɛ) oderl 2 = ε + L 2 mit L 2 = a(ba) (b + ε)+b(ab) (a + ε) oder L 2 = a +(a + ε)(ba) b(a + ε) L 3 = ε +

Mehr

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften Formalismen für RE Formale rundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen Frank Heitmann heitmann@informatik.uni-hamburg.de Satz Zu jeder regulären Sprache L gibt es einen DFA A mit L(A) =

Mehr

2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

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

Mehr

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln, Theorie der Informatik 8. März 25 8. Reguläre Sprachen I Theorie der Informatik 8. Reguläre Sprachen I 8. Reguläre Grammatiken Malte Helmert Gabriele Röger 8.2 DFAs Universität Basel 8. März 25 8.3 NFAs

Mehr

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012 Hier Aufkleber mit Name und Matrikelnr. anbringen

Mehr

Endliche Automaten, reguläre Ausdrücke, rechtslineare Grammatiken

Endliche Automaten, reguläre Ausdrücke, rechtslineare Grammatiken 1 / 15 Endliche Automaten, reguläre Ausdrücke, rechtslineare Grammatiken Prof. Dr. Hans Kleine Büning FG Wissensbasierte Systeme WS 08/09 2 / 15 Deterministischer endlicher Automat (DEA) Definition 1:

Mehr

Formale Sprachen und Automaten: Tutorium Nr. 8

Formale Sprachen und Automaten: Tutorium Nr. 8 Formale Sprachen und Automaten: Tutorium Nr. 8 15. Juni 2013 Übersicht 1 Nachtrag 2 Besprechung von Übungsblatt 7 Aufgabe 1 Aufgabe 2 Aufgabe 3 3 CFG PDA Definitionen Ein Beispiel! Aufgabe 4 Der PDA als

Mehr

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen: Probeklausur Automatentheorie & Formale Sprachen WiSe 2012/13, Wiebke Petersen Name: Matrikelnummer: Aufgabe A: Typ3-Sprachen 1. Konstruieren Sie einen endlichen Automaten, der die Sprache aller Wörter

Mehr

Definition 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) 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,

Mehr

q 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

q 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

Mehr

Deterministischer Kellerautomat (DPDA)

Deterministischer Kellerautomat (DPDA) Deterministische Kellerautomaten Deterministischer Kellerautomat (DPDA) Definition Ein Septupel M = (Σ,Γ, Z,δ, z 0,#, F) heißt deterministischer Kellerautomat (kurz DPDA), falls gilt: 1 M = (Σ,Γ, Z,δ,

Mehr