GOTO simuliert Turingmaschinen

Ähnliche Dokumente
LOOP-Programme: Syntaktische Komponenten

Mächtigkeit von WHILE-Programmen

Theoretische Informatik SS 03 Übung 3

Primitiv rekursive und µ-rekursive Funktionen

Def.: Die Menge der LOOP-Programme ist induktiv wie folgt definiert:

ALP I Rekursive Funktionen

Syntax von LOOP-Programmen

Theoretische Informatik SS 03 Übung 4

Einführung in die Theoretische Informatik

Theorie der Informatik

Mitschrift BFS WS 13/14

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

Rekursive Funktionen Basisfunktionen

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

Primitiv rekursive und µ-rekursive Funktionen

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

Theorie der Informatik (CS206) Fortsetzung LOOP-Programme, primitiv-rekursive Funktionen

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

Theoretische Informatik II

Die Ackermannfunktion

Primitive Rekursion. Basisfunktionen: Konstante Funktion: const 3 3 (1,1, pr 1,3(g,h) (1,1)) Projektion: proj 3 (1,1, pr. Komposition: comp 3,2

Kapitel III. Aufbau des Zahlensystems

Theoretische Grundlagen der Informatik

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

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

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

Zusammenfassung Grundzüge der Informatik 4

2.4 Kontextsensitive und Typ 0-Sprachen





(Prüfungs-)Aufgaben zur Berechenbarkeits- und Komplexitätstheorie

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Rekursiv aufzählbare Sprachen

Einführung in die Informatik I

Berechenbarkeit. Script, Kapitel 2

Algorithmen und Programmierung

Berechenbarkeits- und Komplexitätstheorie

Zweite Möglichkeit: Ausgabe direkt auf dem Bildschirm durchführen:

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie

Grundlagen der Theoretischen Informatik

Turing-Maschine. Berechenbarkeit und Komplexität Turing-Maschinen. Turing-Maschine. Beispiel

Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom : Rekursive Datentypen

Einführung in die Informatik 1

Grundlagen der Theoretischen Informatik

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

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

Übung Theoretische Grundlagen

1 falls n ein Anfangsabschnitt der Dezimalbruchentwicklung von π ist, f(n) = 0 sonst

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

11.1 Kontextsensitive und allgemeine Grammatiken

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Theoretische Informatik 1

8. Turingmaschinen und kontextsensitive Sprachen

Die Involutfunktion Inhalt

Funktionale Programmierung. Funktionale Programmierung: Vorlesungsüberblick. Eigenschaften rein funktionaler Programmierung

1 Random Access Maschine

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015

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

8: Zufallsorakel. Wir suchen: Einfache mathematische Abstraktion für Hashfunktionen

SWP Prüfungsvorbereitung

1 Varianten von Turingmaschinen

GTI. µ-rekursive Funktionen. Hannes Diener. 20. Juni 2. Juli. ENC B-0123,

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

Wir haben eine Beziehung zwischen entscheidbar und rekursiv aufzählbar hergeleitet.

Grundbegriffe der Informatik Tutorium 2

Speicher und Adressraum

Rekursive und primitiv-rekursive Funktionen

Grammatiken. Einführung

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Die Programmiersprache C Eine Einführung

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

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Der λ-kalkül. Frank Huch. Sommersemester 2015

Deterministischer endlicher Automat A ohne Ausgabe (deterministischer endlicher Akzeptor)

Wortproblem für kontextfreie Grammatiken

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

Abschnitt: Algorithmendesign und Laufzeitanalyse

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

Theorie der Informatik (CS206) Turingmaschine, LOOP-Programme, primitiv-rekursive Fkt, GOTO-Prog

Einführung in die Theoretische Informatik

Theoretische Grundlagen der Informatik

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)

Rekursive Funktionen

Grundzüge der Informatik Zahlendarstellungen (7)

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

Beispiel: Fibonacci-Zahlen

Assembler-Programmierung

Datenstrukturen & Algorithmen

Übungen zu Programmierung I - Blatt 8

Resolutionsalgorithmus


Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

6.1 Natürliche Zahlen 6.2 Induktion und Rekursion 6.3 Ganze, rationale, reelle und komplexe Zahlen 6.4 Darstellung von Zahlen

Transkript:

