5. REGISTERMASCHINEN Ein formales Berechnungsmodell auf den natürlichen Zahlen
|
|
- Arwed Morgenstern
- vor 5 Jahren
- Abrufe
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 In diesem Abschnitt zeigen wir, dass die von uns betrachteten verschiedenen Formalisierungen des Berechenbarkeitsbegriffs äquivalent sind, d.h. alle zu derselben Klasse (partiell)
MehrAlan 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
MehrRekursive 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
Mehr8. 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
MehrEINFÜ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)
Mehr8. 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
MehrEINFÜ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
MehrUniverselle 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)
Mehr6. 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
Mehr6. 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
Mehr1.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
MehrTuring-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
Mehr1.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
Mehr9. 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:
MehrEinführung in die Theoretische Informatik
Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm
Mehr4. 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
MehrLOOP-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: ; :=
Mehr3. 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
Mehr2 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
MehrMathematische Maschinen
Mathematische Maschinen Ziel: Entwicklung eines allgemeinen Schemas zur Beschreibung von (mathematischen) Maschinen zur Ausführung von Algorithmen (hier: (partiellen) Berechnungsverfahren). Mathematische
Mehr3. 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
MehrNachklausur 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
Mehr6. 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
MehrDank. 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
MehrVL-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,
MehrWiederholung. 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
MehrBerechenbarkeit 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:
Mehr5. 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
MehrUniversitä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
MehrAuffrischung 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
MehrGrundlagen 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
MehrALP 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
Mehr2.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
MehrGrundlagen 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:
MehrSyntax 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:
MehrEinfü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
MehrGTI. 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.
MehrHalteproblem/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:
MehrGrundlagen 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
MehrMehrband-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
Mehr9. 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
MehrBerechenbarkeit. Script, Kapitel 2
Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen
MehrTheoretische 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
Mehr11. Ü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 =
MehrKlausur 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
MehrTuringmaschinen 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
MehrBerechenbarkeit 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.
MehrLOOP-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: ; :=
MehrTuring 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
MehrBerechenbarkeit. Script, Kapitel 2
Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen
MehrDie 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,
MehrFragen 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
MehrEINFÜ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
MehrBerechenbarkeit 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.
MehrGrundlagen 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
MehrEinige 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
MehrMä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
Mehr1.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) =
MehrKapitel 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
MehrKontextsensitive 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
MehrGrundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I
Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:
MehrInformatik 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
Mehr19. 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
MehrMä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
Mehr11. 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
Mehr1.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:
MehrEinfü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
MehrTheoretische 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
MehrBerechenbarkeit 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
MehrTheoretische 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
MehrBerechenbarkeit 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
MehrRekursiv 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
MehrTheoretische 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
Mehr2. 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
MehrTheoretische 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
MehrEinfü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
MehrTheoretische 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,
MehrBerechenbarkeit 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
MehrTHEORETISCHE 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
MehrMä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
MehrTheoretische 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
Mehr6.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
MehrDefinition 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
MehrWir 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
MehrTheorie 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
MehrEin 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
MehrTypen von Programmiersprachen
Typen von Programmiersprachen Berechenbarkeitstheorie: Formalisierung des intuitiven Berechenbarkeitsbegriffs man kann vier Typen von Programmiersprachen zum Berechnen von Zahlenfunktionen unterscheiden:
Mehra 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
MehrTheoretische 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
Mehr8. 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
MehrKomplexitä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
MehrEinfü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:
Mehr10. 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
MehrEinfü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
MehrEinfü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
Mehr1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff
Mehr