5. REGISTERMASCHINEN Ein formales Berechnungsmodell auf den natürlichen Zahlen

Größe: px
Ab Seite anzeigen:

Download "5. REGISTERMASCHINEN Ein formales Berechnungsmodell auf den natürlichen Zahlen"

Transkript

1 EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester REGISTERMASCHINEN Ein formales Berechnungsmodell auf den natürlichen Zahlen Theoretische Informatik (SoSe 2011) 5. Registermaschinen 1 / 49

2 Übersicht (1) Im ersten Teil dieses Kapitels führen wir ein weiteres formales Berechnungskonzept für Zahlfunktionen (d.h. Funktionen vom Typ f : N n N) ein. Während bei den Turingmaschinen die Berechenbarkeit von Zahlfunktionen auf die Berechenbarkeit von Wortfunktionen zurückgeführt wird, indem Zahlen geeignet durch Wörter dargestellt werden (wir haben hierzu bekanntlich die Unärdarstellung benutzt), wird hier von der Darstellung der Zahlen abstrahiert, indem auf elementare Zahloperationen zurückgegriffen wird. Gemein hat dieser neue Ansatz zur Formalisierung der Berechenbarkeit mit dem Turingmaschinenansatz, dass man (nach Festlegung des Datenformats: nämlich Wörter bzw. Zahlen) den Algorithmenbegriff mit Hilfe von formal definierten mathematischen Maschinen definiert, und so einen formalen Berechnungsbegriff erhält. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 2 / 49

3 Übersicht (2) Ein dritter Ansatz zur Formalisierung der Berechenbarkeit, den wir im nächsten Kapitel behandeln werden, wird ein anderer sein. Dort wird nicht der Algorithmenbegriff formalisiert, sondern eine Klasse berechenbarer Funktionen, die sog. rekursiven Funktionen, formal induktiv definiert. ( maschinenunabhängige Präzisierung der Berechenbarkeit) Wie bei den Turingmaschinen werden bei den Registermaschinen die Programme maschinenorientiert sein, d.h. als Kontrollstrukturen Sprünge und bedingte Sprünge (basierend auf Fallunterscheidungen) benutzen. Dies macht das aktuelle Schreiben von Programmen recht aufwendig. Im zweiten Teil des Kapitels führen wir daher eine höhere (benutzerorientierte) Programmiersprache für Registermaschinen ein, die sog. Registeroperatoren. Bei diesen werden Sprünge durch (while-) Schleifen ersetzt. Wir werden den Komfort dieser höheren Programmiersprache im nächsten Kapitel nutzen, wenn wir zeigen, dass die rekursiven Funktionen von Registermaschinen berechnet werden können. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 3 / 49

4 5.1 Registermaschinen und Registermaschinen-Berechenbarkeit Theoretische Informatik (SoSe 2011) 5. Registermaschinen 4 / 49

5 Registermaschinen Die Registermaschinen formalisieren Berechnungsverfahren über den natürlichen Zahlen: Der SPEICHER besteht aus einer festen Anzahl von Registern, die je eine natürliche Zahl aufnehmen können. Die elementaren (TRANSFORMATIONS-)OPERATIONEN erlauben das Inkrementieren (+1) und das Dekrementieren ( 1) der Zahlen in den Registern. (Hierbei: (n + 1) 1 = n und 0 1 = 0) Die elementaren TESTOPERATIONEN erlauben festzustellen, ob die Register leer sind, d.h. die 0 enthalten. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 5 / 49

6 Turingmaschinen vs. Registermaschinen Turingmaschinen: Daten = Wörter Speicher = 1 Wort (mit Blanks) und Zeiger auf einen der Buchstaben Operationen = elementare Wortoperationen (Ersetzen, Löschen und Anfügen von Buchstaben) Tests = Lesen eines Buchstabens Registermaschinen: Daten = natürliche Zahlen Speicher = 1 Zahlenvektor Operationen = elementare Zähloperationen (Hoch-/Runterzählen) Tests = Nulltests Bei der Registermaschine wird von der Darstellung der Zahlen abstrahiert (vgl. die Idee des Datentyps). Theoretische Informatik (SoSe 2011) 5. Registermaschinen 6 / 49

7 Intuitive Beschreibung einer Registermaschine M: Speicherstruktur und Ein-/Ausgabe Eine Registermaschine M zur Berechnung einer n-stelligen (partiellen) Funktion ϕ : N n N verfügt über folgende Komponenten: SPEICHER: Der Speicher besteht aus k n + 1 Registern: Register 1 - n: Eingaberegister Register n + 1: Ausgaberegister Register n k: eventuelle Hilfsregister Hierbei kann jedes Register eine natürliche Zahl aufnehmen. EINGABE: Zu Beginn der Rechnung wird die i-te Komponente x i der Eingabe x = (x 1,...,x n ) in das i-te Register geschrieben (1 i n). Die übrigen Register sind leer (d.h. enthalten die Zahl 0). AUSGABE: Am Ende der Rechnung wird die Ausgabe dem n + 1-ten Register entnommen. Hilfsregister (aber auch die Ein- und das Ausgaberegister) dienen während der Rechnung zum Speichern von Zwischenergebnissen. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 7 / 49