GOTO simuliert Turingmaschinen Wir wissen bisher: LOOP ( GOTO = WHILE TM Jetzt zeigen wir, dass auch WHILE = TM gilt: Die Turingmaschine M =(Z,,,,z 1,, E) berechne f. Wir simulieren M mit einem GOTO-Programm der Form M 1 : P 1 ; M 2 : P 2 ; M 3 : P 3 P 1 soll die Anfangswerte in eine Anfangskonfiguration der Turingmaschine M umwandeln. P 2 macht die eigentliche Arbeit (s.u.) P 3 erzeugt das Ergebnis in x 0. Einheit 9 Folie 9.1

TM-Konfiguration im GOTO-Programm Eine Konfiguration der TM sei z l mit, 2 und z l 2 Z. Es sei Z = {z 1,...,z k }, ={a 1,...,a m } und b > m. Wir repräsentieren durch eine -stellige b-näre Zahl; wenn = a i1 a i2...a ip ist, dann stellen wir das mit der Zahl x dar: x = pp µ=1 i µ b p µ Entsprechend sei = a j1 a j2...a jq dargestellt durch: y = qp =1 j b 1 Der Zustand z l wird durch die Zahl z = l dargestellt. (x,y,z) beschreibt nun eindeutig eine Konfiguration der TM. Einheit 9 Folie 9.2

Aufbau des GOTO-Programms P 1 : Erzeuge Anfangskonfiguration z 1 bin(x 1 )#...#bin(x k ) aus Werten x 1,...,x k, d.h. x = 0, z = 1, y =? P 2 : Führe Schritt-für-Schritt-Simulation der Turingmaschine aus. P 3 : In der Konfiguration z e bin(y) berechne y und speichere den Wert in x 0. Wie funktioniert das alles? Die Programmteile P 1 und P 3 sollten klar sein. Wir kümmern uns nur noch um den mittleren Teil P 2. Einheit 9 Folie 9.3

Schritt-für-Schritt-Simulation M 2 : IF z ist Endzustand THEN GOTO M 3 ; a := y MOD b; IF (z = 1) AND... IF (z = i) AND(a = j) THENGOTOM ij ;... alle Kombinationen! IF (z = k) AND... M 11 : Programmsequenz für (z 1, a 1 ) GOTO M 2 ; M 12 : Programmsequenz für (z 1, a 2 ) GOTO M 2 ; M km : Programmsequenz für (z k, a m ) GOTO M 2 ; Einheit 9 Folie 9.4

Simulation der TM-Übergänge M ij Zuerst der Fall Nun der Fall (z i, a j )=(z i 0, a j 0, N): z := i 0 ; y := b (y DIV b)+j 0 ; (z i, a j )=(z i 0, a j 0, R): z := i 0 ; y := y DIV b; x := b x + j 0 ; WICHTIG: Man sollte sich unbedingt klarmachen, warum die hier angegebenen Berechnungen genau den erwünschten Effekt haben. Und zum Schluss der Fall (z i, a j )=(z i 0, a j 0, L): z := i 0 ; y := b 2 (y DIV b)+b j 0 +(x MOD b); x := x DIV b; Einheit 9 Folie 9.5

Zusammenfassung Satz: Jede Turing-berechenbare Funktion ist auch GOTO-berechenbar. Damit haben wir gezeigt: LOOP ( GOTO = WHILE = TM Einheit 9 Folie 9.6

2.4 Primitive Rekursion Induktive Definition: Konstante Funktionen sind primitiv rekursiv. Projektionen sind primitiv rekursiv. s : N! N mit s(n) =n + 1 ist primitiv rekursiv. Funktionen, die durch Einsetzen aus primitiv rekursiven Funktionen entstehen, sind primitiv rekursiv. Funktionen, die durch primitive Rekursion aus primitiv rekursiven Funktionen entstehen, sind primitiv rekursiv: f (0, x 1,...,x k )=g(x 1,...,x k ) f (n + 1, x 1,...,x k )=h(f (n, x 1,...,x k ), n, x 1,...,x k ) (D.h. g : N k! N, h : N k+2! N, beide prim.rek. =) f : N k+1! N prim.rek.) Einheit 9 Folie 9.7

Das Prinzip der primitiven Rekursion Zeige zum Beispiel, dass add: N 2! N primitiv rekursiv ist: Wähle g(x) =x und h(z, n, x) =s(z) (beide primitiv rekursiv?) Beachte zunächst, dass h(z, n, x) =s( 1 3 (z, n, x)), alsoh = s 3 1 gilt! Also ist h primitiv rekursiv! Für g ist das ohnehin klar... Prüfe dann (z.b. mit Induktion), dass f (y, x) =y + x gilt, d.h. f = add. Welche Funktion erhalten wir im folgenden Beispiel? g(x) =0 und h(z, n, x) =add(z, x) (beide offenbar prim.rek.!) Es gilt f (0, x) =g(x) =0und f (n + 1, x) =h(f (n, x), n, x) =add(f (n, x), x) =f (n, x)+x. Also erhalten wir f (y, x) =y x falls das nicht klar ist, Induktion verwenden! Und nun? g() = 0 und h(z, n) =n (auch hier beide prim.rek.!) Hier erhält man die Dekrement-Funktion (selbst nachprüfen!). Wie schafft man die modifizierte Subtraktion? Benutze Dekrement statt s in der Konstruktion von add (s.o.). Einheit 9 Folie 9.8

Weitere Beispiele Die folgenden Operationen können alle unter geeigneter Verwendung von Projektionen und Einsetzungen primitiv rekursiv realisiert werden: Identifikation von Variablen: Sei f (x 1,...,x k ) primitiv rekursiv. Dann ist auch g prim. rek.: g(x 1,...,x k 1 )=f (x 1,...,x k 1, x k 1 ) Fiktive Variablen: Sei f (x 1,...,x k ) primitiv rekursiv. Dann ist auch g prim. rek.: g(x 1,...,x k, x k+1 )=f (x 1,...,x k ) Vertauschte Variablen: Sei f (x 1,...,x k ) primitiv rekursiv. Dann ist auch g prim. rek.: g(x 1,...,x k )=f (x 1,...,x k 2, x k, x k 1 ) Einsetzen mit verschiedenen Variablen. Einheit 9 Folie 9.9