THEORETISCHE INFORMATIK II

Größe: px
Ab Seite anzeigen:

Download "THEORETISCHE INFORMATIK II"

Transkript

1 THEORETISCHE INFORMATIK II Vorlesungsskript Jiří Adámek Institut für Theoretische Informatik Technische Universität Braunschweig Juni 2013

2

3 Inhaltsverzeichnis 1 Endliche Automaten Mathematische Grundbegriffe Definition der endlichen Automaten Nichtdeterministische Automaten Reguläre Sprachen Ableitungen Äquivalente Zustände Konstruktion eines Quotient-DEA Minimierung von Automaten Nerode-Äquivalenz Beweise der Regularität Moore- und Mealy-Automaten Kontextfreie Sprachen und Kellerautomaten Die Idee einer formalen Grammatik Kontextfreie Grammatik Anwendungen von kontextfreien Grammatiken Ableitungsbäume Kontextfreie und reguläre Sprachen Eigenschaften kontextfreier Sprachen Nullierbare Variablen Chomsky-Normalform Algorithmen für formale Sprachen Kellerautomaten Kellerautomaten und kontextfreie Sprachen Turingmaschinen Definition einer Turingmaschine Modifikationen von Turingmaschinen TM mit mehreren finalen Zuständen TM mit zusätzlichem Gedächtnis i

4 ii INHALTSVERZEICHNIS TM mit erweitertem Bandalphabet TM mit mehrspurigem Band TM mit mehreren Bändern Nichtdeterministische Turingmaschinen Rekursiv aufzählbare Sprachen Rekursive Sprachen Church-Turing-These, rekursive Funktionen und Grammatiken Berechenbare Funktionen Primitive Rekursion µ-rekursive Funktionen Grammatiken und Turingmaschinen Universelle Turingmaschine Das Halteproblem Ein Rechner als Turing-Maschine Unentscheidbare Probleme Das Akzeptanzproblem Akzeptanz des leeren Wortes Ist eine TM ein Algorithmus? Das Problem von hello world Programmen Satz von Rice Minimierung von Turingmaschinen Komplexität von Algorithmen Beispiele effizienter Algorithmen Komplexitätsklasse P Berechnungsprobleme und Reduzierbarkeit Robustheit der Klasse P TM mit zusätzlichem Gedächtnis TM mit mehrspurigem Band Mehr-Band TM RAM Geometrische Algorithmen und reelle RAM Komplexitätsklasse N P N P-Vollständigkeit Weitere N P-vollständige Probleme Komplexitätsklasse con P Komplexität von Optimierungsproblemen Approximation von Optimierungsproblemen Raumkomplexität

5 Kapitel 3 Turingmaschinen kaptm Weder endliche Automaten noch Kellerautomaten sind genügend starke Berechnungsmodelle, denn sie sind nicht fähig, selbst so einfache Sprachen wie z. B. {a n b n c n ; n 1} zu akzeptieren. Wir führen jetzt ein Modell einer Maschine ein, die eine sehr starke Leistung hat, obwohl die Definition nicht komplizierter als die der Kellerautomaten ist: die Turingmaschinen. Diese Maschinen wurden von Alan Turing in den 1930 er als Formalisierung des intuitiven Begriffs des Algorithmus eingeführt. Turing versuchte zu zeigen, dass jeder Rechenprozess, den ein Mensch aufgrund einer (endlichen, eindeutigen) Anweisung durchführen kann, auch automatisch von einer Maschine durchgeführt werden kann. Was einem menschlichen Rechner zur Verfügung steht, ist eine endliche Liste von Instruktionen, die zusammen mit den Daten in seinem Gedächtnis eine endliche Menge von (inneren) Zuständen formt. Außerdem hat er einen unbeschränkten Raum, in dem er lesen, schreiben und überschreiben darf. Das kann (zweidimensional) durch einen beliebig erweiterbaren Papierstoß realisiert werden, oder äquivalent, falls alle Zeilen als Erweiterungen der ersten angesehen werden, als ein (eindimensionales) unendliches Band. Das formale Modell ist dann dem eines Kellerautomaten ähnlich: anstelle des Kellers gibt es hier ein Band, auf dem sich ein read-and-write-kopf unbeschränkt bewegt. Die Leistungsfähigkeit von Turingmaschinen ist trotzdem unvergleichlich größer als die der Kellerautomaten. Es zeigt sich, dass die Klasse aller Probleme, die mit Turingmaschinen gelöst werden können, dieselbe ist wie die Klasse aller Probleme, die moderne Rechner mit modernen Programmiersprachen lösen können. Die Churchsche These, die wir s0päter genauer erläutern, behauptet, dass die Turingmaschine sogar ein ganz allgemeines Modell des Begriffs des Algorithmus ist. Also kann ein Problem genau dann mit einem Algorithmus gelöst werden, wenn eine Turingmaschine es lösen kann. Diese These kann nicht bewiesen werden (der Begriff des Algorithmus ist eben doch nur intuitiv), aber sie wurde mehrmals überzeugend dadurch untermauert, dass andere oft grundsätzlich verschiedene Berechnungsmodelle dieselbe Klasse lösbarer Probleme ergeben. 3.1 Definition einer Turingmaschine Eine Turingmaschine besteht analog zum Kellerautomaten aus inneren Zuständen, externem Speicher und einer Betriebseinheit, die aufgrund des momentanen Zustandes und des gerade gelesenen Symbols entscheidet, welcher der nächste Zustand ist und wie der Speicher geändert wird. Im Vergleich zu Kellerautomaten hat hier der Speicher den Typ eines (unbeschränkten) Bandes, auf dem sich ein 79

6 80 KAPITEL 3. TURINGMASCHINEN Lese-/Schreibkopf frei bewegt:... a b b a... Kopf Band q 0 Betriebseinheit q 3 q 2 q 1 (Obwohl das Band unbeschränkt ist, ist zu jedem Zeitpunkt nur ein endlicher Teil beschrieben; der Rest ist leer.) Noch ein Unterschied im Vergleich zu den Kellerautomaten: wir arbeiten zuerst nur mit deterministischen Turingmaschinen, denn sie sind (wie im Fall der endlichen Automaten) genauso leistungsfähig wie die nichtdeterministischen. Das beweisen wir später. Die Übergangsfunktion δ einer Turingmaschine entscheidet aufgrund des momentanen Zustandes q und des gerade gelesenen Bandsymbols s, ob 1. sich der Zustand zu q ändert und sich der Kopf nach links (L) oder rechts (R) bewegt oder 2. sich der Zustand zu q ändert und der Kopf das momentane Bandsymbol mit einem neuen Symbol s überschreibt. Das beschreiben wir als Funktion δ(q, s) = (q, s ), wobei s = L, R oder s Σ ist. (Σ ist das gegebene Eingabealphabet). Wir müssen aber auch Bandfelder, die nicht beschriftet sind, behandeln. Dazu führen wir ein Spezialsymbol # (Blank) ein, das unbeschriftete Felder bezeichnet. In der Formel δ(q, s) = (q, s ) sind q und q also Zustände, s ein Symbol aus Σ {#} und s ein Symbol aus Σ {#,L,R}. Obwohl die Turingmaschine, wie wir sie jetzt definieren, deterministisch ist, gibt es neben 1. und 2. noch eine weitere Möglichkeit für ihr Verhalten, nämlich dass 3. die Maschine im Zustand q auf dem Bandsymbol s hält und die Berechnung endet. sectdefturingmaschine defturingmaschine Formal wird dies dadurch beschrieben, dass δ(q, s) nicht definiert ist. Hier ist δ also eine partielle Funktion. Es gibt einen wichtigen Grund für diesen dritten Fall: der Kopf der Turingmaschine ist kein read-only-kopf (wie im Fall der endlichen Automaten und Kellerautomaten). Der Impuls, eine Berechnung zu beenden, erfolgt hier also nicht durch das Ende der Eingabe. Im Vergleich mit den DEA oder Kellerautomaten ergibt sich eine kleine Vereinfachung: es genügt ein finaler Zustand, wir brauchen keine Menge F Q (vergleiche 3.2 unten). Notation. Wir bezeichnen Σ = Σ { } als die Menge aller Bandsymbole. Definition. Eine Turingmaschine (TM) ist ein Fünftupel M = (Q, Σ, δ, q 0, q F ) wobei

7 3.1. DEFINITION EINER TURINGMASCHINE 81 ectbspaltdreieinseins bspaltdreieinseins Q Σ δ q 0 Q q F Q eine endliche Menge (aller Zustände), eine endliche Menge (das Eingabealphabet), die die Symbole L, R und # nicht enthält, eine partielle Funktion (die Übergangsfunktion) mit Definitionsbereich Q (Σ {#}) und Wertebereich Q (Σ {#,L,R}), der Initialzustand und der Finalzustand ist. Notation. Wir schreiben statt δ(q, s) = (q, s ) oft nur (q, s) (q, s ) und sprechen von Übergangsregeln. Wenn s = L, bedeutet diese Regel, dass der Lesekopf nach links geht. Analog für s = R. Wenn s in Σ liegt, wird das gelesene Symbol s durch s überschrieben und der Kopf bewegt sich nicht. Beispiel 1. Teilbarkeit durch 5. Der Algorithmus, der für eine Zahl entscheidet, ob sie durch 5 teilbar ist, ist einfach: akzeptiert werden Zahlen mit der letzten Ziffer 0 oder 5. Wir lesen also die Eingabe s 1... s n bis wir das letzte beschriebene Feld s n erreichen (also: bis # erscheint und dann einen Schritt zurück). Falls s n = 0 oder 5, gehen wir in den Finalzustand q F über: (q 0, i) (q 0, R) für i = 0, 1,..., 9 (wir lesen weiter) (q 0, #) (q 1, L) einen Schritt zurück und in den neuen Zustand q 1 (q 1, 0) (q F, 0) (q 1, 5) (q F, 5) } falls s n = 0 oder 5, ist der letzte Zustand q F Genauer: die folgende TM M = ({q 0, q 1, q F }, {0, 1,..., 9}, δ, q 0, q F ), deren Übergangsregeln oben aufgelistet sind, akzeptiert die Sprache aller Wörter über Σ = {0, 1,..., 9}, die mit 0 oder 5 enden. Beispiel einer Berechnung: für die Eingabe 132 wird die TM die folgenden Schritte machen:... # # # # # #... q 0 Initialkonfiguration... # # # # # #... q 0... # # # # # #... q 0... # # # # # #... q 1 q 0... # # # # # #... Haltekonfiguration Da kein Übergang (q 1, 2) definiert ist, hält hier die Turingmaschine. Die Eingabe 132 wird nicht akzeptiert, da q 1 nicht der Finalzustand ist.