8 Intuitive Beschreibung einer Registermaschine M: Speicheroperationen Für i = 1,...,k kann M folgende elementaren Operationen ausführen: Inkrementieren des i-ten Registers: a i : N k N k wobei a i (x 1,...,x i 1,x i,x i+1,...,x k ) = (x 1,...,x i 1,x i + 1,x i+1,...,x k ) Dekrementieren des i-ten Registers: s i : N k N k wobei s i (x 1,...,x i 1,x i,x i+1,...,x k ) = (x 1,...,x i 1,x i 1,x i+1,...,x k ) ACHTUNG: s i (x 1,...,x i 1,0,x i+1,...,x k ) = (x 1,...,x i 1,0,x i+1,...,x k ) Nulltest für das i-te Register: t i : N k {0,1} wobei { 1 falls x t i (x 1,...,x i 1,x i,x i+1,...,x k ) = i = 0 0 falls x i > 0 Theoretische Informatik (SoSe 2011) 5. Registermaschinen 8 / 49

9 Intuitive Beschreibung einer Registermaschine M: Programm Das Programm ist eine endliche Folge von Operations- und Testinstruktionen. Operationsinstruktionen: (z,a i,z ) bzw. (z,s i,z ) Interpretation: im Zustand z in-(bzw. de-)krementiere das i-te Register und gehe in Zustand z Testinstruktionen: (z,t i,z,z ) Interpretation: im Zustand z teste, ob das i-te Register leer (=0) ist; falls nein, gehe in Zustand z, falls ja, gehe in Zustand z Dabei gibt es zu jedem Zustand z höchstens eine mit z beginnende Instruktion ( Determinismus). Ein Zustand, mit dem keine Instruktion beginnt, ist ein Stoppzustand. Beginnt die Instruktion I mit dem Zustand z, so heisst z die Adresse von I. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 9 / 49

10 Bemerkung zum Instruktionsformat Bei unserem Turingmaschinenmodell ist das Programm eine endliche Folge von bedingten Anweisungen: Die Instruktion (z,a,a,b,z ) bewirkt, dass die Maschine im Zustand z zunächst testet ob a auf dem Arbeitsfeld steht und im positiven Fall werden die Druck- und Bewegungsbefehle a und B ausgeführt und in den Zustand z gesprungen (if-then-format). Bei dem Registermaschinenmodell haben wir dagegen unbedingte Operationsanweisungen (In- und Dekrementieren) und auf den Nulltests basierende bedingte Sprünge getrennt. Bei den Turingmaschinen könnten wir die entsprechende Trennung vornehmen, wobei wir für jeden Buchstaben a des Bandalphabets den Test t a ( steht a auf dem Arbeitsfeld? ) einführen würden und die entsprechenden bedingten Sprünge erlauben würden. Das so erhaltene Modell wäre äquivalent zu unserem Modell. Beim Nachweis der Äquivalenz benutzt man, dass hier der Testsatz t a (a Γ) vollständig und eindeutig ist, d.h. in jeder Situation mindestens ein und höchstens ein (also genau ein) Test positiv ausgeht. Der Testsatz bei den Registermaschinen ist dagegen weder vollständig noch eindeutig, weshalb das bei den Turingmaschinen gewählte Instruktionsformat hier nicht ausreicht: Die gewünschte Aktion bei einem negativen Testausgabe könnte mit dem bedingten Instruktionsformat i.a. nicht beschrieben werden. Dies liesse sich dadurch beheben, dass man entweder die dualen Tests t i ( ist Register i nicht leer? ) hinzufügt (und so den Testsatz vervollständigt), oder - alternativ - dadurch, dass man das bei der Turingmaschine gewählte bedingte Format if - then durch das Format if - then - else ersetzen würde. In jedem Fall könnte man so die von uns eingeführten Programme simulieren. Es bliebe aber noch das Problem des Determinismus, da die Testsätze nicht eindeutig sind. Eindeutigkeit und Vollständigkeit erhielte man, wenn man für jede mögliche Situation einen Test einführen würde (also Tests der Form t mit der Bedeutung Ist Register 1 leer und Register 2 nicht leer und Register 3 leer und... und Register k leer? ). Theoretische Informatik (SoSe 2011) 5. Registermaschinen 10 / 49

11 Beispiel: eine Registermaschine M, die addiert Eine Registermaschine M zur Berechnung der Addition f (x,y) = x + y kommt mit den beiden Eingabe- und dem Ausgaberegister aus. M arbeitet wie folgt: Zunächst wird das erste Register dekrementiert bis es leer ist und dabei gleichzeitig das dritte Register entsprechend inkrementiert. Dann wird genauso mit dem zweiten Register verfahren. (z 0,t 1,z 1,z 3 ) z 0 : if r 1 = 0 then goto z 3 else goto z 1 ; (z 1,s 1,z 2 ) z 1 : r 1 := r 1 1; goto z 2 ; (z 2,a 3,z 0 ) z 2 : r 3 := r 3 + 1; goto z 0 ; (z 3,t 2,z 4,z 6 ) z 3 : if r 2 = 0 then goto z 6 (= stop) else goto z 4 ; (z 4,s 2,z 5 ) z 4 : r 2 := r 2 1; goto z 5 ; (z 5,a 3,z 3 ) z 5 : r 3 := r 3 + 1; goto z 3. Am Ende der Rechnung sind die beiden Eingaberegister geleert und das Ausgaberegister enthält die Summe der beiden Eingaben. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 11 / 49

12 Formale Definition einer k-registermaschine M zur Berechnung einer n-stelligen Funktion Eine k-registermaschine (k-rm) M zur Berechnung einer (partiellen) Funktion ϕ : N n N ist ein 5-Tupel mit folgenden Komponenten: M = (k,n,z,z 0,δ) k ist die Anzahl der Register von M wobei k n + 1. n ist die Stelligkeit der berechneten Funktion. Z ist die endliche Menge der (Programm-)Zustände. z 0 Z ist der Startzustand. δ, das Programm, ist eine partielle Funktion δ : Z (OPER Z ) (TEST Z Z ) wobei OPER = {a 1,...,a k,s 1,...,s k } und TEST = {t 1,...,t k }. (δ ordnet der Adresse einer Instruktion deren Rumpf zu.) Theoretische Informatik (SoSe 2011) 5. Registermaschinen 12 / 49

13 Beispiel Die im vorhergehenden Beipiel beschriebene Registermaschine M zur Berechnung der Summe zweier Zahlen ist formal wie folgt definiert : M = (3,2,Z,z 0,δ), wobei Z = {z 0,...,z 6 } und δ durch folgende Tabelle bestimmt ist: Z ( OPER Z ) ( TEST Z Z ) z 0 t 1 z 1 z 3 z 1 s 1 z 2 z 2 a 3 z 0 z 3 t 2 z 4 z 6 z 4 s 2 z 5 z 5 a 3 z 3 Theoretische Informatik (SoSe 2011) 5. Registermaschinen 13 / 49

14 Formale Beschreibung der Arbeitsweise der k-rm M: Vorgehensweise Zur formalen Beschreibung der Arbeitsweise der k-registermaschine M = (k,n,z,z 0,δ) gehen wir entsprechend wie bei Turingmaschinen vor und benutzen die dort eingeführten Begriffe: Zunächst definieren wir die M-Konfigurationen, die die möglichen Situationen beschreiben, in denen sich M befinden kann. Wir beschreiben dann Eingabemechanismus (Eingabefunktion, Startkonfiguration) und Ausgabemechanismus (Ausgabefunktion). Schließlich definieren wir die Nachfolgekonfiguration einer Konfiguration. Hiermit werden dann Konfigurationenfolgen, Rechnungen und berechnete Funktion wie bei den Turingmaschinen definiert. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 14 / 49

15 Formale Beschreibung der Arbeitsweise der k-rm M: Konfigurationen und Eingabemechanismus M-Konfigurationen: Eine M-Konfiguration besteht aus den Registerinhalten und dem aktuellen Zustand, ist also ein (k + 1)-Tupel (x 1,...,x k,z) N k Z. KON M = N k Z ist also die Menge der M-Konfigurationen. Eingabemechanismus (Eingabefunktion und Startkonfiguration): Die Eingabefunktion von M bildet einen Eingabevektor x N n auf die zugehörige Startkonfiguration ab. Die Startkonfiguration von M bei Eingabe x = (x 1,...,x n ) N n ist hierbei die Konfiguration α M ( x) = (x 1,...,x n,0,...,0,z 0 ) = ( x,0,0 k (n+1),z 0 ) Die Komponenten der Eingabe stehen also in den Eingaberegistern, die restlichen Register sind leer, und M befindet sich im Startzustand z 0. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 15 / 49

16 Formale Beschreibung der Arbeitsweise der k-rm M: Ausgabemechanismus und Nachfolgekonfigurationen Ausgabemechanismus (Ausgabefunktion): Die Ausgabefunktion out M : KON M N ordnet jeder M-Konfiguration den Inhalt des Ausgaberegisters zu: out M (x 1,...,x k,z) = x n+1 (NB: Wie bei den TMs wird die tatsächliche Ausgabe y von M bei Eingabe x der am Ende der Rechnung erreichten Stoppkonfiguration (falls existent) entnommen.) Nachfolgekonfigurationen: Die Nachfolgekonfiguration s(α) einer M-Konfiguration α = ( x,z) mit x = (x 1,...,x k ) ist genau dann definiert, wenn δ(z) definiert ist. In diesem Fall gilt (x 1,...,x i 1,x i + 1,x i+1,...,x k,z ) falls δ(z) = (a i,z ) (x s(α) = s( x,z) = 1,...,x i 1,x i 1,x i+1,...,x k,z ) falls δ(z) = (s i,z ) ( x,z ) falls δ(z) = (t i,z,z ) und x i > 0 ( x,z ) falls δ(z) = (t i,z,z ) und x i = 0 NB: Falls definiert, ist die Nachfolgekonfiguration s(α) von α eindeutig bestimmt. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 16 / 49

17 Formale Beschreibung der Arbeitsweise der k-rm M: Stoppkonfigurationen, Einschrittrelation, etc Die weiteren Begriffe Stoppkonfiguration, Einschrittrelation, Mehrschrittrelation, (maximale) Konfigurationenfolge, etc. lassen sich aus den bis hier eingeführten Begriffen wie im Falle der Turingmaschinen ableiten: s. dort. Hiermit erhält man dann (ebenfalls exakt wie bei den Turingmaschinen): Rechnungen: Die Rechnung von M bei Eingabe x, Rechnung M ( x), ist die (eindeutig bestimmte) maximale mit der Startkonfiguration α M ( x) beginnende Konfigurationenfolge. Berechnete Funktion: Die von M berechnete partielle Funktion ist definiert durch: ϕ M : N n N ϕ M ( x) ist genau dann definiert, wenn die M-Rechnung bei Eingabe x endlich ist. Ist α1,...,α l die M-Rechnung bei Eingabe x, so ist ϕ M ( x) = out M (α l ). Theoretische Informatik (SoSe 2011) 5. Registermaschinen 17 / 49

18 Registermaschinen-berechenbare Funktionen Damit haben wir die Arbeitsweise der Registermaschine M = (k,n,z,z 0,δ) und die von ihr berechnete partielle Funktion ϕ M : N n N formal beschrieben. Dies liefert uns eine weitere Klasse von (partiellen) Funktionen, die im formalen Sinne berechenbar sind. DEFINITION. Eine (partielle) Funktion ϕ : N n N ist (partiell) Registermaschinen-berechenbar (kurz: (partiell) RM-berechenbar), wenn es eine k-registermaschine M (k n + 1) gibt, die ϕ berechnet, d.h. für die ϕ = ϕ M gilt. BEZEICHNUNGEN: F(RM) (n) = {ψ : N n N : ψ partiell RM-berechenbar} F(RM) = n 0 F(RM) (n) F tot (RM) (n) = {f : N n N : f RM-berechenbar} F tot (RM) = n 0 F tot (RM) (n) Theoretische Informatik (SoSe 2011) 5. Registermaschinen 18 / 49

19 RM-Berechenbarkeit vs. TM-Berechenbarkeit Wie wir zeigen werden stimmen RM-Berechenbarkeit und TM-Berechenbarkeit überein: SATZ: F(RM) = F(TM) (und damit auch F tot (RM) = F tot (TM)). Hier werden wir zunächst nur die Inklusion F(RM) F(TM) zeigen. Die Rückrichtung F(TM) F(RM) wird sich später aus einem Ringschluss ergeben, bei dem wir das weitere formale Berechnungskonzept der (partiell) rekursiven Funktion mit einbeziehen werden. Zum Beweis der Inklusion F(RM) F(TM) genügt es zu zeigen, dass ( ) F(RM) F(k-TM) gilt, da aufgrund des Bandreduktionssatzes F(k-TM) F(TM) gilt. Die Inklusion ( ) ergibt sich unmittelbar aus der folgenden Simulation von k-registermaschinen durch k-band-turingmaschinen. k 1 Theoretische Informatik (SoSe 2011) 5. Registermaschinen 19 / 49

20 Das RM-TM-Simulationslemma RM-TM-SIMULATIONSLEMMA: Zu jeder k-registermaschine M = (k,n,z,z 0,δ) zur Berechnung einer n-stelligen partiellen Funktion N n N (k n + 1) gibt es eine äquivalente k-band-turingmaschine. M = (k,{0},n,{0},{0,b},z,z 0,δ ) NB Da die TM M auf der Unärdarstellung 0 x+1 der Zahl x operiert, muss für die von M und M berechneten Funktionen ϕ M und ϕ M gelten: ϕ M (0 x 1+1,...,0 x n+1 ) = 0 ϕ M (x 1,...,x n )+1 Theoretische Informatik (SoSe 2011) 5. Registermaschinen 20 / 49

21 Das RM-TM-Simulationslemma: Beweisidee Die k-band-tm M simuliert die k-rm M Schritt-für-Schritt. D.h. jeder Rechenschritt von M wird durch eine endliche Schrittfolge von M (Simulationszyklus) simuliert. Hierzu wird der aktuelle Inhalt y j des j-ten Registers von M auf dem j-ten M -Band unär dargestellt (1 j k). Dabei steht (zu Beginn und Ende eines jeden Simulationszyklus) der LS-Kopf auf der ersten 0 des Wortes 0 y j +1 und das j-te Band ist ansonsten leer:...b00 y j b... Vor der Simulationsphase müssen daher die n Eingaben x 1,...,x n von M, die M unär durch Blanks getrennt auf Band 1 als Eingabe erhält, auf die Bänder 1,...,n verteilt werden, und die übrigen Bänder mit 0 (=0) beschriftet werden (Initialisierungsphase). Nach Abschluss der Simulationsphase muss dann noch die Ausgabe 0 y n+1, die auf Band n + 1 steht, auf das Ausgabeband k kopiert werden (Abschlussphase). Theoretische Informatik (SoSe 2011) 5. Registermaschinen 21 / 49

22 Das RM-TM-Simulationslemma: Beweisidee (2) Das Programm δ von M besteht also aus 3 Teilprogrammen: δ init zur Ausführung der Initialisierungsphase δ sim zur Ausführung der Simulationsphase δ fin zur Ausführung der Abschlussphase Wir geben diese Programmteile an, indem wir die zugehörigen Instruktionen (=Programmzeilen) auflisten. Dabei ändern wir zur Verbesserung der Lesbarkeit die Reihenfolge der Komponenten: statt der Anordnung benutzen wir Z {0,b} k ({0,b} Bew) k Z Z {0,b} k {0,b} k Bew k Z. Die Zustandsmenge Z von M, die die Zustandsmenge Z von M umfasst, ergibt sich implizit aus der Beschreibung von δ. Dabei gehen wir davon aus, dass alle Zustände, die nicht explizit von Z übernommen werden, neu sind. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 22 / 49

23 Das RM-TM-Simulationslemma: Initialisierung Vorgehensweise: Die Initialisierungsphase beginnt mit der Startkonfiguration von M bei Eingabe (x 1,...,x n ): z 0 : b0x 1+1 b0 x b0 x n+1, b,..., b Es wird dann zunächst auf die erste Null von 0 x 1+1 gegangen, und es werden die Bänder 2 bis k mit 0 beschriftet: z 1 lesen : 00x 1b0 x b0 x n+1, 0,..., 0 Dann wird weiter auf das Blank hinter der ersten Eingabe 0 x 1+1 gegangen: z 2 copy : 0 x 1+1 b0 x b0 x n+1, 0,..., 0 Theoretische Informatik (SoSe 2011) 5. Registermaschinen 23 / 49

24 Das RM-TM-Simulationslemma: Initialisierung (2) Vorgehensweise (Forts.): Es wird dann der Block 0 x 2+1 gelesen, gleichzeitig gelöscht und (von rechts nach links unter Weglassen der bereits vorhandenen 0) auf Band 2 kopiert: z 3 copy : 0 x 1+1 bb x 2+1 b0 x b0 x n+1, 00 x 2, 0..., 0 Dies wird dann für i = 3,...,n iteriert: z n+1 copy : 0 x 1+1 bb x bb x n+1 b, 00 x 2,..., 00 x n, 0,..., 0 Schliesslich wird auf Band 1 das Arbeitsfeld auf die erste 0 der verbliebenen Eingabe 0 x+1 zurückgesetzt und in den Startzustand z 0 von M gegangen ( Übergang zur Simulationsphase): z 0 : 00 x 1, 00 x 2,..., 00 x n, 0,..., 0 Theoretische Informatik (SoSe 2011) 5. Registermaschinen 24 / 49

25 Das RM-TM-Simulationslemma: Initialisierung (3) Das Programmstück δ init wobei i = 2,...,n: Z {0,b} k {0,b} k Bew k Z z 0 b k b0 k 1 RS k 1 z 1 lesen zlesen 1 0 k 0 k RS k 1 zlesen 1 zlesen 1 b0 k 1 b0 k 1 S k zcopy 2 zcopy i b0 k 1 b0 k 1 RS k 1 zcopy+ i zcopy+ i 00 k 1 b0 k 1 RS i 2 LS k i zcopy++ i zcopy++ i 00 i 2 b0 k i b0 i 2 00 k i RS i 2 LS k i zcopy++ i zcopy++ i b0 i 2 b0 k i b0 i 2 b0 k i SS i 2 RS k i zcopy i+1 zcopy n+1 b0 k 1 b0 k 1 LS k 1 zcopy n+1 zcopy n+1 00 k 1 00 k 1 LS k 1 z links z links 00 k 1 00 k 1 LS k 1 z links z links b0 k 1 b0 k 1 RS k 1 z 0 Theoretische Informatik (SoSe 2011) 5. Registermaschinen 25 / 49

26 Das RM-TM-Simulationslemma: Simulationsphase Das Programmstück δ sim enthält für jede M-Instruktion entsprechende Programmzeilen zur Simulation, wobei diese natürlich vom Typ der M-Instruktion abhängen. Wir geben diese im Folgenden an. Inkrementierungsanweisung (z,a i,z ): Simulationsprogramm: Z {0,b} k {0,b} k Bew k Z z 0 k 0 k S i 1 LS k i z + z + 0 i 1 b0 k i 0 k S k z Anschaulich: Auf Band i wird auf das b vor der aktuellen Inschrift gegangen und dieses in eine 0 verwandelt. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 26 / 49

27 Das RM-TM-Simulationslemma: Simulationsphase (2) Dekrementierungsanweisung (z,s i,z ): Simulationsprogramm: Z {0,b} k {0,b} k Bew k Z z 0 k 0 i 1 b0 k i S i 1 RS k i z + z + 0 i 1 b0 k i 0 k S k z z + 0 k 0 k S k z Anschaulich: Auf Band i wird die erste 0 in der aktuellen Zahldarstellung gelöscht und nach rechts gegangen. Steht dort eine 0, so stoppt man (man hat eine Zahl > 0 dekrementiert); steht dort ein Blank, so ersetzt man dieses durch eine 0 (man stellt hier die Darstellung 0 der Zahl 0 wieder her, nachdem man diese davor gelöscht hatte). Theoretische Informatik (SoSe 2011) 5. Registermaschinen 27 / 49

28 Das RM-TM-Simulationslemma: Simulationsphase (3) Testanweisung (z,t i,z,z ): Simulationsprogramm: Z {0,b} k {0,b} k Bew k Z z 0 k 0 k S i 1 RS k i z =0? z =0? 0 i 1 b0 k i 0 i 1 b0 k i S i 1 LS k i z z =0? 0 k 0 k S i 1 LS k i z Anschaulich: Auf Band i wird rechts hinter die erste 0 in der aktuellen Zahldarstellung gegangen. Steht dort ein b, so wird die Null dargestellt und man geht in Zustand z ; andernfalls wird eine Zahl > 0 dargestellt und man geht in Zustand z. In beiden Fällen läuft man auf Band i auf die erste 0 der Zahldarstellung zurück. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 28 / 49

29 Das RM-TM-Simulationslemma: Abschlussphase (1) Bei der Definition des Programmstücks δ fin muss man die Fälle n + 1 < k und n + 1 = k unterscheiden. Im Falle von n + 1 < k besteht δ fin aus folgenden Instruktionen für jeden Stoppzustand z von M: Z {0,b} k {0,b} k Bew k Z z 0 k 0 k S k 1 L Links Links 0 k 1 b 0 k 1 b S k 1 L Copy Copy 0 k 1 b 0 k S n RS k (n+2) L Copy Copy 0 n b0 k (n+2) b 0 n b0 k (n+2) b S k STOP Anschaulich: Die auf Band n + 1 stehende Ausgabe 0 y n+1+1 wird auf Band k vor die dort stehende Zahdarstellung (getrennt durch ein b) geschrieben. Hierbei wird auf Band n + 1 von links nach rechts gelesen und auf Band k von rechts nach links geschrieben. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 29 / 49

30 Das RM-TM-Simulationslemma: Abschlussphase (2) Im Falle von n + 1 = k besteht δ fin aus der folgenden Instruktion für jeden Stoppzustand z von M: Z {0,b} k {0,b} k Bew k Z z 0 k 0 k S k 1 L STOP Anschaulich: Die Ausgabe steht bereits auf Band k. Es genügt also das AF von der ersten 0 der Ausgabe auf das Blank davor zu verlegen. Damit ist der Beweis des Simulationslemmas abgeschlossen. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 30 / 49

31 5.2 Registeroperatoren Theoretische Informatik (SoSe 2011) 5. Registermaschinen 31 / 49

32 Sprünge und Zustände Die Programme von Registermaschinen (und ebenso von Turingmaschinen) benutzen die Konzepte der maschinennahen Programmierung: Kontrollstrukturen sind: Sprünge auf Fallunterscheidungen basierende bedingte Sprünge (Bei den TMs werden diese zu bedingten Anweisungen zusammengefasst.) So entspricht die Programmzeile δ(z) = (o i,z ) bzw. δ(z) = (t i,z,z ) dem folgenden Sprung z : führe o i aus; goto z bzw. bedingten Sprung z : if i-tes Register leer then goto z else goto z ; Die Programmzustände dienen hierbei als Sprungmarken. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 32 / 49

33 Sprünge vs. Schleifen In höheren Programmiersprachen werden Sprünge und bedingte Sprünge durch Schleifen ersetzt. Im Folgenden führen wir solch ein höhere Programmiersprache für das Registermaschinenkonzept ein (die sog. Registeroperatoren), die auf while-schleifen basiert. Wir erinnern hierzu zunächst an das Schleifenkonzept. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 33 / 49

34 Iterative Anweisungen I: for-schleifen Die n-fache Iteration Iter(f,n) = f n einer Operation f : D D ist wie folgt definiert: Iter(f,0)(s) = f 0 (s) = s Iter(f,n + 1)(s) = f n+1 (s) = f (f n (s)) = f (Iter(f,n)(s)) D.h. es wird zu Beginn bereits festgelegt, wie oft f ausgeführt wird: Iter(f,n)(s) ˆ= for i = 1 to n do s := f (s) Die n-fache Iteration entspricht also gerade der (klassischen) for-schleife in Programmiersprachen. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 34 / 49

35 Iterative Anweisungen II: while-schleifen Die Iteration Iter t (f ) von f nach einem Test t (wobei f : D D und t : D {0,1}) ist wie folgt definiert: Iter t (f )(s) = f n s (s), wobei n s das kleinste n mit t(f n (s)) = 1 ist, falls solch ein n existiert, und Iter t (f )(s) andernfalls. D.h. f wird so oft ausgeführt, bis t erstmals positiv ist. Dabei wird vor jeder Ausführung von f getestet, ob t gilt; ist t bereits zu Beginn positiv, wird also f nie ausgeführt: Iter t (f )(s) ˆ= while t(s) = 0 do s := f (s) Die Iteration Iter t (f ) von f nach einem Test t entspricht also gerade der while-schleife in Programmiersprachen. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 35 / 49

36 Registeroperatoren: Idee Auf Schleifen basierende Registermaschinen-Programme definieren wir mit Hilfe sog. Registeroperatoren. Solch ein Operator ist eine partielle RM-Speichertransformation basierend auf Verkettung und Iteration der elementaren RM-Operationen (In- bzw. Dekrementieren von Registern), wobei die elementaren RM-Tests (Ist das i-te Register leer?) als Stoppkriterien bei den Iterationen dienen. Da die Speicherstruktur einer RM nur von der Anzahl k der Register abhängt, sprechen wir auch von k-registeroperatoren P. Jeder solcher Operator P ist eine partielle Funktion P : N k N k. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 36 / 49

37 Induktive Definition der k-registeroperatoren DEFINITION: Die k-registeroperatoren (k-ros) P sind induktiv wie folgt definiert: 1. Jedes P {a 1,...,a k,s 1,...,s k } ist ein k-ro, wobei a i (r 1,...,r k ) = (r 1,...,r i 1,r i + 1,r i+1,...,r k ) s i (r 1,...,r k ) = (r 1,...,r i 1,r i 1,r i+1,...,r k ) ( inkrementiere bzw. dekrementiere Register i ) 2. Sind P 1 und P 2 k-ros, so auch P 1 P 2, wobei ( erst P 1, dann P 2 ) P 1 P 2 ( r) = P 2 (P 1 ( r)) 3. Ist P ein k-ro und 1 i k, so ist auch [P] i ein k-ro, wobei [P] i ( r) = Iter ti (P)( r) ( iteriere P so lange, bis das i-te Register leer ist ) Theoretische Informatik (SoSe 2011) 5. Registermaschinen 37 / 49

38 k-registeroperatoren: Gleichheit und Äquivalenz Bei einem k-ro P muss man zwischen dem Operator selbst (als Zeichenreihe = Programmtext, Syntax) und der dargestellten Funktion (Wirkung des Programms, Semantik) unterscheiden. Wir sagen dass zwei Operatoren P und P gleich sind (P P ), wenn diese als Zeichenreihen identisch sind, und dass P und P äquivalent sind (P = P ), wenn diese dieselbe Funktion darstellen. So sind z.b. die Operatoren a 1 s 2 und s 2 a 1 nicht gleich (a 1 s 2 s 2 a 1 ) aber äquivalent (a 1 s 2 = s 2 a 1 ), da beide die Funktion f (x 1,x 2 ) = (x 1 + 1,x 2 1) darstellen. Dagegen sind s 1 a 1 und a 1 s 1 nicht äquivalent (s 1 a 1 a 1 s 1 ), da s 1 a 1 (0) = 1 wogegen a 1 s 1 (0) = 0. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 38 / 49

39 Beschränkte Iteration und primitive Registeroperatoren Bei einem Iterationsoperator [P] i kann man i.a. nicht a priori sagen, wie oft der innere Operator P ausgeführt wird (while-schleife). Dies können wir jedoch durch folgende Einschränkung der Iteration vermeiden: 3. Ist P ein k-ro, in dem die Operatoren a i und s i nicht vorkommen, so ist auch [s i P] i ein k-ro. Wird hier [s i P] i auf r = (r 1,...,r k ) angewandt, so wird der innere Operator P r i -mal hintereinander ausgeführt (und das i-te Register ist nach Ausführung von [s i P] i leer) (for-schleife). Ersetzt man in der Definition der k-registeroperatoren die Iterationsklausel 3. durch die beschränkte Iteration 3., so erhält man die primitiven k-registeroperatoren (k-pros). Theoretische Informatik (SoSe 2011) 5. Registermaschinen 39 / 49

40 ROs vs. PROs: Bemerkungen k-pros sind total! (Triviale Induktion nach Aufbau der k-pros.) k-ros können dagegen partiell sein. So stellt z.b. der 1-RO a 1 [a 1 ] 1 die nirgends definierte Funktion dar. Jeder k-pro ist ein k-ro. In der beschränkten Iteration [s i P] i lassen wir auch den leeren Operator P (= Identitätsfunktion) zu. D.h. [s i ] i ist ein k-pro. Offensichtlich gilt [s i ] l = [s i a n s n ] l (für n i). Ist [s i P] i ein primitiver RO, so ist [s i P] i zu [Ps i ] i äquivalent: Da der Teiloperator P nicht auf Register i zugreift, spielt es keine Rolle, ob wir dieses vor oder nach Ausführung von P dekrementieren. Wir akzeptieren daher i.a. auch [Ps i ] i als PRO. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 40 / 49

41 Von ROs berechnete Funktionen Ein k-ro P stellt eine (partielle) Funktion vom Typ N k N k dar. Indem wir den Ein- und Ausgabemechanismus von Registermaschinen verwenden, können wir P aber auch eine partielle Funktion vom Typ N n N zuordnen (für n + 1 k): DEFINITION. Sei n < k und P ein k-ro. Die von P berechnete n-st. partielle Funktion ϕ (n) P : Nn N is definiert durch ϕ (n) P (x 1,...,x n ) = U k n+1 (P(x 1,...,x n,0,0 k (n+1) )) Hierbei ist Un+1 k die k-stellige Projektion auf die (n + 1)-te Komponente: Un+1 k (y 1,...,y k ) = y n+1. Gilt zusätzlich für alle x = (x 1,...,x n ) Db(ϕ (n) P ) P( x,0,0 k (n+1) ) = ( x,ϕ (n) P ( x),0k (n+1) ), so sagen wir, dass der RO P die Funktion ϕ (n) P konservativ berechnet. In einer konservativen Rechnung sind also am Ende der Rechnung die Eingaberegister wiederhergestellt und die Hilfsregister gelöscht. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 41 / 49

42 Beispiele Der (primitive) 3-Registeroperator Sum = [s 1 a 3 ] 1 [s 2 a 3 ] 2 berechnet die Summe zweier natürlicher Zahlen, wobei er wie die in einem früheren Beispiel vorgestellte RM zur Berechnung der Summenfunktion vorgeht. Sum ist nicht konservativ, da die Eingaben im Laufe der Rechnung zerstört werden: Sum(m 1,m 2,0) = (0,0,m 1 + m 2 ). Der k-pro [s i ] i leert das i-te Register: [s i ] i (x 1,...,x i 1,x i,x i+1,...,x k ) = (x 1,...,x i 1,0,x i+1,...,x k ) Theoretische Informatik (SoSe 2011) 5. Registermaschinen 42 / 49

43 Beispiele (Forts.) Der PRO TL i j = [s j ] j [s i a j ] i, kopiert Register i in Register j (j i), wobei Register i gelöscht wird (Registertransfer mit Löschen): Der (primitive) Registeroperator TL i j (...,r i,...,r j,...) = (...,0,...,r i,...) T i j,h = [s j ] j [s h ] h [s i a j a h ] i [s h a i ] h beschreibt den Registertransfer ohne Löschen von Register i in Register j unter Verwendung von Register h als Hilfsregister (i, j, h paarweise verschieden): T i j,h (...,r i,...,r j,...,r h,...) = (...,r i,...,r i,...,0,...) Theoretische Informatik (SoSe 2011) 5. Registermaschinen 43 / 49

44 Rechnungen vs. konservative Rechnungen BEOBACHTUNG: Mit Hilfe der Löschoperatoren und der Registertransfers kann man jeden k-(p)ro P zur Berechnung einer partiellen Funktion ϕ (n) (n < k) in einen (k + n)-(p)ro P überführen, der ϕ (n) konservativ berechnet: P T 1 k+1,n+1...t n,k+n,n+1 P[s n+2 ] n+2...[s k ] k TL k TL k+n n BEISPIEL: So erhält man z.b. aus dem oben eingeführten 3-PRO Sum zur Berechnung von + den folgenden 5-PRO zur konservativen Berechnung von +: Sum kon = T 1 4,3 T 2 5,3 Sum TL 4 1 TL 5 2 Wir werden diese Beobachtung im Folgenden nutzen: Wenn wir einen (P)RO P zur Berechnung einer (partiellen) Funktion ϕ gegeben haben, so dürfen wir o.b.d.a. annehmen, dass der Operator P ϕ konservativ berechnet! Theoretische Informatik (SoSe 2011) 5. Registermaschinen 44 / 49

45 RO-Berechenbarkeit Entsprechend zur RM-Berechenbarkeit definieren wir: DEFINITION. Eine (partielle) Funktion ϕ : N n N ist (partiell) Registeroperatoren-berechenbar (kurz: (partiell) RO-berechenbar), wenn es einen k-registeroperator P (k n + 1) gibt, der ϕ berechnet, d.h. für den ϕ = ϕ (n) P gilt. Entsprechend: Eine Funktion f : N n N ist primitiv Registeroperatorenberechenbar (kurz: PRO-berechenbar), wenn es einen primitiven k-registeroperator P (k n + 1) gibt, der f berechnet, d.h. für den f = ϕ (n) P gilt. BEZEICHNUNGEN: F(RO) (n) = {ψ : N n N : ψ partiell RO-berechenbar} F(RO) = n 0 F(RM) (n) F tot (RO) (n) = {f : N n N : f RO-berechenbar} F tot (RO) = n 0 F tot (RO) (n) F(PRO) (n) = {f : N n N : f PRO-berechenbar} F(PRO) = n 0 F(PRO) (n) Theoretische Informatik (SoSe 2011) 5. Registermaschinen 45 / 49

46 RM-Berechenbarkeit vs. RO-Berechenbarkeit Man kann zeigen, dass das Registermaschinen- und das Registeroperatorenkonzept äquivalent sind, d.h. die Klasse der (partiell) RM-berechenbaren Funktionen mit der Klasse der RO-berechenbaren Funktionen übereinstimmt: F(RM) = F(RO) Für uns ist nur die Inklusion F(RO) F(RM) interessant, die sich aus dem RO-RM-Simulationslemma ergibt, das wir als nächstes beweisen werden. Diese Inklusion wird im Beweis, dass Turingmaschinenberechenbarkeit, Registermaschinenberechenbarkeit und (die noch einzuführende) Rekursivität zusammenfallen (Äquivalenzsatz), von uns verwendet werden. (Die Inklusion F(RM) F(RO) wird sich aus dem Ringschluss zum Beweis des Äquivalenzsatzes ebenfalls ergeben.) Theoretische Informatik (SoSe 2011) 5. Registermaschinen 46 / 49

47 RO-RM-Simulationslemma Da Ein- und Ausgabe bei Registeroperatoren und Registermaschinen gleich definiert sind, genügt es zum Nachweis von F(RO) F(RM) folgendes Lemma zu zeigen. RO-RM-SIMULATIONSLEMMA. Zu jedem k-ro P gibt es eine k-rm M mit Startzustand α M und ausgezeichnetem Stoppzustand ω M, sodass für alle r N k gilt: (i) Ist P( r) definiert, so ist die mit ( r,α M ) beginnende Rechnung von M endlich und endet mit der Stoppkonfiguration (P( r),ω M ). (ii) Ist P( r) undefiniert, so ist die mit ( r,α M ) beginnende Rechnung von M unendlich. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 47 / 49

48 RO-RM-Simulationslemma: Beweis Der Beweis ist durch Induktion nach Aufbau (= Länge) des RO P. 1. P a i oder P s i (1 i k): Dann besteht das Programm δ von M aus der Instruktion (α M,a i,ω M ) bzw. (α M,s i,ω M ). 2. P P 1 P 2 : Nach I.V. gibt es dann die die ROs P i simulierenden Maschinen M i mit Zustandsmengen Z i und ausgezeichneten Zuständen α Mi und ω Mi (i = 1,2). Durch eventuelles Umbenennen der Zustände können wir erreichen, dass Z 1 Z 2 = {ω M1 } und ω M1 = α M2 gilt. Das Programm von M ist dann die Vereinigung der Programme von M 1 und M 2, α M = α M1 und ω M = ω M2. Theoretische Informatik (SoSe 2011) 5. Registermaschinen 48 / 49

49 RO-RM-Simulationslemma: Beweis (Fortsetzung) 3. P = [P 1 ] i (1 i k): Nach I.V. gibt es dann eine den RO P 1 simulierende Maschine M 1 mit ausgezeichneten Zuständen α M1 und ω M1. Das Programm der Maschine M erhält man aus dem Programm von M 1 durch Hinzufügen der Instruktion (α M,t i,α M1,ω M ), wobei α M = ω M1 während ω M neu ist. (Ende des Beweises) Theoretische Informatik (SoSe 2011) 5. Registermaschinen 49 / 49

10. Der Äquivalenzsatz

10. Der Äquivalenzsatz 10. Der Äquivalenzsatz In diesem Abschnitt zeigen wir, dass die von uns betrachteten verschiedenen Formalisierungen des Berechenbarkeitsbegriffs äquivalent sind, d.h. alle zu derselben Klasse (partiell)

Mehr

Alan Mathison Turing ( )

Alan Mathison Turing ( ) 3. Turingmaschinen Alan Mathison Turing (1912-1954) Britischer Logiker, Mathematiker und Computerpionier http://www.time.com/time/time100/scientist/profile/turing.html 1 FORMALISIERUNG VON ALGORITHMEN

Mehr

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N induktiv

Mehr

8. Rekursive und primitiv rekursive Funktionen

8. Rekursive und primitiv rekursive Funktionen 8. Rekursive und primitiv rekursive Funktionen In diesem Abschnitt führen wir eine weitere (letzte) Formalisierung des Berechenbarkeitskonzeptes für Funktionen über den natürlichen Zahlen ein. Hatten wir

Mehr

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 3. TURINGMASCHINEN. Prof. Dr. Klaus Ambos-Spies. Sommersemester 2012

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 3. TURINGMASCHINEN. Prof. Dr. Klaus Ambos-Spies. Sommersemester 2012 EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2012 3. TURINGMASCHINEN Theoretische Informatik (SoSe 2012) 3. Turingmaschinen 1 / 45 Alan Mathison Turing (1912-1954)

Mehr

8. Der Äquivalenzsatz

8. Der Äquivalenzsatz 8. Der Äquivalenzsatz ÄQUIVALENZSATZ. Für eine (partielle) Funktion f : N n N sind folgende Aussagen äquivalent: f ist (partiell) Turing-berechenbar. f wird von einer k-band-turingmaschine berechnet (k

Mehr

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 8. DER ÄQUIVALENZSATZ. Prof. Dr. Klaus Ambos-Spies. Sommersemester 2017

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 8. DER ÄQUIVALENZSATZ. Prof. Dr. Klaus Ambos-Spies. Sommersemester 2017 EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2017 8. DER ÄQUIVALENZSATZ Theoretische Informatik (SoSe 2017) 8. Der Äquivalenzsatz 1 / 36 Übersicht In diesem Kapitel

Mehr

Universelle Maschinen und universelle Funktionen

Universelle Maschinen und universelle Funktionen Universelle Maschinen und universelle Funktionen UNIVERSELLE FUNKTIONEN DEFINITION. Sei F eine Klasse von partiellen Funktionen über N. Eine partielle Funktion ϕ (n+1) ist n-universell für F, wenn (i)

Mehr

6. Varianten des Turingmaschinen-Konzeptes II: Varianten der Speicherstruktur

6. Varianten des Turingmaschinen-Konzeptes II: Varianten der Speicherstruktur 6. Varianten des Turingmaschinen-Konzeptes II: Varianten der Speicherstruktur Der Speicherzugriff bei Turingmaschinen ist recht umständlich. Man erhält effizientere Speicherstrukturen, wenn man mehrere

Mehr

6. REKURSIVE FUNKTIONEN Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

6. REKURSIVE FUNKTIONEN Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2012 6. REKURSIVE FUNKTIONEN Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen Theoretische

Mehr

1.5 Turing-Berechenbarkeit

1.5 Turing-Berechenbarkeit A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine

Mehr

Turing-Maschinen: Ein abstrakes Maschinenmodell

Turing-Maschinen: Ein abstrakes Maschinenmodell Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt, eine Elementaroperation ist maschinell ausführbar? Was verstehen

Mehr

1.5 Turing-Berechenbarkeit

1.5 Turing-Berechenbarkeit A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine

Mehr

9. Universelle Maschinen und universelle Funktionen

9. Universelle Maschinen und universelle Funktionen 9. Universelle Maschinen und universelle Funktionen In diesem Abschnitt zeigen wir die Existenz universeller Turingmaschinen U. Solch eine Maschine U simuliert (interpretiert) alle Turingmaschinen (genauer:

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm

Mehr

4. VARIANTEN DES TURINGMASCHINEN-KONZEPTES

4. VARIANTEN DES TURINGMASCHINEN-KONZEPTES EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2012 4. VARIANTEN DES TURINGMASCHINEN-KONZEPTES Theoretische Informatik (SoSe 2012) 4. Varianten des Turingmaschinen-Konzeptes

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

3. Mathematische Maschinen

3. Mathematische Maschinen 3. Mathematische Maschinen Bei den Anforderungen an Algorithmen im letzten Paragraphen haben wir bemerkt, dass ein Algorithmus im Prinzip von einer Maschine ausgeführt werden kann. Umgekehrt kann solch

Mehr

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

2 Turingmaschinen 6. Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel 2. Turingmaschinen Als Formulierung von Algorithmen benutzen wir hier Turingmaschinen. Von den vielen Varianten dieses Konzeptes (s. Vorlesung Einführung in die Theoretische Informatik ) greifen wir das

Mehr

Mathematische Maschinen

Mathematische Maschinen Mathematische Maschinen Ziel: Entwicklung eines allgemeinen Schemas zur Beschreibung von (mathematischen) Maschinen zur Ausführung von Algorithmen (hier: (partiellen) Berechnungsverfahren). Mathematische

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

Nachklausur zur Vorlesung Einführung in die Theoretische Informatik

Nachklausur zur Vorlesung Einführung in die Theoretische Informatik Universität Heidelberg 11. Oktober 2012 Institut für Informatik Prof. Dr. Klaus Ambos-Spies Dipl.-Math. Thorsten Kräling Nachklausur zur Vorlesung Einführung in die Theoretische Informatik Musterlösungen

Mehr

6. Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

6. Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen 6. Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N

Mehr

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität

Mehr

VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger WS 2017, RWTH BuK/WS 2017 VL-11: LOOP und WHILE Programme I 1/46 Organisatorisches Nächste Vorlesung: Mittwoch,

Mehr

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger Organisatorisches VL-11: LOOP und WHILE Programme I (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger Nächste Vorlesung: Mittwoch, November 29, 14:15 15:45 Uhr, Roter Hörsaal Webseite: http://algo.rwth-aachen.de/lehre/ws1718/buk.php

Mehr

Berechenbarkeit und Komplexität: Erläuterungen zur Turingmaschine

Berechenbarkeit und Komplexität: Erläuterungen zur Turingmaschine Berechenbarkeit und Komplexität: Erläuterungen zur Turingmaschine Prof. Dr. Berthold Vöcking Lehrstuhl Informatik Algorithmen und Komplexität 24. Oktober 26 Programmierung der TM am Beispiel Beispiel:

Mehr

5. Varianten des Turingmaschinen-Konzeptes I: Varianten der Programmstruktur

5. Varianten des Turingmaschinen-Konzeptes I: Varianten der Programmstruktur 5. Varianten des Turingmaschinen-Konzeptes I: Varianten der Programmstruktur In der Literatur findet sich eine Vielzahl von Varianten des Turingmaschinen-Konzeptes, die sich alle als äquivalent zum Grundkonzept

Mehr

Universität Heidelberg 23. Juli 2018 Institut für Informatik Prof. Dr. Klaus Ambos-Spies Dipl. Math. Martin Monath

Universität Heidelberg 23. Juli 2018 Institut für Informatik Prof. Dr. Klaus Ambos-Spies Dipl. Math. Martin Monath Universität Heidelberg 23. Juli 2018 Institut für Informatik Prof. Dr. Klaus Ambos-Spies Dipl. Math. Martin Monath Erste Klausur zur Vorlesung Einführung in die Theoretische Informatik Es können maximal

Mehr

Auffrischung Einige (wenige) Grundlagen der Theoretischen Informatik

Auffrischung Einige (wenige) Grundlagen der Theoretischen Informatik Logik, Berechenbarkeit und Komplexität Sommersemester 2008 Fachhochschule Wiesbaden Prof. Dr. Steffen Reith Auffrischung Einige (wenige) Grundlagen der Theoretischen Informatik 1 Turingmaschinen - Ein

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Turingmaschinen und rekursiv aufzählbare Sprachen (III) 8.07.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

ALP I Turing-Maschine

ALP I Turing-Maschine ALP I Turing-Maschine Teil I WS 2012/2013 Äquivalenz vieler Berechnungsmodelle Alonzo Church λ-kalkül Kombinatorische Logik Alan Turing Turing-Maschine Mathematische Präzisierung Effektiv Berechenbare

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

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; Einführung Ersetzungsverfahren:

Mehr

Syntax von LOOP-Programmen

Syntax von LOOP-Programmen LOOP-Berechenbarkeit Syntax von LOOP-Programmen Definition LOOP-Programme bestehen aus: Variablen: x 0, x 1, x 2, x 3,... Konstanten: 0, 1, 2, 3,... Trennsymbolen:; und := Operationen: + und Befehlen:

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. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 8 18. Juli 2011 Einführung in die Theoretische Informatik

Mehr

GTI. Hannes Diener. 18. Juni. ENC B-0123,

GTI. Hannes Diener. 18. Juni. ENC B-0123, GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 18. Juni 1 / 32 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5.

Mehr

Halteproblem/Kodierung von Turing-Maschinen

Halteproblem/Kodierung von Turing-Maschinen Halteproblem/Kodierung von Turing-Maschinen Unser Ziel ist es nun zu zeigen, dass das sogenannte Halteproblem unentscheidbar ist. Halteproblem (informell) Eingabe: Turing-Maschine M mit Eingabe w. Frage:

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Turingmaschinen und rekursiv aufzählbare Sprachen (II) 2.07.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

Mehrband-Turingmaschinen

Mehrband-Turingmaschinen Mehrband-Turingmaschinen Definition wie bei 1-Band-TM, nur mehrere Bänder. Dann natürlich pro Band ein Schreib-/Lesekopf. Übergangsfunktion von Z k nach Z k {L, R, N} k. Satz: Zu jeder Mehrband-Turingmaschine

Mehr

9. UNVERSELLE MASCHINEN UND UNIVERSELLE FUNKTIONEN

9. UNVERSELLE MASCHINEN UND UNIVERSELLE FUNKTIONEN EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2012 9. UNVERSELLE MASCHINEN UND UNIVERSELLE FUNKTIONEN Theoretische Informatik (SoSe 2012) 9. Universelle Funktionen

Mehr

Berechenbarkeit. Script, Kapitel 2

Berechenbarkeit. Script, Kapitel 2 Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen

Mehr

Theoretische Informatik SS 03 Übung 3

Theoretische Informatik SS 03 Übung 3 Theoretische Informatik SS 03 Übung 3 Aufgabe 1 a) Sind die folgenden Funktionen f : partiell oder total: f(x, y) = x + y f(x, y) = x y f(x, y) = x y f(x, y) = x DIV y? Hierbei ist x DIV y = x y der ganzzahlige

Mehr

11. Übungsblatt. x y(top(push(x, y)) = y)

11. Übungsblatt. x y(top(push(x, y)) = y) Logik, Berechenbarkeit und Komplexität Sommersemester 2012 Hochschule RheinMain Prof. Dr. Steffen Reith 11. Übungsblatt 1. Ein Keller (engl. stack) ist eine bekannte Datenstruktur. Sei die Signatur S =

Mehr

Klausur zur Vorlesung Einführung in die Theoretische Informatik

Klausur zur Vorlesung Einführung in die Theoretische Informatik Universität Heidelberg 19. Juli 2012 Institut für Informatik Prof. Dr. Klaus Ambos-Spies Dipl.-Math. Thorsten Kräling Klausur zur Vorlesung Einführung in die Theoretische Informatik LÖSUNGEN Es können

Mehr

Turingmaschinen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen

Turingmaschinen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: und effiziente Algorithmen Wintersemester 2011/12 Schematische Darstellung einer Turing-Maschine: Kopf kann sich nach links und

Mehr

Berechenbarkeit und Komplexität Vorlesung 11

Berechenbarkeit und Komplexität Vorlesung 11 Berechenbarkeit und Komplexität Vorlesung 11 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 7. Dezember 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7.

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

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

Berechenbarkeit. Script, Kapitel 2

Berechenbarkeit. Script, Kapitel 2 Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen

Mehr

Die Prädikatenlogik erster Stufe: Syntax und Semantik

Die Prädikatenlogik erster Stufe: Syntax und Semantik Die Prädikatenlogik erster Stufe: Syntax und Semantik 1 Mathematische Strukturen und deren Typen Definition 1.1 Eine Struktur A ist ein 4-Tupel A = (A; (R A i i I); (f A j j J); (c A k k K)) wobei I, J,

Mehr

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein!

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein! 4 Turingmaschinen Eingabeband nicht nur lesen, sondern auch schreiben kann und die zudem mit ihrem Lese-Schreib-Kopf (LSK) nach links und rechts gehen kann. Das Eingabeband ist zudem in beide Richtungen

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

Berechenbarkeit und Komplexität Vorlesung 10

Berechenbarkeit und Komplexität Vorlesung 10 Berechenbarkeit und Komplexität Vorlesung 10 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 27. November 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 27.

Mehr

Grundlagen der Theoretischen Informatik: Übung 10

Grundlagen der Theoretischen Informatik: Übung 10 Grundlagen der Theoretischen Informatik: Übung 10 Joachim Selke Fachgebiet Theoretische Informatik Universität Hannover 20. Januar 2005 Turing-Maschinen als Rechenmaschinen gegeben sei eine Funktion f

Mehr

Einige Beispiele zur Turingmaschine

Einige Beispiele zur Turingmaschine Einige Beispiele zur Turingmaschine Beispiel 1: Addition von 1 zu einer Dualzahl Aufgabe: Auf dem Eingabe-Band einer Turingmaschine steht eine Dualzahl (= Binärzahl, bestehend aus 0-en und 1-en, links

Mehr

Mächtigkeit von WHILE-Programmen

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

Mehr

1.4 Die Ackermannfunktion

1.4 Die Ackermannfunktion a : N 2 N : Beispiele: a(0, y) = y + 1, a(x, 0) = a(x 1, 1), x > 0, a(x, y) = a(x 1, a(x, y 1)), x, y > 0. Beh.: a(1, y) = y + 2 Bew. durch Induktion über y: a(1, 0) = a(0, 1) = 2 = 0+2. a(1, y + 1) =

Mehr

Kapitel 1.1. Aussagenlogik: Syntax. Mathematische Logik (WS 2011/12) Kapitel 1.1: Aussagenlogik: Syntax 1/ 1

Kapitel 1.1. Aussagenlogik: Syntax. Mathematische Logik (WS 2011/12) Kapitel 1.1: Aussagenlogik: Syntax 1/ 1 Kapitel 1.1 Aussagenlogik: Syntax Mathematische Logik (WS 2011/12) Kapitel 1.1: Aussagenlogik: Syntax 1/ 1 Übersicht 1.1.1 Die Sprache der Aussagenlogik 1.1.2 Explizite vs. implizite Definitionen 1.1.3

Mehr

Kontextsensitive und Typ 0 Sprachen Slide 2. Die Turingmaschine

Kontextsensitive und Typ 0 Sprachen Slide 2. Die Turingmaschine Kontextsensitive und Typ 0 Sprachen Slide 2 Die Turingmaschine DTM = Deterministische Turingmaschine NTM = Nichtdeterministische Turingmaschine TM = DTM oder NTM Intuitiv gilt: DTM = (DFA + dynamischer

Mehr

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung Informatik III Christian Schindelhauer Wintersemester 2006/07 13. Vorlesung 07.12.2006 1 Überblick: Die Church- Turing-These Turing-Maschinen 1-Band Turing-Maschine Mehrband-Turing-Maschinen Nichtdeterministische

Mehr

19. Nichtdeterministische Turingmaschinen und ihre Komplexität

19. Nichtdeterministische Turingmaschinen und ihre Komplexität 19. Nichtdeterministische Turingmaschinen und ihre Komplexität Bei einem Turingmaschinenprogramm P aus bedingten Anweisungen wird durch die Forderung i a b B j i a b B j i a sichergestellt, dass zu jeder

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 1 / 23 Turingmaschine (TM) M = (Q, Σ, Γ, B, q 0, q, δ) Unendliches Band... 0 c

Mehr

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen, Entscheidbarkeit, P 239/ 333 Einführung in die NP-Vollständigkeitstheorie

Mehr

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit Die Programmiersprache LOOP (i) Syntaktische Komponenten: Variable: x 0, x 1, x 2,... Konstanten: 0, 1, 2,... Trennsymbole: ; := Operationszeichen: + Schlüsselwörter: LOOP DO END (ii) LOOP-Programme: Wertzuweisungen:

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I LOOP Programme, rekursive Funktionen und der Turm von Hanoi Prof. Dr. Nikolaus Wulff Berechenbarkeit Mitte des 20. Jahrhunderts beantworteten Pioniere, wie Alan M. Turing

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik 0 KIT 17.05.2010 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik nationales Forschungszentrum Vorlesung in am

Mehr

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 29. November 2007 Turing-mächtige

Mehr

Theoretische Informatik SS 03 Übung 5

Theoretische Informatik SS 03 Übung 5 Theoretische Informatik SS 03 Übung 5 Aufgabe 1 Im Buch von Schöning ist auf S. 106-108 beschrieben, wie eine Turing-Maschine durch ein GOTO-Programm simuliert werden kann. Zeigen Sie, wie dabei die Anweisungen

Mehr

Berechenbarkeit und Komplexität

Berechenbarkeit und Komplexität Berechenbarkeit und Komplexität Vorlesung SS 2013 1. Einführung I. Berechenbarkeitsbegriff, typische Fragen: wann ist eine Funktion berechenbar? wie lässt sich der intuitive Berechenbarkeitsbegriff formal

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

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

2. Imperative Programmierung und Berechenbarkeit - Registermaschinen -

2. Imperative Programmierung und Berechenbarkeit - Registermaschinen - 2. Imperative Programmierung und Berechenbarkeit - Registermaschinen - 2.1 Definition 2.2 Loop-Programme 2.3 While Programme 2.4 While Programme und rekursive Funktionen Im Wesentlichen: Tafel! Maschinenmodell

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Teil 4 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2007 Übersicht 1 Turingmaschinen Mehrband-TM Kostenmaße Komplexität 2 Mehrband-TM Kostenmaße

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. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 4.3 Eigenschaften von L 0 /L 1 -Sprachen 1. Abschlußeigenschaften 2. Prüfen von Eigenschaften 3. Grenzen der Sprachklassen Sprachklassen Semi-entscheidbare Sprache Sprache,

Mehr

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 13. November 2006 Turing-mächtige

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE INFORMATIK UND LOGIK THEORETISCHE INFORMATIK UND LOGIK 3. Vorlesung: WHILE und LOOP Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 12. April 2017 Was bisher geschah... Grundbegriffe, die wir verstehen und erklären

Mehr

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Mächtigkeit von LOOP-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Die Programmiersprache LOOP Syntax Elemente eines LOOP-Programms Variablen

Mehr

Theoretische Informatik 1

Theoretische Informatik 1 Theoretische Informatik 1 Die Komplexitätsklasse P David Kappel Institut für Grundlagen der Informationsverarbeitung TU Graz SS 2012 Übersicht Äquivalenz von RM und TM Äquivalenz, Sätze Simulation DTM

Mehr

6.4 Entscheidbarkeit. nein sein müssen, ist klar. THEO 6.4 Entscheidbarkeit 205/307 c Ernst W. Mayr

6.4 Entscheidbarkeit. nein sein müssen, ist klar. THEO 6.4 Entscheidbarkeit 205/307 c Ernst W. Mayr 6.4 Entscheidbarkeit Wortproblem Leerheit Äquivalenz Schnittproblem Typ 3 ja ja ja ja DCFL ja ja ja nein (*) Typ 2 ja ja nein (*) nein Typ 1 ja nein (*) nein nein Typ 0 nein (*) nein nein nein (*) Diese

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

Wir suchen Antworten auf die folgenden Fragen: Was ist Berechenbarkeit? Wie kann man das intuitiv Berechenbare formal fassen?

Wir suchen Antworten auf die folgenden Fragen: Was ist Berechenbarkeit? Wie kann man das intuitiv Berechenbare formal fassen? Einige Fragen Ziel: Wir suchen Antworten auf die folgenden Fragen: Wie kann man das intuitiv Berechenbare formal fassen? Was ist ein Algorithmus? Welche Indizien hat man dafür, dass ein formaler Algorithmenbegriff

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 13. LOOP-, WHILE- und GOTO-Berechenbarkeit Malte Helmert Gabriele Röger Universität Basel 9. April 2014 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale

Mehr

Ein formales Berechnungsmodell: Turingmaschinen. Turingmaschinen 26 / 62

Ein formales Berechnungsmodell: Turingmaschinen. Turingmaschinen 26 / 62 Ein formales Berechnungsmodell: Turingmaschinen Turingmaschinen 26 / 62 Ein formales Rechnermodell Bisher haben wir abstrakt von Algorithmen bzw. Programmen gesprochen und uns dabei JAVA- oder C++-Programme

Mehr

Typen von Programmiersprachen

Typen von Programmiersprachen Typen von Programmiersprachen Berechenbarkeitstheorie: Formalisierung des intuitiven Berechenbarkeitsbegriffs man kann vier Typen von Programmiersprachen zum Berechnen von Zahlenfunktionen unterscheiden:

Mehr

a b b a Vom DFA zur TM Formale Grundlagen der Informatik 1 Kapitel 9 Turing-Maschinen Der Lese-/Schreibkopf Bedeutung der TM

a b b a Vom DFA zur TM Formale Grundlagen der Informatik 1 Kapitel 9 Turing-Maschinen Der Lese-/Schreibkopf Bedeutung der TM Vom DFA zur TM Formale der Informatik 1 Kapitel 9 Frank Heitmann heitmann@informatik.uni-hamburg.de a b b a z 0 a z 1 a z 2 b 2. Mai 2016 Wir wollen auf dem Band nach rechts und links gehen können und

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik 0 KIT 07.11.2014 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik nationales Forschungszentrum Vorlesung in am

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

Komplexitätstheorie WiSe 2011/12 in Trier. Henning Fernau Universität Trier

Komplexitätstheorie WiSe 2011/12 in Trier. Henning Fernau Universität Trier Komplexitätstheorie WiSe 2011/12 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Komplexitätstheorie Gesamtübersicht Organisatorisches / Einführung Motivation / Erinnerung / Fragestellungen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Prof. Dr. Rudolf Berrendorf Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg URM - Programmierung Dipl.-Inf. Sigrid Weil Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg Einordnung Programmier-Paradigma:

Mehr

10. UNENTSCHEIDBARE PROBLEME:

10. UNENTSCHEIDBARE PROBLEME: EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2011 10. UNENTSCHEIDBARE PROBLEME: DIAGONALISIERUNG UND REDUKTION Theoretische Informatik (SoSe 2011) 10. Unentscheidbare

Mehr

Einführung in die Informatik Turing Machines

Einführung in die Informatik Turing Machines Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard Cyrill Stachniss 1/14 Motivation und Einleitung Bisher haben wir verschiedene

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 11 15. Juli 2010 Einführung in die Theoretische

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 WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff

Mehr