8 82 KAPITEL 3. TURINGMASCHINEN Die Berechnung von Eingaben formalisieren wir jetzt. Konfigurationen: Eine Konfiguration einer Turingmaschine ist die vollständige Information über die TM zu einem Zeitpunkt der Berechnung; sie wird durch (1) den momentanen Zustand q, (2) den Inhalt des Bandes und (3) die Position des Kopfes bestimmt. Also ist (1) ein Element der Menge Q. Wir können (2) und (3) zusammenfassen, indem wir sagen, welches Wort u L links vom Kopf steht, welches Wort u R rechts steht und welches Symbol a aus Σ = Σ {#} der Kopf liest. Dabei ist u L entweder leer, oder hat das erste Symbol aus Σ und die weiteren aus Σ: Analog u R Σ Σ {ε}. u L Σ Σ {ε}. Eine Konfiguration ist also ein Quadrupel (q, u, a, v), wobei q Q, u Σ Σ {ε}, a Σ und v Σ Σ {ε}. Die Menge aller solcher Quadrupel heißt Konfigurationsmenge. K = Q (Σ Σ {ε}) Σ (Σ Σ {ε}) Die üblichere (und übersichtlichere) Schreibweise ist, u, a, v zu konkatenieren und a zu unterstreichen: (q, uav). In Beispiel 1 hat die Berechnung also die Konfigurationen (q 0, 132) (q 0, 132) (q 0, 132) (q 0, 132#) und (q 1, 132) Berechnung: Die Eingabe s 1 s 2... s n Σ wird immer so auf das Band geschrieben, dass die Buchstaben ohne Leerzeichen hintereinander stehen. Der Kopf wird auf den ersten Buchstaben gestellt und der Zustand ist initial. Mit anderen Worten heißt das: wir erwarten am Anfang, dass die Konfiguration die folgende Form hat: ( ) (q 0, s 1 s 2... s n ), wobei s 1... s n Σ. Der Fall der leeren Eingabe ε Σ (also n = 0) entspricht der Konfiguration (q 0, #). Konfigurationen der Form ( ) heißen Initialkonfigurationen. Falls die Turingmaschine eine Konfiguration (q, s 1 s 2... s i 1 s i s i+1... s n ) erreicht hat, gibt es zwei Möglichkeiten: entweder ist δ(q, s i ) nicht definiert, dann heißt die Konfiguration Haltekonfiguration, oder es gilt δ(q, s i ) = (q, s ) mit s {L,R} Σ, dann definieren wir die Folgekonfiguration wie folgt: 1. falls s =L, dann ist die Folgekonfiguration (q, s 1 s 2... s i 1 s i s i+1... s n ) 2. falls s =R, dann ist die Folgekonfiguration (q, s 1 s 2... s i 1 s i s i+1... s n ) 3. falls s Σ, dann ist die Folgekonfiguration (q, s 1 s 2... s i 1 s s i+1... s n ).

9 3.1. DEFINITION EINER TURINGMASCHINE 83 Konfiguration δ(q, s i ) Folgekonfiguration (q, s 1 s 2... s i 1 s i s i+1... s n ) (q, L) (q, s 1 s 2... s i 1 s i s i+1... s n ) (q, s 1 s 2... s i 1 s i s i+1... s n ) (q, R) (q, s 1 s 2... s i 1 s i s i+1... s n ) (q, s 1 s 2... s i 1 s i s i+1... s n ) (q, s ) (q, s 1 s 2... s i 1 s s i+1... s n ) (q, s 1 s 2... s i 1 s i s i+1... s n ) nicht definiert keine (Haltekonfiguration) Tabelle 3.1: Definition tabfolgekonfiguration der Folgekonfiguration der TM TabFolgekonfiguration Diese Definition ist in Tabelle 3.1 zusammengefasst. Bemerkung 1. Wie ist der Fall 1 zu verstehen, falls i = 1 gilt? Die Folgekonfiguration zu (q 0, s 1... s n ) ist natürlich (q, #s 1... s n ). Analog folgt im Fall 2 aus i = n, dass die Folgekonfiguration (q, s 1... s n #) ist. Notation. Die Relation Folgekonfiguration auf der Menge K aller Konfigurationen bezeichnen wir mit dem Symbol. Also ergibt der 1. Fall (q, s 1 s 2... s i 1 s i s i+1... s n ) (q, s 1 s 2... s i 1 s i s i+1... s n ) usw. Die reflexive und transitive Hülle dieser Relation wird mit bezeichnet; d.h., K K bedeutet, dass K und K zwei Konfigurationen sind, die entweder gleich sind oder dass es Konfigurationen K = K 0, K 1,..., K n = K mit K i 1 K i für i = 1,..., n gibt. Wir sagen, dass die Konfiguration K von K berechenbar ist. ectdeftmkonfiguration deftmkonfigurationen In Beispiel 1 in Abschnitt 3.1 gilt (q 0, 132) (q 0, 132)... (q 1, 132) und, die letzte Konfiguration hat keine Folgekonfiguration, da sie eine Haltekonfiguration ist. Definition. Für jede Turingmaschine ist die Berechnung einer Eingabe s 1 s 2... s n Σ eine endliche oder unendliche Liste von Konfigurationen: K 0 K 1 K2... wobei 1. K 0 die Initialkonfiguration mit K 0 = (q 0, s 1 s 2... s n ) ist, und 2. falls die Liste endlich ist, ist die letzte Konfiguration eine Haltekonfiguration. Wir sagen, dass die Turingmaschine die Eingabe genau dann akzeptiert, wenn ihre Berechnung endlich ist und der Zustand der letzten Konfiguration final ist. Bemerkung 2. Die Berechnung einer Eingabe w hat also drei mögliche Ergebnisse: 1. die TM hält und akzeptiert w, 2. die TM hält und akzeptiert w nicht, 3. die TM hält nicht (und akzeptiert w deshalb nicht). Am Anfang ist die Eingabe kompakt, also ohne Unterbrechung (durch #) auf dem Band geschrieben. Im Verlauf der Berechnung kann # an jeder Stelle erscheinen.

10 84 KAPITEL 3. TURINGMASCHINEN sectdefspracheeinertm Beispiel 1. (Fortsetzung) Die Berechnung der Eingabe 132 haben wir beschrieben. Die letzte Konfiguration ist (q 1, 132). Da q 1 nicht final ist, wird 132 nicht akzeptiert. Auch das leere Wort wird nicht akzeptiert: hier haben wir eine 1-Schritt-Berechnung, denn (q 0, #) ist eine Haltekonfiguration, und q 0 ist nicht final. Diese Turingmaschine hält auf jede Eingabe (eine wichtige Eigenschaft, wie wir später erfahren werden) und akzeptiert genau die Eingaben, deren letztes Symbol 0 oder 5 ist. defspracheeinertm sectbspaltdreieinsdrei Definition. Für jede Turingmaschine M = (Q, Σ, δ, q 0, F ) bezeichnen wir mit L(M) die Sprache aller Wörter über Σ, die M akzeptiert. bspaltdreieinsdrei Beispiel 2. DEA als Turing-Maschine. Gegeben sei ein DEA, A = (Q, Σ, δ, q 0, F ), definieren wir eine TM wie folgt: Ā = (Q {q f }, Σ, δ, q 0, q f ) wobei q f / Q (a) jedem Übergang (q, s) q in A entspricht der Übergang (q, s) (q, R) in Ā und (b) für jeden Zustand q F, der in A final ist, den Übergang (q, ) (q f, ). Dann hat die Turing-Maschine dieselbe Berechnung einer Eingabe s 1... s n wie der DEA: wir starten in... s 1 s 2... s n... q 0 und für den Übergang (q 0, s 1 ) q 1 in A ist die nächste Konfiguration usw. Wenn wir die Konfiguration erreichen, dann... s 1 s 2... s n... q 1 s 1 s 2... s n q n q n final die nächste Konfiguration mit Zustand q f akzeptiert und q n nicht final keine weitere Konfiguration und die letzte akzeptiert nicht.

11 3.2. MODIFIKATIONEN VON TURINGMASCHINEN 85 Bemerkung 3. Für einen DEA von k Zuständen und m Eingaben hat die entsprechende TM km + 1 Zustände. Beispiel 3. Eine Turing-Maschine für die Sprache a + b + c + Da diese Sprache regulär ist, wird sie durch einen DEA akzeptiert: a q o a b q 1 b c q 2 c q 3 a,c a,b b,c q 5 a,b,c a,b,c Diesen DEA können wir als eine TM mit = 16 Zuständen simulieren. Beispiel 4. Die Sprache aller Wörter der Form [a n b n c n ] mit n = 1, 2, 3,... ist nicht kontextfrei. (Beweis analog zu dem für a n b n c n.) Aber sie kann durch eine einfache TM akzeptiert werden. Die Simulieren den folgenden Algorithmus: 1. überprüfe, ob das innere Wort in der Sprache a + b + c + liegt: dann genügt die TM aus dem vorigen Beispiel. 2. rekursiv lösche ein a dann ein b und dann ein c solange bis der Inhalt des Bandes die Form [##... #] Wenn 2. gelungen ist, akzeptiere, sonst akzeptiere nicht. sectmodifikationentm subsecttmmehrerefinal 3.2 Modifikationen von Turingmaschinen Wir behaupteten in der Einleitung zu diesem Kapitel, dass Turingmaschinen zu einer starken Leistung fähig sind. Das ist auf den ersten Blick nicht leicht zu erkennen. Aber wir führen jetzt kompliziertere Maschinen ein, mit deren Hilfe schon recht komplizierte Sprachen akzeptiert werden können. Anschließend zeigen wir, dass sich alle diese neuen Maschinen auf den einfachen Fall reduzieren lassen. (Das ist keine Überraschung: erinnern wir uns an die Churchsche These, die behauptet, dass sich alle Berechnungsmodelle auf TM reduzieren lassen!) TM mit mehreren finalen Zuständen Wir können das Konzept der Turingmaschinen zu einer Maschine M = (Q, Σ, δ, q 0, F ) verallgemeinern, die der obigen entspricht, nur ist F Q eine Menge finaler Zustände. Jede solche Maschine kann durch die folgende TM M = (Q {q F }, Σ, δ, q 0, q F ) simuliert werden: q F ist ein neuer Zustand, und δ besteht aus allen Übergangsregeln, die in δ enthalten sind, und zusätzlich werden in δ noch die folgenden Regeln

12 86 KAPITEL 3. TURINGMASCHINEN (q, s) (q F, s) aufgenommen, wobei q F ein Zustand ist, für den δ(q, s) undefiniert ist. (Also führen Haltekonfigurationen (q, s) von M, bei denen q final ist, zu Haltekonfigurationen (q F, s) von M.) Die Anzahl von Schritten, die M macht, ist n + 1 wenn M n Schritte macht. subsect-tm-gedaechtnis TM mit zusätzlichem Gedächtnis Wir können die Definition einer TM so modifizieren, dass die Maschine in jedem Schritt zusätzlich einen Zugriff auf ein Gedächtnis hat, wobei Symbole eines endlichen Alphabets A gespeichert werden. Die Übergangsfunktion δ entscheidet jetzt aufgrund (1) des Zustandes, (2) des gelesenen Symbols aus Σ {#} und (3) des gespeicherten Symbols aus A. Die Übergänge haben jetzt die Form (q, a, s) (q, s ) mit q, q Q, a A, s Σ und s Σ L, R sectbspaltdreizweieins bspaltdreizweieins Für Initialkonfigurationen nehmen wir an, dass ein ausgewähltes Symbol a 0 A gemerkt wird. Beispiel 1. Die Sprache aller Wörter, deren erstes Symbol nie wieder vorkommt, also L = {s 1... s n Σ ; s 1 s i für i = 2,..., n}, kann durch eine TM mit zusätzlichem Gedächtnis wir folgt akzeptiert werden: die TM liest das erste Symbol und speichert es im Gedächtnis (also A = Σ, d.h., das zusätzliche Gedächtnis kann ein Symbol aus Σ speichern). Dies in Initialzustand q 0. Dann vergleicht die TM im Zustand q 1 die anschließend gelesenen Symbole mit dem gespeicherten und hält und akzeptiert nicht, falls sie eine Übereinstimmung feststellt. Sobald die TM das Blanksymbol liest, hält sie und akzeptiert im Zustand q 0, der initial sowie final ist. Diese TM braucht nur zwei Zustände: q 0, initial und final, in dem s 1 gespeichert wird, und q 1, in dem nach rechts gegangen und mit dem Speicher verglichen wird. Bemerkung 1. Eine TM mit zusätzlichem Gedächtnis ist eigentlich eine TM in dem vorher definierten Sinne, deren Zustandsmenge das kartesische Produkt Q A ist (d. h. die Menge aller Paare (q, a), wobei q ein Zustand und a A ist). Die Übergänge der Maschine sind also von (q, a) Q A und s S abhängig. Der Initialzustand ist (q 0, a 0 ), und alle Zustände (q F, a), a A, sind final. Zum Beispiel gilt für die Maschine aus Beispiel 1, dass A = Σ (mit s 0 Σ beliebig gewählt) und die Zustandsmenge Q = {q 0, q 1 } Σ ist. Wir können sie wie folgt als normale TM beschreiben, wobei der Initialzustand (q 0, s 0 ) und alle Zustände (q 0, s) final sind. So gibt es die folgenden Übergangsregeln: ((q 0, s 0 ), s) ((q 1, s), R) für alle s Σ ((q 1, s), s ) ((q 1, s), R) für alle s Σ, s s ((q 1, s), #) ((q 0, s 0 ), #). Zum Beispiel wird die Eingabe stt wie folgt berechnet: ((q 0, s 0 ), stt) ((q 1, s), stt) ((q 1, s), stt) ((q 1, s), stt#) ((q 0, s 0 ), stt#). Hier hält die TM und akzeptiert.

13 3.2. MODIFIKATIONEN VON TURINGMASCHINEN 87 subsecttmerwbandalph ectbspaltdreizweivier bspaltdreizweivier TM mit erweitertem Bandalphabet Manchmal ist es geschickt, zusätzliche (Hilfs-)Symbole auf das Band schreiben zu dürfen, die nicht zum Eingabealphabet gehören. Das bedeutet, dass außer dem Eingabealphabet Σ noch ein Bandalphabet Γ mit Σ Γ gegeben wird und die Übergangsfunktion δ mit allen Symbolen aus Γ arbeitet, d.h., δ ist eine partielle Funktion mit Definitionsbereich Q (Γ {#}) und Wertebereich Q (Γ {#, L, R}). Eine TM mit erweitertem Bandalphabet ist also ein 6-Tupel M = (Q, Σ, Γ, δ, q 0, q F ) wobei Σ Γ das Eingabealphabet und δ Q (Γ {#}) Q (Γ {#, L, R}) eine partielle Funktion ist. Die Sprache, die M akzeptiert, ist die Sprache L(M) Σ aller Wörter über dem (kleineren) Eingabealphabet Σ, für die M im Finalzustand hält. Beispiel 2. Eine 1-Band TM, die die Sprache {a n b n c n ; n 1} akzeptiert. Hier haben wir Σ = {a, b, c}, und wir benutzen Γ = {a, b, c, [, ]}. Die TM wird erst die Eingabe mit [ und ] umklammern: (q 0, a) (q 0, L) (q 0, #) (q 0, [ ) (q 0, [ ) (q 1, R) (q 1, x) (q 1, R) für x = a, b, c (q 1, #) (q 1, ] ). Jetzt kann sie die TM von Beispiel 2 in Abschnitt 3.1 simulieren. Beispiel 3. Eine einfache TM für die Sprache a n b n c n (n 1). Wir löschen die Symbole nicht, sondern ersetzen sie mit einem neuen Symbol X. Die TM hat das Bandalphabet a, b, c, X und arbeitet wie folgt (der Kopf ignoriert das Symbol X): (1) Das gelesene a wird durch X ersetzt. (2) Kopf geht nach rechts zum ersten b, das mit X ersetzt wird. Wenn keine b gefunden wird oder erst c vorkommt, hält die TM und akzeptiert nicht. (3) Kopf geht nach rechts zum ersten c, das mit X ersetzt wird. Wenn kein c vor # gefunden wird, hält die TM und akzeptiert nicht. (4) Kopf geht nach links bis # und dann rechts bis (4a) ein a gefunden wird, dann wiederholt sich der Zyklus (1) - (3) oder (4b) b oder c gefunden wird, dann hält die TM und akzeptiert nicht oder (4c) # gefunden wird, dann hält die TM und akzeptiert. Bemerkung 2. Für jede TM mit erweitertem Bandalphabet M gibt es eine ( normale ) TM, die M simuliert. (a) Nehmen wir erst an, dass Γ eine Untermenge von Σ + ist. D.h. die neuen Symbole sind Wörter s 1... s k im ursprünglichen Alphabet Σ. Jeden Übergang (q, s 1... s k ) (q, s 1... s l )

14 88 KAPITEL 3. TURINGMASCHINEN der TM können wir durch eine Sequenz von Übergängen einer neuen TM mit Bandalphabet Σ simulieren: der Kopf, statt das Wort s 1... s k auf einmal zu lesen, liest es in k Schritten und speichert es im zusätzlichen Gedächtnis. Dann Schreibt der Kopf, statt s 1... s l auf einmal, das Wort in l Schritten, indem er s 1... s k im zusätzlichen Gedächtnis zur Verfügung hat. (b) Wenn Γ ein beliebiges Alphabet ist, können wir es mit Wörtern aus Σ codieren: da die Menge Γ endlich ist und die Menge Σ + unendlich ist, gibt es eine injektive Funktion γ Γ Σ + mit γ(s) = s für alle s Σ( Γ). Dann können wir, statt Γ, mit der gleichmächtigen Menge Γ = γ(γ), die Untermenge von Σ + ist, arbeiten und den Fall (a) anwenden. subsecttmmehrspur TM mit mehrspurigem Band Wir arbeiten hier mit einer Modifikation von TM, die darin besteht, dass das Band in k Spuren unterteilt wird, die alle gleichzeitig gelesen werden. Stellen wir uns erst vor, dass k = 2 ist. Wir schreiben Symbole aus dem Eingabealphabet Σ = Σ 1 auf Spur 1 und Symbole eines Hilfsalphabetes Σ 2 auf Spur 2:... # # # # # # a # b # # a #... sectbspaltdreizweizwei bspaltdreizweizwei Die Maschine entscheidet in jedem Schritt abhängig vom Zustand und dem Inhalt beider Spuren (1) was der nächste Zustand wird und (2) ob sich der Kopf bewegt oder beide Spuren gleichzeitig überschrieben werden. Eine 2-Spur-TM ist eigentlich eine TM im vorher definierten Sinne, deren Bandalphabet aus Paaren (s 1, s 2 ), mit s 1 Σ 1 und s 2 Σ 2, geformt wird. Die einzige Ausnahme ist das Paar (#, #), das jetzt als Blank-Symbol dient. Also ist eine 2- Spur-TM einfach eine TM mit dem Eingabealphabet Σ = Σ 1 Σ 2 {(#, #)}. Analoges gilt für k-spurige Maschinen, die auf der i-ten Spur Symbole aus Σ i tragen (i = 1,..., k): das sind also die normalen TM mit Eingabealphabet Σ = Σ 1 Σ 2 Σ k {(#, #,..., #)} und mit dem Blanksymbol (#, #,..., #). Beispiel 4. Primzahltest Wir zeigen, wie man eine 3-spurige TM konstruiert, die die Sprache L aller Primzahlen (in binärer Darstellung) akzeptiert. Hiermit kann man auch gut die Idee von Turing illustrieren, dass jeder Algorithmus mit einer TM automatisiert werden kann. Wir verwenden hier den primitiven Algorithmus, der jede Zahl n durch alle Testzahlen 2, 3, 4,..., n 1 teilt und n akzeptiert, falls alle Divisionen einen positiven Rest ergeben. EINGABESPUR TESTZAHLSPUR HILFSSPUR q 0 Die Spuren der TM sind (1) Eingabespur, die während der Berechnung unverändert bleibt, (2) Testzahlspur, die am Anfang mit 1 beschriftet wird und in jedem Berech-

15 3.2. MODIFIKATIONEN VON TURINGMASCHINEN 89 nungsdurchgang um eins vergrößert wird (sodass in dem ersten Berechnungsdurchgang durch 2 dividiert wird, im zweiten mit 3, usw.) und (3) eine Hilfsspur. Wir schreiben am Anfang also die gegebene Zahl n = 1, 2, 3,... auf Spur 1, die Zahl 1 auf Spur 2 und nichts auf Spur 3. Der Initialzustand q 0 überprüft (durch Vergleich mit Spur 2), ob auf Spur 1 eine Zahl n 2 steht. Im Fall von n = 0 oder n = 1, wird der Zustand q 0 zu q, einem nicht-finalen Haltezustand verändert. (Also werden 0 und 1 nicht akzeptiert.) Falls n 2 ist, werden Berechnungsdurchgänge rekursiv durchgeführt, die man wie folgt beschreiben kann: Anfang eines Berechnungsdurchganges: Spur 1 wird auf Spur 3 kopiert. Die Zahl auf Spur 2 wird um 1 vergrößert. Die Spuren 1 und 2 werden verglichen und falls die Zahlen gleich sind, wird der Zustand zu q +, einem finalen Haltezustand geändert (die Eingabe wird also akzeptiert, denn keine Zahl kleiner n, die n teilt, wurde gefunden). Rumpf eines Berechnungsdurchganges: Die Zahl von Spur 3 wird durch die auf Spur 2 dividiert (z.b. durch wiederholte Subtraktion). Ende eines Berechnungsdurchganges: Jetzt steht auf Spur 3 der Rest der Eingabe modulo der Testzahl. Falls der Rest 0 ist, wird der Zustand zu q verändert. Falls der Rest positiv ist, wird der Kopf nach links zum ersten Symbol 1 von Spur 1 geschoben und ein neuer Berechnungsdurchgang beginnt. Es ist leicht einzusehen, dass sich diese informale Beschreibung der Turingmaschine relativ einfach durch eine formal definierte TM realisieren lässt TM mit mehreren Bändern Die nächste Modifikation von TM ist eine Maschine, die mehrere Bänder hat und bei der auf jedem Band ein Lese-/Schreibkopf steht. Die k Köpfe bewegen sich unabhängig voneinander und schreiben auch unabhängig voneinander auf ihren individuellen Bändern. Die Kontrolle ist aber zentral (durch den gegebenen Zustand): Band 1 Band Kopf Kopf 2 q 0 q q 1 4 q 3 q 2 sectdefkbandtm SCHEMA EINER 2-BAND TM Das bedeutet, dass der Übergangsfunktion δ hier der Zustand q und die k gelesenen Symbole (s 1, s 2,..., s k ) Σ k zur Verfügung stehen. (Wir bezeichnen mit A k = A A A die Menge aller k-tupel von Elementen aus A). Hier ist Σ die Menge aller Bandsymbole von allen k Bändern. Als Ergebnis haben wir einen neuen Zustand q und ein k-tupel von Symbolen aus {L,R} Σ {#}. Das heißt, dass δ eine partielle Funktion mit Urbildbereich Q (Σ {#}) k und Wertebereich Q (Σ {#,L,R}) k ist. defkbandtm Definition. Eine k-band-turingmaschine ist ein Fünftupel M = (Q, Σ, δ, q 0, q F ), die wie eine TM definiert wird, nur ist δ jetzt eine partielle Funktion mit Urbildbereich Q (Σ) k und Wertebereich Q (Σ {L,R}) k.

16 90 KAPITEL 3. TURINGMASCHINEN sectbspaltdreizweidrei bspaltdreizweidrei Die Berechnung durch eine k-band TM ist analog zum Fall einer 1-Band TM definiert. Eine Konfiguration hat die Form (q, u 1 a 1 v 1, u 2 a 2 v 2,..., u k a k v k ), wobei q der Zustand und u i a i v i der Inhalt des i-ten Bandes bezeichnet. Falls δ(q, a 1... a k ) definiert ist, wird die Folgekonfiguration individuell auf jedem Band berechnet. Falls δ(q, a 1... a k ) undefiniert ist, heißt die Konfiguration Haltekonfiguration. Band 1 dient als Eingabeband, das heißt, die Initialkonfiguration für eine Eingabe s 1... s n ist (q 0, s 1... s n, #, #,..., #) (k 1) mal Die Eingabe wird akzeptiert, falls die Maschine eine Haltekonfiguration mit dem finalen Zustand erreicht. Beispiel 5. Eine 2-Band TM, die die Sprache {a n b n c n ; n 1} akzeptiert. Die TM hat ein Eingabeband (Band 1) und ein Hilfsband (Band 2). Band 1 bleibt unverändert, Band 2 ist am Anfang leer. Band 1 a a... a b b... b c c... c # # Band 2 # # #... Initialkonfiguration Erste Etappe der Berechnung: Solange der Kopf 1 a liest, schreibt Kopf 2 a, und beide Köpfe bewegen sich ein Feld nach rechts. Nur am Anfang schreibt Kopf 2 ein x anstelle von a. Band 1 a a... a b b... b c c... c # # Band 2 x a... a # # #... Zweite Etappe: Hier bewegen sich Kopf 1 und Kopf 2 gleichzeitig in entgegengesetzte Richtungen: Kopf 1 nach rechts und Kopf 2 nach links, bis Kopf 1 c und Kopf 2 x liest. Falls Kopf 1 während dieser Bewegung immer b und Kopf 2 immer a liest, gehen wir zur dritten Etappe über; falls nicht, hält die TM in einem nicht-finalen Zustand (Eingabe nicht akzeptiert). Band 1... ## a a... a b b... b c c... Band 2... # x a... a # # #... Dritte Etappe: Beide Köpfe bewegen sich gleichzeitig nach rechts, bis Kopf 1 # liest. Falls in jedem dieser Schritte außer dem letzten Kopf 1 c und Kopf 2 a liest und

17 3.2. MODIFIKATIONEN VON TURINGMASCHINEN 91 falls beide Köpfe im letzten Schritt # lesen, dann hält die TM im finalen Zustand q F (Eingabe akzeptiert). Falls nicht, hält die TM und akzeptiert nicht. Formal können wir die Übergänge wie folgt beschreiben: Erste Etappe: (q 0, a, #) (q 1, a, x) (q 1, a, x) (q 1, R, R) (q 1, a, #) (q 1, a, a) (q 1, a, a) (q 1, R, R) Zweite Etappe: (q 1, b, #) (q 2, R, L) (q 2, b, a) (q 2, R, L) (q 2, c, x) (q 2, R, R) Dritte Etappe: (q 2, c, a) (q 2, R, R) (q 2, #, #) (q F, #, #). Das sind alle Übergänge für die 2-Band TM mit Bandalphabet ˆΣ = {a, b, c, x} und Eingabealphabet Σ = {a, b, c}, die die Sprache aller a n b n c n (n 1) akzeptiert. (Vergleichen Sie das mit Beispiel 2 in Abschnitt 3.1). Beispiele von Berechnungen: Die Eingabe aabbcc wird wie folgt berechnet: (q 0, aabbcc, #) (q 0, aabbcc, x) (q 0, aabbcc, x#) (q 0, aabbcc, xx) (q 0, aabbcc, xx#) (q 0, aabbcc, xx#) (q 0, aabbcc, xx#) (q 0, aabbcc, xx#) (q 0, aabbcc#, xx#) (q F, aabbcc#, xx#) und wird akzeptiert. Die Eingabe aabcc wird wie folgt berechnet: (q 0, aabcc, #) (q 0, aabcc, x) (q 0, aabcc, x#) (q 0, aabcc, xx) (q 0, aabcc, xx#) (q 0, aabcc, xx) (q 0, aabcc, xx#) und wird nicht akzeptiert. Bemerkung 3. Simulation einer 2-Band-TM durch eine 1-Band-TM Sei M = (Q, Σ, δ, q 0, F ) eine 2-Band-TM. Wir konstruieren eine 1-Band-TM mit zusätzlichem Gedächtnis, M, die die Maschine M Schritt für Schritt simuliert. Das Band von M ist 4-spurig: Band 1 Band 2 a a b a a Maschine M... a a b a a # # # # # # # # # # # # # # # # # # # # # # # # # # Maschine M... Band 1 der Maschine M wird auf die Spur 1 von M kopiert, die Kopfposition des Kopfes von Band 1 steht auf der Spur 2. Analog wird Band 2 auf Spur 3 von M kopiert und die Kopfposition des Bandes auf Spur 4. Das Eingabealphabet von M

18 92 KAPITEL 3. TURINGMASCHINEN ist also Σ = (Σ {#}) {, #} (Σ {#}) {, #} {(#, #, #, #)}, wobei (#, #, #, #) das Blank-Symbol ist. Die Zustände von M und M sind dieselben. Die Maschine M muss sich die letzten von Kopf 1 und Kopf 2 gelesenen Symbole merken, also hat sie ein zusätzliches Gedächtnis der Form (s 1, s 2, x), wobei s i Σ i {#} das aktuelle Symbol von Band i (= 1, 2) der Turingmaschine M ist und x {l, r} aussagt, ob Kopf 2 (also das Symbol auf Spur 4)links oder rechts von Kopf 1 (dem Symbol auf Spur 2) steht. 1. Anfang der Simulation: Auf Spur 1 steht die Eingabe v 1 v 2... v n von M, die Spuren 2-4 sind leer. Wir schreiben je ein auf die Spuren 2 und 4 unter v 1 von Spur 1. SPUR 1 SPUR 2 SPUR 3 SPUR 4... # v 1 v 2... v n # # #... # # #... # # Berechnungsschritt: Am Anfang der Simulation einers Schrittes von M steht der Kopf von M unter dem Symbol auf Spur 2. Das gerade gelesene Symbol von Spur 1 wird als s 1 im zusätzlichen Gedächtnis gespeichert. Danach sucht der Kopf von M das Symbol auf Spur 4: entweder stehen die beiden Symbole untereinander, sonst suchen wir links bzw. rechts, falls im zusätzlichen Gedächtnis x = l bzw. x = r steht. Sobald gefunden ist, wird das gerade gelesene Symbol von Spur 3 als s 2 gespeichert. Aufgrund des Zustandes q von M und des Paares (s 1, s 2 ) im zusätzlichen Gedächtnis werden jetzt die Kopfpositionssymbole auf den Spuren 3 und 4 so bewegt, wie die Maschine M die Köpfe bewegt, und die Symbole auf den Spuren 1 und 3 werden so überschrieben, wie M die Symbole auf beiden Bändern überschreibt. (Das geschieht in endlich vielen Schritten der Kopfbewegung von M.) Die Eingabe x {l, r} im Gedächtnis wir aktualisiert und der Kopf wird nach auf Spur 2 bewegt. uivalenzkbandtmeinbandtm uivalenzkbandtmeinbandtm 3. Ende der Simulation: Die Maschine M hält genau dann, wenn eine Haltekonfiguration von M erreicht wird. Und M akzeptiert genau dann, wenn M akzeptiert. Satz 1. Für jede k-band-tm gibt es eine (1-Band-) TM, die dieselbe Sprache akzeptiert. Beweis. Für k = 2 folgt der Beweis aus der gerade beschriebenen Simulation und dem Fakt, dass eine 4-spurige TM mit zusätzlichem Gedächtnis durch eine TM simuliert werden kann (siehe Kapitel 3.2.2). Für k > 2 ist der Beweis analog und wird dem Leser überlassen. 3.3 Nichtdeterministische Turingmaschinen inistischeturingmaschine inistischeturingmaschine Analog zum Fall nichtdeterministischer Automaten führen wir hier nichtdeterministische TM ein. Statt einer partiellen Funktion δ Q Σ Q Σ {L,R} haben wir hier eine Relation δ: Definition. Eine nichtdeterministische Turingmaschine M (NTM) ist ein Fünftupel M = (Q, Σ, δ, q 0, q F ), das wie eine TM definiert wird, außer dass hier δ

19 3.3. NICHTDETERMINISTISCHE TURINGMASCHINEN 93 eine Relation δ [Q Σ] [Q (Σ {L,R})] ist. Wir schreiben, wie oben, (q, s) (q, s ) falls die Relation δ das Quadrupel (q, s, q, s ) enthält. Der ganze Unterschied bezüglich der Notation zwischen einer TM und einer nichtdeterministischen TM ist, dass für eine deterministische TM für zwei beliebige Übergangsregeln (q, s) (q, s ) und (q, s) (q, s ) gilt, dass, falls die linken Seiten gleich sind (q = q und s = s), auch die rechten Seiten gleich sein müssen (q = s und s = s ). Für nichtdeterministische TM gilt keine solche Einschränkung. Beispiel 1. stochastischer Zahlengenerator. Wir beschreiben eine nichtdeterministische Turingmaschine M, die auf ihr Band entweder eine beliebige Zahl n 1 (in binärer Form) schreibt und hält oder nie hält. Im Initialzustand q 0 schreibt M eine 1 und geht zum Zustand q 1, in dem die folgende Wahl getroffen wird: entweder wird der Haltezustand q F erreicht, oder es wird ein neues Symbol 0, 1 geschrieben und (unter Verwendung eines Hilfezustandes q 2 ) der Kopf nach rechts bewegt. Formal: M = ({q 0, q 1, q 2, q F }, {0, 1}, δ, q 0, q F ) wobei δ durch die folgenden Übergangsregeln beschrieben wird: (q 0, #) (q 0, 1) (q 0, 1) (q 1, R) (q 1, #) (q 2, 0) Beispiel: (q 1, #) (q 2, 1) (q 1, #) (q F, #) (q 2, i) (q 1, R) für i = 0, 1.

20 94 KAPITEL 3. TURINGMASCHINEN sectdeftmakzeptiertw deftmakzeptiertw sectbspaltdreivierzwei bspaltdreivierzwei q q q q q q q q F Konfigurationen und die Berechnung von Eingaben sind genauso definiert wie für die (deterministischen) TM. Hier hat eine Eingabe natürlich nicht nur eine, sondern mehrere Berechnungen. Definition. Eine nichtdeterministische Turingmaschine M akzeptiert die Eingabe w Σ, falls es für w mindestens eine Berechnung gibt, so dass M nach endlich vielen Schritten eine Haltekonfiguration mit dem finalen Zustand erreicht. Die Sprache aller Eingaben, die M akzeptiert, wird mit L(M) bezeichnet. Bemerkung 1. Die k-band-tm lassen sich analog zu den nichtdeterministischen k-band-tm verallgemeinern: hier ist δ eine Relation δ [Q Σ k ] [Q (Σ {L,R}) k ]. Beispiel 2. Test der Zerlegbarkeit. Wir zeigen eine nichtdeterministische 3-Band-TM, die die Sprache L { } aller zerlegbarer Zahlen, also Zahlen der Form n = pq mit p > 1 und q > 1 akzeptiert. Wie in Beispiel 4 in Abschnitt hat M ein Eingabeband, ein Testzahlband und ein Hilfsband. Im Initialzustand schreibt M die Zahl zwei ( ) auf Band 2 (jede Testzahl ist größer oder gleich ) und verändert den Zustand zu q 1. In q 1, dem einzigen nichtdeterministischen Zustand, gibt es zwei Möglichkeiten: entweder wird ein neuer Strich auf Band 2 geschrieben, und der Zustand q 1 bleibt, oder der Zustand verändert sich zu q 2. Im Zustand q 2 wird wie folgt deterministisch berechnet:

21 3.3. NICHTDETERMINISTISCHE TURINGMASCHINEN Die Zahl n auf Band 1 wird mit der Zahl m auf Band 2 verglichen. Falls n m ist, hält die Maschine, ohne zu akzeptieren. 2. Falls n > m, wird n auf Band 3 kopiert. 3. Band 2 wird von Band 3 abgezogen, bis auf Band 3 der Rest der Division von n durch die Testzahl steht. Dann hält die Maschine. 4. Falls Band 3 leer ist, wird die Eingabe akzeptiert, falls Band 3 nicht leer ist, wird sie nicht akzeptiert. ectbspaltdreivierdrei bspaltdreivierdrei Wir sehen, dass die Testzahl m eine beliebige Zahl m = 2, 3, 4,... sein kann. Die Eingabe n wird genau dann akzeptiert, wenn es ein m < n gibt, das n teilt. Beispiel 3. Simulation eines Kellerautomaten Wir können einfach jeden Kellerautomaten durch eine nichtdeterministische 2- Band-Turingmaschine M simulieren, bei der auf Band 1 die Eingabe des Kellerautomaten und auf Band 2 der Kellerinhalt steht. M hat ein zusätzliches Gedächtnis, in dem die Übergangsregeln des Kellerautomaten notiert werden. Am Anfang schreibt die NTM das Symbol k 0 auf Band 2. Jede Übergangsregel (q, s, k) (q, k 1... k n ), s Σ, des Kellerautomaten wird wie folgt simuliert: Band 1... s s... s Übergang... s s... s Band 2... k k k... k 1... k n k k... Falls die Maschine M im Zustand q die Symbole s (Band 1) und k (Band 2) liest, ändert sie ihren Zustand zu q, bewegt den Kopf 1 einen Schritt nach rechts und macht folgendes auf Band 2: 1. Falls n 0 (also k 1... k n ε), wird k von k n überschrieben, und der Kopf 2 schreibt, sich nach links bewegend, die Symbole k n 1,..., k Falls n = 0, löscht Kopf 2 das Symbol k und bewegt sich einen Schritt nach rechts. zsimulationntmdurchtm zsimulationntmdurchtm Analog wird jede spontane Übergangsregel (q, #, k) (q, k 1... k n ) simuliert: der einzige Unterschied ist, dass hierbei Kopf 1 stehenbleibt. Satz 1. Jede NTM kann durch eine (deterministische) TM simuliert werden. Beweis. Sei M eine NTM, und sei r eine Zahl, so dass es für jedes Paar (q, s) aus Q (Σ {#}) höchstens r Übergänge (q, s) (q, s ) gibt. Dann können wir die Übergänge durchnummerieren: (q, s) (q i, s i) für i = 1, 2,..., r (Wiederholungen sind erlaubt). Die einzige Ausnahme ist δ(q, s) = (Haltekonfiguration). Wir simulieren M mit einer 4-Band-TM wie folgt: Band 1 ist das Eingabeband mit einem read-only Kopf. Auf Band 2 werden systematisch alle Zahlen k = 0, 1, 2, 3,...

22 96 KAPITEL 3. TURINGMASCHINEN geschrieben, sie geben die Länge der Berechnung vor. Auf Band 3 werden systematisch alle k-tupel aus Zahlen 1,..., r erzeugt (k = 1, 2, 3,... ). Auf Band 4 werden für jeden Eintrag i 1 i 2... i k von Band 3 die ersten k Takte der Maschine M simuliert, aber in jedem Takt wählen wir den Übergang, dessen Index auf Band 2 steht. Also wird im Takt n der Übergang (q, s) (q i n, s i n ) gewählt, wobei q der momentane Zustand ist und s das gerade gelesene Symbol. In einer Haltekonfiguration von M mit q = q F hält M und akzeptiert die Eingabe, andernfalls, also auch bei Haltekonfigurationen mit q /= q F wird k erhöht und die Simulation fortgesetzt. Es gibt also die folgenden Möglichkeiten für die Berechnung einer Eingabe w: 1. M hält auf w nach k Schritten für irgendeine Zahl k und akzeptiert w, d.h., es gibt eine akzeptierende Berechnung der Länge k von w. Dann hält auch M auf w und akzeptiert w (mit einem der r k möglichen Inhalte von Band 3); 2. M akzeptiert w nicht, d.h., alle von M bei Eingabe w erreichbaren Haltekonfigurationen haben einen von q F verschienedenen Zustand. Dann hält M nie, denn M schreibt immer länger werdende k-tupel (k = 1, 2, 3,... ) auf Band 2. Damit gehört w weder zu L(M) noch zu L(M). Es folgt, dass L(M) = L(M). sectentscheidrek defrekursivesprache sectbspaltdreidreieins bspaltdreidreieins 3.4 Rekursiv aufzählbare Sprachen Definition. Eine Sprache L heißt rekursiv aufzählbar oder semientscheidbar, falls es eine Turingmaschine M gibt, die L akzeptiert. Beispiel 1. Die folgenden Sprachen sind rekursiv aufzählbar, denn die oben konstruierten TM akzeptieren sie: 1. Die Sprache aller durch 5 teilbaren Zahlen (siehe Beispiel 1 in Abschnitt 3.1). 2. Die Sprache aller Primzahlen (siehe Beispiel 4 in Abschnitt 3.2.4). 3. Die Sprache {a n b n c n ; n 1} (siehe Beispiel 5 in Abschnitt und Satz 1 in Abschnitt 3.2.5). sectbspaltdreidreizwei bspaltdreidreizwei 4. Jede kontextfreie Sprache (siehe Beispiel 3 in Abschnitt 3.3). Beispiel 2. Eine Sprache L code, die nicht rekursiv aufzählbar ist. Es ist nicht möglich, ein natürliches Beispiel einer nicht rekursiv aufzählbaren Sprache zu finden, da alle natürlichen Beispiele durch irgendeinen Algorithmus beschrieben werden. Aber vorausgesetzt, dass wir eine Codierung für alle TM mit dem Bandalphabet {0, 1} haben (eine solche Codierung wird in Kapitel 5.1 ausführlich beschrieben), können wir eine konkrete Sprache, die nicht rekursiv aufzählbar ist, konstruieren. Wir nehmen also an, dass es für jede Turingmaschine M mit Bandalphabet {0, 1} ein Wort c(m) über {0, 1} gibt, sodass der Code c(m) die Sprache der Turingmaschine M vollständig beschreibt. Das heißt, dass für alle Turingmaschinen M und M gilt: c(m) = c(m ) L(M) = L(M ). Mit L code bezeichnen wir die Sprache aller Codewörter w = c(m) solcher Turingmaschinen M, die ihr eigenes Codewort nicht akzeptieren: L code = {w; w = c(m) für eine Turingmaschine M mit w L(M)}. Diese Sprache ist nicht rekursiv aufzählbar.

23 3.5. REKURSIVE SPRACHEN 97 tsatzllstrichrekursiv satzllstrichrekursiv Beweis. Die Annahme, dass es eine Turingmaschine ˆM mit L( ˆM) = L code gibt, führt zu einem Widerspruch. Für das Codewort ŵ = c( ˆM) dieser Maschine ˆM zeigen wir nämlich, dass (a) aus ŵ L code folgt ŵ L code und (b) aus ŵ L code folgt ŵ L code. Dann ist weder ŵ L code noch ŵ L code wahr. Zu (a): Da ŵ L( ˆM) und ŵ = c( ˆM), folgt aus der Definition von L code, dass ŵ L code. Zu (b): Da ŵ L code, gibt es M mit ŵ = c(m) und ŵ L(M). Aus c(m) = c( ˆM) folgt aber L(M) = L( ˆM); es gilt also ŵ L( ˆM) = L code. Satz 1. Falls L und L rekursiv aufzählbaren Sprachen sind, sind auch die Sprachen L L, L L, LL und L rekursiv aufzählbar. Beweis. Sei M eine TM, die L akzeptiert, und M eine TM, die L akzeptiert. Wir nehmen an, dass M und M auf jede Eingabe halten. (1) L + L. Diese Sprache wird von einer 2-Band TM akzeptiert, die auf Band 1 die Maschine M und gleichzeitig auf Band 2 die Maschine M simuliert. Falls beide Maschinen halten, ist der Zustand der neuen Maschine genau dann final, wenn einer der entsprechenden Zustände (von M oder M ) final ist. (2) L L. Der Beweis ist analog zu 1., nur ist ein Zustand genau dann final, wenn beide Zustände (von M sowie von M ) final sind. 3.5 Rekursive Sprachen Wie oben erwähnt, repräsentiert eine TM eine formale Darstellung des Begriffs eines Algorithmus, indem sie eine beliebige Eingabe berechnet (und entweder akzeptiert oder nicht). Die Frage ist, ob wir nur terminierende Algorithmen betrachten dürfen, oder ob wir auch Algorithmen erlauben, die unendlich lange berechnen. Im Berechnungsmodell der TM entsprechen den terminierenden Algorithmen die TM, die auf jede Eingabe halten. Das bedeutet, dass das Nichtakzeptieren immer dadurch erfolgt, dass die TM in einem nichtfinalen Zustand hält. Die allgemeineren, nicht terminierenden Algorithmen werden von allgemeinen TM repräsentiert. Probleme, die ein terminierender Algorithmus löst, heißen entscheidbar. Die entsprechenden formalen Sprachen werden entweder entscheidbar oder rekursiv genannt. Definition. Eine Sprache heißt rekursiv oder entscheidbar wenn sie von einer TM, die auf jede Eingabe hält, akzeptiert wird. Beispiel 1. Alle bisher konstruierten TM halten auf jede Eingabe. Deswegen sind alle obere rekursiv aufzählbaren Sprachen eigentlich rekursiv. Bemerkung 1. Um ein Beispiel einer Sprache, die zwar rekursiv aufzählbar aber nicht rekursiv zeigen zu können, werden wir erst die Eigenschaften von rekursiven Sprachen erforschen. Merken Sie, dass in Satz 1 von Abschnitt 3.4 (über Eigenschaften von rekursiv aufzählbaren Sprachen) nichts über Komplement L = Σ L behauptet wurde? Dies ist ein entscheidender Unterschied zu rekursiven Sprachen.: Satz 1. Wenn L und L rekursive Sprachen im Alphabet Σ sind, sind auch die Sprachen L L, L L, LL, L und L = Σ L rekursiv.

24 98 KAPITEL 3. TURINGMASCHINEN Beweis. (1) L L und L L : der Beweis ist gleich zu dem im Satz 1 von Abschnitt 3.4. (2) LL. Hier benutzen wir eine 4-Band-Turingmaschine M. Band 1 ist ein Eingabeband mit einem read-only-kopf. Auf Band 2 steht die Zahl i der Etappe (am Anfang i = 0). Auf Band 3 wird M simuliert, und auf Band 4 wird M simuliert. Jede Eingabe s 1... s n der Länge n wird in n + 1 Etappen berechnet. Die i-te Etappe besteht daraus, dass das Wort s 1... s i auf Band 3 und das Wort s i+1... s n auf Band 4 kopiert werden, und dann simuliert unsere TM die Maschine M auf Band 2 und die Maschine M auf Band 3, bis beide Maschinen M und M halten. Falls sie beide akzeptieren, hält auch M und akzeptiert. Falls M oder M nicht akzeptiert und i < n, wird die nächste Etappe mit i = i+1 durchgeführt. Falls M oder M nicht akzeptiert und i = n, hält M und akzeptiert nicht. (3) L. Dieser Beweis ist analog zu 3. Zunächst prüft M, ob das Eingabeband leer ist und akzeptiert gegebenenfalls. Ansonsten erzeugen wir auf Band 2, statt nur einer Zahl i allein, alle möglichen aufsteigenden Listen (i 0, i 1,..., i r ) von Zahlen mit 0 = i 0 < i 1 < i 2 < < i r = n wobei r = 1,..., n. Band 3 simuliert M: wir kopieren erst s 1 s 2... s i1 auf Band 3 und, falls die Simulation in einem finalen Zustand von M hält, s i1+1s i s i2 auf Band 3 und, falls die Simulation wieder in einem finalen Zustand hält, s i s i3 auf Band 3 usw. Falls alle Simulationen in finalen Zuständen von M halten, wird die Eingabe von M akzeptiert. Falls irgendeine der Simulationen in einem nichtfinalen Zustand hält, beginnt eine neue Etappe (mit der nächsten Liste auf Band 2). Wenn alle Listen auf Band 2 durchgegangen worden sind, ohne dass bis dahin M akzeptiert hat, hält M in einem nichtfinalen Zustand. (4) L: Gegeben sei eine TM, M, die L akzeptiert, bezeichnen wir durch M dieselbe TM, nur alle Zustände außer q F sind final und q F ist nicht-final. Wenn M ein Wort nicht akzeptiert, dann akzeptiert es M: hier ist wichtig, dass M auf die Eingabe hält! Dann hält sie in einem Zustand q q F der in M final ist. Es gibt also L( M) = Σ L(M). Bemerkung 2. Es ist erstaunlich, dass die Implikation L rekursiv L rekursiv die folgende Umkehrung hat: Satz 2. Wenn eine rekursiv aufzählbare Sprache L Σ auch rekursiv das aufzählbare Komplement L = Σ L besitzt, dann ist L rekursiv. Beweis. Gegeben sind TM M für die Sprache L und M für die Sprache L Wir konstruieren eine TM, M 1, die L akzeptiert und auf jede Eingabe hält: M 1 ist eine 2-Band TM, die auf Band 1 die Maschine M und auf Band 2 die Maschine M simuliert. Die Maschine M 1 rechnet so lange, bis auf Band 1 oder Band 2 die Berechnung hält. Wenn das passiert, dann (a) M 1 akzeptiert genau wenn M auf Band 1 akzeptiert (falls M hält) und

25 3.5. REKURSIVE SPRACHEN 99 (b) M 1 akzeptiert genau wenn M auf Band 2 nicht akzeptiert (falls M hält). Die einzige Frage ist: hält M 1 auf jede Eingabe w 2? Ja! Wenn w L, hält die Maschine M. Und wenn w L(= L( M)), dann hält die Maschine M. Bemerkung 3. Jede rekursive Sprache ist selbstverständlich rekursiv aufzählbar, und jede kontextfreie Sprache ist rekursiv, wie sofort bewiesen wird. REGULÄR KONTEXTFREI REKURSIV REKURSIV AUFZÄHLBAR ALLE SPRACHEN Beispiel 5 in Abschnitt zeigt, dass die Sprache L = {a n b n c n ; n 1} rekursiv (aber nicht kontextfrei) ist. Ein Beispiel einer Sprache, die rekursiv aufzählbar aber nicht rekursiv ist, wird in Kapitel 5 vorgeführt. Dort zeigen wir, dass ein solches Beispiel die Sprache L halt aller Wörter c(m)w ist, wobei M eine Turingmaschine und w ein Eingabewort ist, auf das die Turingmaschine M hält. (Das bedeutet, dass das Halteproblem nicht entscheidbar ist.)

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

1 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 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 15 Ziele vgl. AFS: Berechnungsmodelle für Typ-0- und Typ-1-Sprachen (Nicht-)Abschlußeigenschaften

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

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen. Turing-Maschinen Nachdem wir endliche Automaten und (die mächtigeren) Kellerautomaten kennengelernt haben, werden wir nun ein letztes, noch mächtigeres Automatenmodell kennenlernen: Die Turing-Maschine

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

8. Turingmaschinen und kontextsensitive Sprachen

8. Turingmaschinen und kontextsensitive Sprachen 8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten

Mehr

THEORETISCHE INFORMATIK

THEORETISCHE INFORMATIK THEORETISCHE INFORMATIK Vorlesungsskript Jiří Adámek Institut für Theoretische Informatik Technische Universität Braunschweig Januar 2014 Inhaltsverzeichnis 1 Endliche Automaten 1 1.1 Mathematische Grundbegriffe.......................

Mehr

Theoretische Informatik 2

Theoretische Informatik 2 Theoretische Informatik 2 Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2009/10 Die Chomsky-Hierarchie Definition Sei G = (V, Σ, P, S) eine Grammatik. 1 G heißt vom Typ 3 oder

Mehr

Einführung in Berechenbarkeit, Komplexität und formale Sprachen

Einführung in Berechenbarkeit, Komplexität und formale Sprachen Johannes Blömer Skript zur Vorlesung Einführung in Berechenbarkeit, Komplexität und formale Sprachen Universität Paderborn Wintersemester 2011/12 Inhaltsverzeichnis 1 Einleitung 2 1.1 Ziele der Vorlesung...................................

Mehr

Sprachen und Automaten. Tino Hempel

Sprachen und Automaten. Tino Hempel Sprachen und Automaten 11 Tino Hempel Bisherige Automaten Automat mit Ausgabe/Mealy-Automat Akzeptor, Sprache eines Akzeptors Grenze: L = {a n b n } Kellerautomat erkennt L = {a n b n } Grenze:? T. Hempel

Mehr

Theoretische Informatik Testvorbereitung Moritz Resl

Theoretische Informatik Testvorbereitung Moritz Resl Theoretische Informatik Testvorbereitung Moritz Resl Bestandteile einer Programmiersprache: a) Syntax (Form): durch kontextfreie Grammatik beschrieben b) Semantik (Bedeutung) 1.) Kontextfreie Sprachen

Mehr

Lösungen zur 3. Projektaufgabe TheGI1

Lösungen zur 3. Projektaufgabe TheGI1 Marco Kunze (makunze@cs.tu-berlin.de) WS 2001/2002 Sebastian Nowozin (nowozin@cs.tu-berlin.de) 21. 1. 2002 Lösungen zur 3. Projektaufgabe TheGI1 Definition: Turing-Aufzähler Ein Turing-Aufzähler einer

Mehr

2.4 Kontextsensitive und Typ 0-Sprachen

2.4 Kontextsensitive und Typ 0-Sprachen Definition 2.43 Eine Typ 1 Grammatik ist in Kuroda Normalform, falls alle Regeln eine der folgenden 4 Formen haben: Dabei: A, B, C, D V und a Σ. Satz 2.44 A a, A B, A BC, AB CD. Für jede Typ 1 Grammatik

Mehr

GTI. Hannes Diener. 6. Juni - 13. Juni. ENC B-0123, diener@math.uni-siegen.de

GTI. Hannes Diener. 6. Juni - 13. Juni. ENC B-0123, diener@math.uni-siegen.de GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 6. Juni - 13. Juni 1 / 49 Die Turingmaschine war das erste (bzw. zweite) formale Modell der Berechenbarkeit. Sie wurden bereits 1936 (also lange

Mehr

a n b n c n ist kontextsensitiv kontextfreie Sprachen (Typ 2) Abschnitt 3.3 kontextfreie Sprachen: Abschlusseigenschaften Chomsky NF und binäre Bäume

a n b n c n ist kontextsensitiv kontextfreie Sprachen (Typ 2) Abschnitt 3.3 kontextfreie Sprachen: Abschlusseigenschaften Chomsky NF und binäre Bäume Kap 3: Grammatiken Chomsky-Hierarchie 32 Kap 3: Grammatiken Kontextfreie 33 a n b n c n ist kontextsensiti Beispiel 3111 modifizieren: Σ = {a, b, c G = (Σ, V, P, X ) V = {X, Y, Z P : X ε X axyz ZY YZ ay

Mehr

Ausgewählte unentscheidbare Sprachen

Ausgewählte unentscheidbare Sprachen Proseminar Theoretische Informatik 15.12.15 Ausgewählte unentscheidbare Sprachen Marian Sigler, Jakob Köhler Wolfgang Mulzer 1 Entscheidbarkeit und Semi-Entscheidbarkeit Definition 1: L ist entscheidbar

Mehr

Berechenbarkeit und Komplexität

Berechenbarkeit und Komplexität Berechenbarkeit und Komplexität Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2010/11 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien und Übungsblätter

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Turing-Maschine, Berechenbarkeit INSTITUT FÜR THEORETISCHE 0 KIT 07.11.2011 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen

Mehr

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S Formale Grundlagen (WIN) Franz Binder Institut für Algebra Johannes Kepler Universität Linz Vorlesung im 2008S http://www.algebra.uni-linz.ac.at/students/win/fg Inhalt Das Alphabet Σ sei eine endliche

Mehr

Formale Sprachen. Spezialgebiet für Komplexe Systeme. Yimin Ge. 5ahdvn. 1 Grundlagen 1. 2 Formale Grammatiken 4. 3 Endliche Automaten 5.

Formale Sprachen. Spezialgebiet für Komplexe Systeme. Yimin Ge. 5ahdvn. 1 Grundlagen 1. 2 Formale Grammatiken 4. 3 Endliche Automaten 5. Formale Sprachen Spezialgebiet für Komplexe Systeme Yimin Ge 5ahdvn Inhaltsverzeichnis 1 Grundlagen 1 2 Formale Grammatien 4 Endliche Automaten 5 4 Reguläre Sprachen 9 5 Anwendungen bei Abzählproblemen

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Formale Sprachen und Automaten Kapitel 1: Grundlagen Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Ziel Einführung der wichtigsten

Mehr

Probeklausur zur Vorlesung Berechenbarkeit und Komplexität

Probeklausur zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Probeklausur 25.01.2013 Probeklausur zur Vorlesung Berechenbarkeit und Komplexität Aufgabe 1 (1+2+6+3 Punkte)

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

Zusammenfassung Grundzüge der Informatik 4

Zusammenfassung Grundzüge der Informatik 4 Zusammenfassung Grundzüge der Informatik 4 Sommersemester 04 Thorsten Wink 21. September 2004 Version 1.2 Dieses Dokument wurde in L A TEX 2εgeschrieben. Stand: 21. September 2004 Inhaltsverzeichnis 1

Mehr

Vorlesung Theoretische Informatik

Vorlesung Theoretische Informatik Vorlesung Theoretische Informatik Automaten und Formale Sprachen Hochschule Reutlingen Fakultät für Informatik Masterstudiengang Wirtschaftsinformatik überarbeitet von F. Laux (Stand: 09.06.2010) Sommersemester

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

1 Varianten von Turingmaschinen

1 Varianten von Turingmaschinen 1 Varianten von Turingmaschinen Es gibt weitere Definitionen für Turingmaschinen. Diese haben sich aber alle als äquivalent herausgestellt. Ein wiederkehrendes Element der Vorlesung: Äquivalenz von Formalismen

Mehr

Endliche Sprachen. Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für

Endliche Sprachen. Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für Endliche Sprachen Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für L. 447 Zusammenfassung Beschreibungsformen für reguläre Sprachen:

Mehr

Teil V. Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie

Teil V. Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie Teil V Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie Zwei Sorten von Grammatiken Kontextsensitive Grammatik (CSG) (Σ, V, P, S), Regeln der Form αaβ αγβ α, β (Σ V ),

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Speicherplatz-Komplexität 1 / 30

Speicherplatz-Komplexität 1 / 30 Speicherplatz-Komplexität 1 / 30 Speicherplatz-Komplexität Warum sollte uns die Ressource Speicherplatz interessieren? Um die Komplexität der Berechnung von Gewinnstrategien für viele nicht-triviale 2-Personen

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

Formale Sprachen und Automaten

Formale Sprachen und Automaten Formale Sprachen und Automaten Kapitel 5: Typ 1 und Typ 0 Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Kapitel 5 Typ 1

Mehr

1 Zahlentheorie. 1.1 Kongruenzen

1 Zahlentheorie. 1.1 Kongruenzen 3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern

Mehr

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

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls 4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,

Mehr

7 Endliche Automaten. Reimund Albers Papierfalten Kapitel 7 Endliche Automaten 103

7 Endliche Automaten. Reimund Albers Papierfalten Kapitel 7 Endliche Automaten 103 Reimund Albers Papierfalten Kapitel 7 Endliche Automaten 103 7 Endliche Automaten Ein erstes Beispiel Ganz im Sinn der vorangegangenen Kapitel machen wir wieder Anleihen in einem wohl etablierten Gebiet.

Mehr

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Kapitel 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

Mehr

Wie viel Mathematik kann ein Computer?

Wie viel Mathematik kann ein Computer? Wie viel Mathematik kann ein Computer? Die Grenzen der Berechenbarkeit Dr. Daniel Borchmann 2015-02-05 Wie viel Mathematik kann ein Computer? 2015-02-05 1 / 1 Mathematik und Computer Computer sind schon

Mehr

3. Turingmaschinen FORMALISIERUNG VON ALGORITHMEN. Turingmaschinen Registermaschinen Rekursive Funktionen UNTERSCHEIDUNGSMERKMALE DER ANSÄTZE:

3. Turingmaschinen FORMALISIERUNG VON ALGORITHMEN. Turingmaschinen Registermaschinen Rekursive Funktionen UNTERSCHEIDUNGSMERKMALE DER ANSÄTZE: FORMALISIERUNG VON ALGORITHMEN Wegen der beobachteten Zusammenhänge zwischen Berechnungs-, Entscheidungs- und Aufzählungsverfahren genügt es Berechnungsverfahren zu formalisieren. Weiter genügt es Verfahren

Mehr

Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften

Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften Endlichkeitstest Eingabe: DFA/NFA M. Frage: Ist die von M akzeptierte Sprache endlich? Nahe liegende Beobachtung: In einem DFA/NFA, der eine unendliche Sprache akzeptiert, muss es einen Kreis geben, der

Mehr

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle

Mehr

b) Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel

b) Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel 2. Turingmaschinen Zur Formalisierung von Algorithmen benutzen wir hier Turingmaschinen. Von den vielen Varianten dieses Konzeptes, die sich in der Literatur finden, greifen wir das Konzept der on-line

Mehr

Wortproblem für kontextfreie Grammatiken

Wortproblem für kontextfreie Grammatiken Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?

Mehr

Erzeugende Funktionen

Erzeugende Funktionen Hallo! Erzeugende Funktionen sind ein Mittel um lineare Rekursionen schneller ausrechnen zu können. Es soll die Funktion nicht mehr als Rekursion angeschrieben werden, sondern so, dass man nur n einsetzen

Mehr

Nichtdeterministische Platzklassen

Nichtdeterministische Platzklassen Sommerakademie 2010 Rot an der Rot AG 1: Wieviel Platz brauchen Algorithmen wirklich? Nichtdeterministische Platzklassen Ulf Kulau August 23, 2010 1 Contents 1 Einführung 3 2 Nichtdeterminismus allgemein

Mehr

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung Frank Heitmann heitmann@informatik.uni-hamburg.de 13. Mai 2014 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/17 Überblick Wir hatten

Mehr

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie Stefan Schmid TU Berlin & T-Labs, Berlin, Germany Reduktionen in der Berechenbarkeitstheorie Problem: Wie komme ich von hier zum Hamburger Hbf? 2 Beispiel P1 Wie komme ich von hier zum Hamburger Hbf? kann

Mehr

Sprachen/Grammatiken eine Wiederholung

Sprachen/Grammatiken eine Wiederholung Sprachen/Grammatiken eine Wiederholung Was sind reguläre Sprachen? Eigenschaften regulärer Sprachen Sprachen Begriffe Symbol: unzerlegbare Grundzeichen Alphabet: endliche Menge von Symbolen Zeichenreihe:

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit

Mehr

Referat rekursive Mengen vs. rekursiv-aufzählbare Mengen

Referat rekursive Mengen vs. rekursiv-aufzählbare Mengen Kapitel 1: rekursive Mengen 1 rekursive Mengen 1.1 Definition 1.1.1 informal Eine Menge heißt rekursiv oder entscheidbar, wenn ihre charakteristische Funktion berechenbar ist. 1.1.2 formal Eine Menge A

Mehr

Lösungsvorschläge Blatt Z1

Lösungsvorschläge Blatt Z1 Theoretische Informatik Departement Informatik Prof. Dr. Juraj Hromkovič http://www.ita.inf.ethz.ch/theoinf16 Lösungsvorschläge Blatt Z1 Zürich, 2. Dezember 2016 Lösung zu Aufgabe Z1 Wir zeigen L qi /

Mehr

Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN

Ü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

Mehr

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

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

liefern eine nicht maschinenbasierte Charakterisierung der regulären

liefern eine nicht maschinenbasierte Charakterisierung der regulären Reguläre Ausdrücke 1 Ziel: L=L M für NFA M L=L(r) für einen regulären Ausdruck r Reguläre Ausdrücke über einem Alphabet Σ Slide 1 liefern eine nicht maschinenbasierte Charakterisierung der regulären Sprachen

Mehr

FORMALE SYSTEME. Sprachen beschreiben. Wiederholung. Wie kann man Sprachen beschreiben? 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie

FORMALE SYSTEME. Sprachen beschreiben. Wiederholung. Wie kann man Sprachen beschreiben? 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie Wiederholung FORMALE SYSTEME 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie Markus Krötzsch Formale Sprachen sind in Praxis und Theorie sehr wichtig Ein Alphabet ist eine nichtleere, endliche Menge

Mehr

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

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1 Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 1 Wir betrachten die folgende Signatur

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

Theoretische Informatik

Theoretische Informatik Theoretische Informatik - das Quiz zur Vorlesung Teil I - Grundzüge der Logik In der Logik geht es um... (A) die Formen korrekten Folgerns (B) die Unterscheidung von wahr und falsch (C) das Finden von

Mehr

2. Berechnungsmächtigkeit von Zellularautomaten. Ziele Simulation von Schaltwerken Simulation von Turingmaschinen

2. Berechnungsmächtigkeit von Zellularautomaten. Ziele Simulation von Schaltwerken Simulation von Turingmaschinen 2. Berechnungsmächtigkeit von Zellularautomaten Ziele Simulation von Schaltwerken Simulation von Turingmaschinen Beispiel WIREWORLD Elektronen laufen über Drähte von einem Gatter zum nächsten 2.3 Satz

Mehr

Eigenschaften regulärer Sprachen

Eigenschaften regulärer Sprachen = {} {0} {0} {} = {0} {} Für L(A) benötigen wir gemäß Gleichung.3 die Mengen R 3 und R3 3. R 3 = R R3 (R33) R3 = {0} {00} {0} {} ({ε} {0, } {0} {}) {0, } {00} = {0} {00} {0} {} ({0, } {0} {}) {0, } {00}

Mehr

2 Mengen und Abbildungen

2 Mengen und Abbildungen 2.1 Mengen Unter einer Menge verstehen wir eine Zusammenfassung von Objekten zu einem Ganzen. Die Objekte heiÿen Elemente. Ist M eine Menge und x ein Element von M so schreiben wir x M. Wir sagen auch:

Mehr

Automaten und Formale Sprachen

Automaten und Formale Sprachen Automaten und Formale Sprachen Prof. Dr. Dietrich Kuske FG Theoretische Informatik, TU Ilmenau Wintersemester 2011/12 WS 11/12 1 Organisatorisches zur Vorlesung Informationen, aktuelle Version der Folien

Mehr

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ. Reguläre Ausdrücke Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (i) ist ein regulärer Ausdruck über Σ. (ii) ε ist ein regulärer Ausdruck über Σ. (iii) Für jedes a Σ ist a ein regulärer

Mehr

Übung Theoretische Grundlagen

Übung Theoretische Grundlagen Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory

Mehr

abgeschlossen unter,,,, R,

abgeschlossen unter,,,, R, Was bisher geschah Turing-Maschinen können Sprachen L X akzeptieren entscheiden Funktionen berechnen f : X X (partiell) Menge aller Turing-akzeptierbaren Sprachen genau die Menge aller Chomsky-Typ-0-Sprachen

Mehr

Theoretische Informatik 2

Theoretische Informatik 2 Theoretische Informatik 2 Jürgen Koslowski Institut für Theoretische Informatik Technische Universität Braunschweig SS 2015 http://www.iti.cs.tu-bs.de/ koslowj/theo2 Jürgen Koslowski (TU-BS) Theoretische

Mehr

Zahlen und metrische Räume

Zahlen und metrische Räume Zahlen und metrische Räume Natürliche Zahlen : Die natürlichen Zahlen sind die grundlegendste Zahlenmenge, da man diese Menge für das einfache Zählen verwendet. N = {1, 2, 3, 4,...} Ganze Zahlen : Aus

Mehr

äußere Klammern können entfallen, ebenso solche, die wegen Assoziativität von + und Konkatenation nicht notwendig sind:

äußere Klammern können entfallen, ebenso solche, die wegen Assoziativität von + und Konkatenation nicht notwendig sind: 3. Reguläre Sprachen Bisher wurden Automaten behandelt und Äquivalenzen zwischen den verschiedenen Automaten gezeigt. DEAs erkennen formale Sprachen. Gibt es formale Sprachen, die nicht erkannt werden?

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Mathematische Grundbegriffe Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr,

Mehr

3 Vom Zählen zur Induktion

3 Vom Zählen zur Induktion 7 3 Vom Zählen zur Induktion 3.1 Natürliche Zahlen und Induktions-Prinzip Seit unserer Kindheit kennen wir die Zahlen 1,, 3, 4, usw. Diese Zahlen gebrauchen wir zum Zählen, und sie sind uns so vertraut,

Mehr

Mengenlehre gibt es seit den achtziger Jahren des 19. Jahrhunderts. Sie wurde von

Mengenlehre gibt es seit den achtziger Jahren des 19. Jahrhunderts. Sie wurde von Grundbegriffe der Mengenlehre 2 Mengenlehre gibt es seit den achtziger Jahren des 19. Jahrhunderts. Sie wurde von Georg Cantor begründet. Der Begriffsapparat der Mengenlehre hat sich als so nützlich für

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken

Mehr

Mengen und Abbildungen

Mengen und Abbildungen Mengen und Abbildungen Der Mengenbegriff Durchschnitt, Vereinigung, Differenzmenge Kartesisches Produkt Abbildungen Prinzip der kleinsten natürlichen Zahl Vollständige Induktion Mengen und Abbildungen

Mehr

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2 Satz von Kleene (Stephen C. Kleene, 1909-1994) Jede Sprache, die von einem deterministischen endlichen Automaten akzeptiert wird ist regulär und jede reguläre Sprache wird von einem deterministischen endlichen

Mehr

Basistext Lineare Gleichungssysteme. Eine lineare Gleichung mit einer Unbekannten hat die allgemeine Form! #=%

Basistext Lineare Gleichungssysteme. Eine lineare Gleichung mit einer Unbekannten hat die allgemeine Form! #=% Basistext Lineare Gleichungssysteme Eine lineare Gleichung mit einer Unbekannten hat die allgemeine Form! #=% Mit zwei Unbekannten gibt es die allgemeine Form:! #+% '=( Gelten mehrere dieser Gleichungen

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

7. Formale Sprachen und Grammatiken

7. Formale Sprachen und Grammatiken 7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Tutorium 1-12. Sitzung Dennis Felsing dennis.felsing@student.kit.edu http://www.stud.uni-karlsruhe.de/~ubcqr/2010w/tut gbi/ 2011-01-24 Überblick 1 Reguläre Ausdrücke Wiederholung

Mehr

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Theoretische Informatik für Wirtschaftsinformatik und Lehramt Theoretische Informatik für Wirtschaftsinformatik und Lehramt Reguläre Sprachen Priv.-Doz. Dr. Stefan Milius stefan.milius@fau.de Theoretische Informatik Friedrich-Alexander Universität Erlangen-Nürnberg

Mehr

Komplexität und Komplexitätsklassen

Komplexität und Komplexitätsklassen Dr. Sebastian Bab WiSe 12/13 Theoretische Grundlagen der Informatik für TI Termin: VL 21 vom 21.01.2013 Komplexität und Komplexitätsklassen Die meisten Probleme mit denen wir zu tun haben sind entscheidbar.

Mehr

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

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014 Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Ulrich Furbach Institut für Informatik Sommersemester 2014 Furbach Grundlagen d. Theoretischen Informatik:

Mehr

Kapitel 3. Natürliche Zahlen und vollständige Induktion

Kapitel 3. Natürliche Zahlen und vollständige Induktion Kapitel 3 Natürliche Zahlen und vollständige Induktion In Kapitel 1 haben wir den direkten Beweis, den modus ponens, kennen gelernt, der durch die Tautologie ( A (A = B) ) = B gegeben ist Dabei war B eine

Mehr

6 Kontextfreie Grammatiken

6 Kontextfreie Grammatiken 6 Kontextfreie Grammatiken Reguläre Grammatiken und damit auch reguläre Ausdrücke bzw. endliche Automaten haben bezüglich ihres Sprachumfangs Grenzen. Diese Grenzen resultieren aus den inschränkungen,

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 4: Nichtdeterminismus Teil 2 schulz@eprover.org Software Systems Engineering Nichtdeterministische endliche Automaten Definition: Ein nichtdeterministischer

Mehr

(Man sagt dafür auch, dass die Teilmenge U bezüglich der Gruppenoperationen abgeschlossen sein muss.)

(Man sagt dafür auch, dass die Teilmenge U bezüglich der Gruppenoperationen abgeschlossen sein muss.) 3. Untergruppen 19 3. Untergruppen Nachdem wir nun einige grundlegende Gruppen kennengelernt haben, wollen wir in diesem Kapitel eine einfache Möglichkeit untersuchen, mit der man aus bereits bekannten

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik für die Studiengänge Ingenieur-Informatik berufsbegleitendes Studium Lehramt Informatik (Sekundar- und Berufsschule) http://theo.cs.uni-magdeburg.de/lehre04s/ Lehrbeauftragter:

Mehr

Komplexita tstheorie eine erste Ubersicht. KTV bedeutet: Details erfahren Sie in der Komplexitätstheorie-Vorlesung.

Komplexita tstheorie eine erste Ubersicht. KTV bedeutet: Details erfahren Sie in der Komplexitätstheorie-Vorlesung. Komplexita tstheorie eine erste Ubersicht KTV bedeutet: Details erfahren Sie in der Komplexitätstheorie-Vorlesung. Probleme Problem = Menge von unendlich vielen konkreten Einzelfragen (Instanzen) F n,

Mehr

Jeweils am Montag um 18:30 treffen sich Studenten in Seminarraum 3 zum gemeinsamen Lernen.

Jeweils am Montag um 18:30 treffen sich Studenten in Seminarraum 3 zum gemeinsamen Lernen. Jeweils am Montag um 18:30 treffen sich Studenten in Seminarraum 3 zum gemeinsamen Lernen. Betrachtungen zu Sprache, Logik und Beweisen Sprache Wir gehen von unserem Alphabet einigen Zusatzsymbolen aus.

Mehr

Grammatiken. Einführung

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

Mehr

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

Grundlagen 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

Übung zu Grundbegriffe der Informatik. Simon Wacker. 15. November 2013

Übung zu Grundbegriffe der Informatik. Simon Wacker. 15. November 2013 Übung zu Grundbegriffe der Informatik Simon Wacker 15. November 2013 Vollständige Induktion über die Wortlänge Es sei B ein Alphabet. Dann ist B = n N 0 B n. Für jedes Wort w B sei A w eine Aussage, die

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik. Motivation - Beispiel. Motivation - Beispiel

Motivation. Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik. Motivation - Beispiel. Motivation - Beispiel Motivation Formale Grundlagen der Informatik 1 Kapitel 19 & Die ist eine Erweiterung der Aussagenlogik. Sie hat eine größere Ausdrucksstärke und erlaub eine feinere Differenzierung. Ferner sind Beziehungen/Relationen

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen 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

Mehr

3. Relationen Erläuterungen und Schreibweisen

3. Relationen Erläuterungen und Schreibweisen 3. Relationen Eine Relation ist allgemein eine Beziehung, die zwischen Dingen bestehen kann. Relationen im Sinne der Mathematik sind ausschließlich diejenigen Beziehungen, bei denen stets klar ist, ob

Mehr

Automaten, Spiele und Logik

Automaten, Spiele und Logik Automaten, Spiele und Logik Woche 13 11. Juli 2014 Inhalt der heutigen Vorlesung Linearzeit Temporale Logik (LTL) Alternierende Büchi Automaten Nicht-Determinisierung (Miyano-Ayashi) Beschriftete Transitionssysteme

Mehr

Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ).

Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ). Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ). Beweis: Für jedes a Σ muss jede Position in der Tabelle nur konstant oft besucht werden.

Mehr

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

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

Mehr