Theoretische Informatik II
|
|
|
- Jörg Biermann
- vor 9 Jahren
- Abrufe
Transkript
1 Theoretische Informatik II Einheit 4.2 Rekursive Funktionen 1. Primitiv- und µ-rekursive Funktionen 2. Analyse und Programmierung 3. Äquivalenz zu Turingmaschinen
2 Berechenbarkeit auf N ohne Maschinenmodelle Welche Arten von Funktionen sind berechenbar? Primitive Funktionen müssen berechenbar sein Nachfolger: von einer Zahl zur nächsten weiterzählen Projektion: aus einer Gruppe von Werten einen herauswählen Konstante: unabhängig von der Eingabe eine feste Zahl ausgeben Berechenbare Funktionen sind zusammensetzbar Einfache Operationen erzeugen neue berechenbare Funktionen Komposition: Hintereinanderausführen mehrerer Berechnungen Rekursion: Bei der Ausführung ruft eine Funktion sich selbst wieder auf Suche: Bestimmung der ersten Nullstelle einer Funktion Beschreibung benötigt keine Funktionsargumente Es reicht, primitive Grundfunktionen und Operationen zu benennen Abstrakte Programmiersprache : wende Operationen auf Funktionen an Mathematischer Kalkül für das informatiktypische Baukastensystem Theoretische Informatik II 4.2: 1 Rekursive Funktionen
3 Bausteine µ-rekursiver Funktionen Grundfunktionen Nachfolgerfunktion s :N N mit s(x) = x+1 für x N Projektionsfunktionen prk n :Nn N mit prk n(x 1,.., x n ) = x k (1 k n) Konstantenfunktion c n k :Nn N mit c n k (x 1,.., x n ) = k (0 n) Operationen auf Funktionen Komposition f (g 1,.., g n ) :N k N (g 1,.., g n :N k N, f:n n N) Für h = f (g 1,.., g n ) gilt h( x) = f( g 1 ( x),.., g n ( x) ) Primitive Rekursion P r[f, g] :N k N (f:n k 1 N, g:n k+1 N) Für h = P r[f, g] gilt h( x, 0) = f( x), und h( x, y+1) = g( x, y, h( x, y)) µ-operator (Minimierung) µf :N k N (f:n k+1 N) miny f( x, y)=0} falls dies existiert und Für h = µf gilt h( x) = alle f( x, i), i<y definiert sonst Theoretische Informatik II 4.2: 2 Rekursive Funktionen
4 Operationen entsprechen Programmstrukturen Komposition ˆ= Folge von Anweisungen y 1 := g 1 (x 1,..,x m );. y n := g n (x 1,..,x m ); h := f(y 1,..,y n ) (h ˆ= h(x 1,.., x m ) für h = f (g 1,.., g n )) Primitive Rekursion ˆ= umgekehrte Zählschleife h := f(x 1,..,x n ); for i:=1 to y do od h := g(x 1,..,x n,i-1,h) (h ˆ= h(x 1,.., x n, y) für h = P r[f, g]) Minimierung ˆ= Suche mit While-schleife y := 0; while f(x 1,..,x n,y) 0 do (unbegrenzte Suche) y:=y+1 od; h := y (h ˆ= h(x 1,.., x n ) für h = µf Theoretische Informatik II 4.2: 3 Rekursive Funktionen
5 Primitiv- und µ-rekursive Funktionen f:n k N primitiv-rekursiv f ist Nachfolger-, Projektions- oder Konstantenfunktion f entsteht aus primitiv-rekursiven Funktionen durch Komposition oder primitive Rekursion Primitiv-rekursive Funktionen sind total (terminieren immer) f:n k N µ-rekursiv (kurz rekursiv) f ist Nachfolger-, Projektions- oder Konstantenfunktion f entsteht aus µ-rekursiven Funktionen durch Komposition, primitive Rekursion oder Minimierung µ-rekursive Funktionen können partiell sein Kurzbezeichnungen PR: Menge der primitiv-rekursiven Funktionen T R: Menge der totalen µ-rekursiven Funktionen R: Menge der µ-rekursiven Funktionen Theoretische Informatik II 4.2: 4 Rekursive Funktionen
6 Beispiel einer primitiv-rekursiven Funktion f 1 = P r[pr 1 1, s pr3 3 ] Was macht f 1? Stelligkeitsanalyse: pr 1 1:N N, pr 3 3:N 3 N, s pr 3 3:N 3 N f 1 : N 2 N Auswertung durch schrittweises Einsetzen Beispiel: f 1 (2, 2) = 4 Einsetzen des Definitionsschemas bei Operationen Direkte Auswertung von Argumenten bei Grundfunktionen Analyse des rekursiven Verhaltens: f 1 (x, 0) = pr 1 1(x) = x f 1 (x, y+1) = (s pr 3 3)(x, y, f 1 (x, y)) = s(f 1 (x, y)) = f 1 (x, y)+1 Das ist die Rekursionsgleichung } der Addition x+0 = x f 1 = add mit add(n, m) = n+m x+(y+1) = (x+y)+1 Theoretische Informatik II 4.2: 5 Rekursive Funktionen
7 Analyse µ-rekursiver Funktionen f 2 = µc 2 1 f 2 (x) = = miny c 2 1(x, y)=0} falls y existiert und alle c 2 1(x, i), i<y definiert sonst miny 1 = 0} falls dies existiert sonst f 3 = µf 1 f 3 (x) = f 4 = µh mit h(x, y) = = 0 falls x = 0 sonst 0 falls x = y sonst 0 falls x = 0 f 4 (x) = sonst h(x, y) = 0 für x = y aber ist h für x>0 und y<x nicht definiert Theoretische Informatik II 4.2: 6 Rekursive Funktionen
8 Programmierung µ-rekursiver Funktionen Vorgängerfunktion p : N N p(n) = n 1 Finde Programm im Kalkül der µ-rekursiven Funktionen Analysiere rekursives Verhalten: p(0) = 0 1 = 0 p(y+1) = (y+1) 1 = y Beschreibe Verhalten als Primitive Rekursion: Benötigt: f:n 0 N mit p(0) = f() = 0 f = c 0 0 und g:n 2 N mit p(y+1) = g(y, p(y)) = y g = pr1 2 p = P r[c 0 0, pr2 1 ] Theoretische Informatik II 4.2: 7 Rekursive Funktionen
9 Beispiele primitiv-rekursiver Funktionen Subtraktion sub : N 2 N sub(n, m) = n m sub(x, 0) = x = pr1(x) 1 sub(x, y+1) = x (y+1) = (x y) 1 = p(x y) = (p pr3)(x, 3 y, sub(x, y)) sub = P r[pr1, 1 p pr3] 3 Multiplikation mul : N 2 N mul(n, m) = n m mul(x, 0) = 0 = c 1 0(x) mul(x, y+1) = mul(x, y)+x = (add (pr1, 3 pr3))(x, 3 y, mul(x, y)) mul = P r[c 1 0, (add (pr1, 3 pr3))] 3 Exponentiierung exp : N 2 N exp = P r[c 1 1, (mul (pr1, 3 pr3))] 3 exp(n, m) = n m Fakultät fak : N N fak = P r[c 0 1, (mul (s pr1, 2 pr2))] 2 Signum-Funktion sign : N N sign(n) = sign = P r[c 0 0, c 2 1] fak(n) = n! = 1*2*...*n 0 falls n = 0 1 sonst Theoretische Informatik II 4.2: 8 Rekursive Funktionen
10 Primitiv-rekursive Programmiertechniken Definition durch Fallunterscheidung h( x) = f( x) falls test( x) = 0 g( x) sonst (f, g, test:n k N primitiv-rekursiv) Wende Signum-Funktion auf Testergebnis an und multipliziere auf h( x) = (1 sign(test( x))) f( x) + sign(test( x)) g( x) h = add (mul (sub (c 1 1, sign test), f), mul (sign test, g)) Generelle Summe Σ r i=0f( x, i) Generelles Produkt Π r i=0 f( x, i) (f:nk+1 N p.r.) 0 i=0 f( x, i) = f( x, 0) y+1 i=0 f( x, i) = ( y i=0 f( x, i)) + f( x, y + 1) Σf = P r[f (pr 1 1, c 1 0), add (pr 3 3, f (pr 3 1, s pr 3 2))] Πf = P r[f (pr 1 1, c 1 0), mul (pr 3 3, f (pr 3 1, s pr 3 2))] Theoretische Informatik II 4.2: 9 Rekursive Funktionen (für k=1) Lösungen für k>1 analog
11 Primitiv-rekursive Programmiertechniken Beschränkte Minimierung h( x, t) = miny t f( x, y) = 0} falls dies existiert t+1 sonst Schreibweise: h( x, t) = Mn t [f]( x) Rekursives Verhalten: 0 fallsf( x, 0) = 0 h( x, 0) = = sign(f( x, 0)) 1 sonst h( x, t) falls h( x, t) t h( x, t+1) = t+1 falls h( x, t) = t+1 und f( x, t+1) = 0 t+2 sonst Programmierbar mit Fallunterscheidung und primitiver Rekursion (aufwendiger Ausdruck) h ist primitiv rekursiv, wenn f primitiv rekursiv ist Theoretische Informatik II 4.2: 10 Rekursive Funktionen
12 Weitere primitiv-rekursive Funktionen Absolute Differenz absdiff : N 2 N absdiff (n, m) = n m Maximum max : N 2 n falls n m N max(n, m) = m sonst Minimum min : N 2 m falls n m N min(n, m) = n sonst Division div : N 2 N div(n, m) = n m Divisionsrest mod : N 2 N Quadratwurzel sqrt : N N Logarithmus ld : N N mod(n, m) = n mod m sqrt(n) = n ld(n) = log 2 n Größter gemeinsamer Teiler ggt : N 2 N Kleinstes gemeinsames Vielfaches kgv : N 2 N Beweise in Übungen Theoretische Informatik II 4.2: 11 Rekursive Funktionen
13 Berechenbare Numerierung von Zahlenpaaren x, y := (x+y)(x+y+1) 2 + y Standard-Tupelfunktion :N 2 N ist primitiv-rekursiv und bijektiv Die Umkehrfunktionen π 2 i := pr2 i 1 sind primitiv-rekursiv kann iterativ auf N k N und auf N N fortgesetzt werden x, y, z 3 = x, y, z,..., x 1...x k = k, x 1,.., x k k Alle Funktionen sind bijektiv und primitiv-rekursiv Alle Umkehrfunktionen π k i und π i sind primitiv-rekursiv Jede rekursive Funktion kann einstellig simuliert werden Für f:n 2 N und g:=f (π 2 1, π 2 2) gilt g : N N und g x, y = f(x, y) Theoretische Informatik II 4.2: 12 Rekursive Funktionen
14 Die Ackermann-Funktion (1928) Definiere Funktionen A n iterativ: A 0 (x) := 1 falls x = 0 2 falls x = 1 x+2 sonst A n+1 (0) := 1 Jede der Funktionen A n ist primitiv-rekursiv Wachstumsverhalten A 1 (x) = 2x (x 1) A 2 (x) = 2 x A 3 (x) = 2 (2(2...2) ) }} x mal A 4 (0) = 1 A 4 (1) = 2 Definiere A(x) := A x (x) A 4 (2) = 2 2 = 4 A n+1 (x+1) := A n (A n+1 (x)) A 4 (3) = = A 4 (4) = 2 (2(2...2) ) }} mal A 4 (5) = 2 (2(2...2) ) }} A 4 (4) mal (Große Ackermann-Funktion) A nicht primitiv-rekursiv: A wächst schneller als jede p.r. Funktion A µ-rekursiv: Abarbeitung des Berechnungsstacks programmierbar Theoretische Informatik II 4.2: 13 Rekursive Funktionen
15 Min-rekursive Funktionen Funktionsdefinition ohne primitive Rekursion f:n k N min-rekursiv f ist Addition, Nachfolger-, Projektions- oder Konstantenfunktion f entsteht aus min-rekursiven Funktionen durch Komposition oder Minimierung Wichtiger Sonderfall für Vergleiche mit anderen Modellen R min : Menge der min-rekursiven Funktionen R min R: min-rekursive Funktionen sind µ-rekursiv Offensichtlich, da Additition µ-rekursiv ist R R min : µ-rekursive Funktionen sind min-rekursiv Beschreibe Abarbeitung des Stacks einer primitiven Rekursion Suche nach erstem erzeugten Stack der Länge 1 (Details aufwendig) Theoretische Informatik II 4.2: 14 Rekursive Funktionen
16 Ausdruckskraft rekursiver Funktionen Es gilt PR T R R Teilmengenbeziehung gilt offensichtlich T R R: nicht alle rekursiven Funktionen sind total (z.b. f 3 = µ add) PR T R: die Ackermannfunktion ist total, aber nicht primitiv rekursiv R T : rekursive Funktionen sind Turing-berechenbar Alle Grundfunktionen sind konventionell berechenbar Komposition, Primitive Rekursion und µ-operator sind berechenbar Konventionell berechenbare Funktionen sind Turing-berechenbar T R: Turing-berechenbare Funktionen sind rekursiv Codiere Konfigurationen (Worttupel) als Zahlentupel Simuliere Konfigurationsübergänge als primitiv-rekursive Funktionen Beschreibe Terminierung von als Suche nach Endkonfiguration Semantik der Turingmaschine ist Iteration von bis Terminierung Theoretische Informatik II 4.2: 15 Rekursive Funktionen
17 Konsequenzen der Äquivalenzbeweise Für formale Argumente zur Berechenbarkeit können wahlweise Turingmaschinen oder µ-rekursive Funktionen eingesetzt werden Kleene Normalform Theorem: Für jede berechenbare Funktion h kann man primitivrekursive Funktionen f und g konstruieren, so daß h(x) = g(x, µf(x)) Simuliere Turingmaschine für h als µ-rekursive Funktion f ist die Funktion, die Terminierung charakterisiert µf berechnet die Anzahl der Schritte bis zur Terminierung g berechnet die Iteration der Konfigurationsübergänge Berechenbare Funktionen kommen mit einer einzigen Minimierung (While-Schleife) aus Theoretische Informatik II 4.2: 16 Rekursive Funktionen
Typen von Programmiersprachen
Typen von Programmiersprachen Berechenbarkeitstheorie: Formalisierung des intuitiven Berechenbarkeitsbegriffs man kann vier Typen von Programmiersprachen zum Berechnen von Zahlenfunktionen unterscheiden:
1.3 Primitiv rekursive und µ-rekursive Funktionen
Definition 1.11 Die Klasse der primitiv rekursiven Funktionen (a) Basisfunktionen: (1.) die konstanten Funktionen c (c N) (2.) die Projektionen Π m i (x 1,...,x m ) = x i (1 i m) (3.) die Nachfolgerfunktion
Rekursive Funktionen
Rekursive Funktionen Christoph Kreitz & Nuria Brede Institut für Informatik, Universität Potsdam, 14482 Potsdam Zusammenfassung Dieser Artikel gibt einen Überblick über die primitiv- und µ-rekursiven Funktionen.
Primitiv rekursive und µ-rekursive Funktionen
Primitiv rekursive und µ-rekursive Funktionen Loop-, While- und Goto-Programme sind vereinfachte imperative Programme und stehen für imperative Programmiersprachen, bei denen Programme als Folgen von Befehlen
Primitiv rekursive und µ-rekursive Funktionen
Primitiv rekursive und µ-rekursive Funktionen Slide 1 Primitiv rekursive und µ-rekursive Funktionen Hans U. Simon (RUB) Email: [email protected] Homepage: http://www.ruhr-uni-bochum.de/lmi Primitiv rekursive
Primitiv rekursive Funktionen
Primitiv rekursive Funktionen Primitiv rekursive Funktionen Historisch: Die Einführung der primitiven Rekursivität war ein erster (und erfolgloser) Versuch, den Begriff der Berechenbarkeit (oft synonym
ALP I Rekursive Funktionen
ALP I Rekursive Funktionen SS 2011 Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle Text λ-kalkül Kombinatorische Logik Allgemein rekursive
GTI. Hannes Diener. 18. Juni. ENC B-0123,
GTI Hannes Diener ENC B-0123, [email protected] 18. Juni 1 / 32 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5.
Theorie der Informatik Einleitung. Theorie der Informatik Basisfunktionen und Einsetzung Primitive Rekursion. 14.
Theorie der Informatik 16. April 2014 14. primitive Rekursion und µ-rekursion Theorie der Informatik 14. primitive Rekursion und µ-rekursion 14.1 Einleitung 14.2 Basisfunktionen und Einsetzung Malte Helmert
Def.: Die Menge der LOOP-Programme ist induktiv wie folgt definiert:
3. LOOP-, WHILE- und GOTO-Berechenbarkeit 3.1 LOOP-Programme Komponenten: Variablen: x 0, x 1, x 2,, y, z, Konstanten: 0, 1, 2, Trennsymbole: ; := Operationszeichen: +, - Schlüsselwörter: LOOP, DO, END
Mitschrift BFS WS 13/14
Mitschrift BFS WS 13/14 Stand: 4. Juni 2014 Dieses Skript zum Teil Primitive und µ-rekursion der Vorlesung Berechenbarkeit und Formale Sprachen im Wintersemester 2013/14 bei Prof. Wanka wurde von untenstehenden
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
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: ; :=
Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I µ-rekursive Funktionen WS 2012/2013 Primitiv-rekursive Funktionen Jede primitiv-rekursive Funktion ist Loop-berechenbar. Das bedeutet, dass jede PR-Funktion in der Loop-Programmiersprache formuliert
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
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
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 [email protected] 1 Grundlagen Theoretischer Informatik 2 Gesamtübersicht Organisatorisches; Einführung Ersetzungsverfahren:
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
Proseminar Theoretische Informatik - WS07/08 - Prof. Helmut Alt. I. Einleitung Berechnungsmodelle LOOP, WHILE, GOTO, rekursive Funktionen
Proseminar Theoretische Informatik - WS07/08 - Prof. Helmut Alt I. Einleitung Berechnungsmodelle LOOP, WHILE, GOTO, rekursive Funktionen Berechenbarkeitsmodelle Welchen Sinn haben diese? Wie kann man effizient
Theoretische Informatik II
Theoretische Informatik II Einheit 5.3 Funktionale & Logische Programme 1. Der λ-kalkül 2. Arithmetische Repräsentierbarkeit 3. Die Churchsche These Der λ-kalkül Grundlage funktionaler Programmiersprachen
Theoretische Informatik II
Theoretische Informatik II Einheit 5.3 Funktionale & Logische Programme 1. Der λ-kalkül 2. Arithmetische Repräsentierbarkeit 3. Die Churchsche These Der λ-kalkül Grundlage funktionaler Programmiersprachen
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:
Unentscheidbarkeitssätze der Logik
Unentscheidbarkeitssätze der Logik Elmar Eder () Unentscheidbarkeitssätze der Logik 1 / 30 Die Zahlentheorie ist nicht formalisierbar Satz (Kurt Gödel) Zu jedem korrekten formalen System der Zahlentheorie
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
Primitive Rekursion Basisfunktionen: Konstante Funktion: const Stelligkeit. Wert des Ergebnisses. Unabhängig von den Parametern. const (,, pr,(g,h) (,)) Stelligkeit. Projektion: proj Gibt die Komponente
Theoretische Informatik
Theoretische Informatik Prof. Meer, Dr. Gengler Aufgabenblatt 12 Besprechung in KW 03 / Abgabe in KW 04 Heften Sie unbedingt alle Blätter Ihrer Lösung zusammen und geben Sie oben auf dem ersten Blatt Ihren
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
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: ; :=
Rekursive Funktionen Basisfunktionen
Rekursive Funktionen Basisfunktionen die nullstellige Funktion Z, die den konstanten Wert 0 liefert, die Funktion S : N N, bei der jeder natürlichen Zahl ihr Nachfolger zugeordnet wird, die Funktion P
Grundlagen der Theoretischen Informatik II
1 Grundlagen der Theoretischen Informatik II Till Mossakowski Fakultät für Informatik Otto-von-Guericke-Universität Magdeburg Sommersemester 2015 2 Prädikate Eine Funktion, die nur die Werte 0 und 1 annimmt,
Primitive Rekursion. Alexander Hölzle
Primitive Rekursion Alexander Hölzle 14.01.2007 Inhaltsverzeichnis Motivation i 1 Rekursive Funktionen 1 1.1 Nicht berechenbare Funktionen........................ 1 1.2 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
GTI. µ-rekursive Funktionen. Hannes Diener. 20. Juni 2. Juli. ENC B-0123,
GTI µ-rekursive Funktionen Hannes Diener ENC B-0123, [email protected] 20. Juni 2. Juli 1 / 31 µ-rekursive Funktionen Kommen wir als nächstes zu unserem dritten Ansatz zur Berechenbarkeit. Diesmal
Theorie der Informatik
Theorie der Informatik 15. Ackermannfunktion Malte Helmert Gabriele Röger Universität Basel 28. April 2014 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale Sprachen III. Berechenbarkeitstheorie
Nachklausur zur Vorlesung
Lehrstuhl für Theoretische Informatik Prof. Dr. Markus Lohrey Grundlagen der Theoretischen Informatik Nachklausur Nachklausur zur Vorlesung Grundlagen der Theoretischen Informatik WS 2016/17 / 27. Februar
GOTO simuliert Turingmaschinen
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
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
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
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
Berechenbarkeits- und Komplexitätstheorie
Berechenbarkeits- und Komplexitätstheorie Verschiedene Berechenbarkeitsbegriffe, Entscheidbarkeit von Sprachen, Wachstumsordnungen und Komplexitätsklassen Inhaltsübersicht und Literatur Verschiedene Berechenbarkeitsbegriffe:
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
Einführung in die Informatik I
Einführung in die Informatik I Berechenbarkeit und Komplexität Prof. Dr. Nikolaus Wulff Berechenbarkeit Im Rahmen der Turingmaschine fiel zum ersten Mal der Begriff Berechenbarkeit. Ein Funktion f heißt
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
Injektiv, Surjektiv, Bijektiv
Injektiv, Surjektiv, Bijektiv Aufgabe 1. Geben Sie einen ausführlichen Beweis für folgende Aussage: Wenn f A B surjektiv ist und R A A A eine reflexive Relation auf A ist, dann ist R B = {( f(x), f(y)
Berechenbarkeit. Script, Kapitel 2
Berechenbarkeit Script, Kapitel 2 Intuitiver Berechenbarkeitsbegriff Turing-Berechenbarkeit WHILE-Berechenbarkeit Church sche These Entscheidungsprobleme Unentscheidbarkeit des Halteproblems für Turingmaschinen
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) =
4. Funktionen und Relationen
4. Funktionen und Relationen Nikolaus von Oresmes Richard Dedekind (1831-1916) René Descartes 1596-1650 Pierre de Fermat 1607/8-1665 Seite 1 Inhalt der Vorlesung Teil 4: Funktionen und Relationen 4.1 Funktionen:
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,
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
6.2 µ-rekursive Funktionen R p (N) (partiell rekursive Funktionen)
6.2 µ-rekursive Funktionen R p (N) (partiell rekursive Funktionen) Primitiv rekursive Funktionen P(N) Die bisher betrachteten Operationen auf Funktionen bilden totale Funktionen wieder in totalen Funktionen
Theoretische Informatik II. WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch. 1. Teilklausur Vorname:... Nachname:...
Theoretische Informatik II WS 2007/2008 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch 1. Teilklausur 11. 12. 2007 Persönliche Daten bitte gut leserlich ausfüllen! Vorname:... Nachname:... Matrikelnummer:...
Einführung in die Theoretische Informatik Tutorium IX
Einführung in die Theoretische Informatik Tutorium IX Michael R. Jung 16. & 17. 12. 2014 EThI - Tutorium IX 1 1 Entscheidbarkeit, Semi-Entscheidbarkeit und Unentscheidbarkeit 2 EThI - Tutorium IX 2 Definitionen
LOOP-Programme 1. Def (Meyer/Ritchie). LOOP-Programme werden induktiv aufgebaut aus den (Basis-) Anweisungen. Führe P X-mal aus ) LOOP-Programme 2
LOOP-Programme 1 LOOP-Programme verwenden (jeweils) endlich viele Variablen aus VAR := {X 0,X 1,X 2,...}, oft nur mit X,Y,Z,U,V,W bezeichnet, die als Register fungieren. Slide 1 Def (Meyer/Ritchie). LOOP-Programme
Die Church-Turing-These
Die Church-Turing-These Elmar Eder () Die Church-Turing-These 1 / 12 Formale Systeme Formale Systeme µ-partiellrekursive Funktionen Logikkalküle SLD-Resolution (Prolog) Chomsky-Grammatiken Turing-Maschinen
2. Algorithmische Methoden 2.1 Rekursion. 18. April 2017
2. Algorithmische Methoden 2.1 Rekursion 18. April 2017 Rekursiver Algorithmus Ein rekursiver Algorithmus löst ein Problem, indem er eine oder mehrere kleinere Instanzen des gleichen Problems löst. Beispiel
Beispiel: Fibonacci-Zahlen
Beispiel: Fibonacci-Zahlen Unendliche Reihe: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,... Fibonacci-Kaninchen: L. P. Fibonacci (1170-1250) G. Zachmann Informatik 1 - WS 05/06 Rekursion 23 Fibonacci Zahlen in der
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
Kapitel III Ringe und Körper
Kapitel III Ringe und Körper 1. Definitionen und Beispiele Definition 117 Eine Algebra A = S,,, 0, 1 mit zwei zweistelligen Operatoren und heißt ein Ring, falls R1. S,, 0 eine abelsche Gruppe mit neutralem
Kapitel 5. Entscheidbarkeit und Berechenbarkeit. 5.1 Entscheidbarkeit
Kapitel 5 Entscheidbareit und Berechenbareit Wir wenden uns nun grundsätzlichen Fragen zu, nämlich den Fragen nach der prinzipiellen Lösbareit von Problemen. Dazu stellen wir auch einen Zusammenhang zwischen
Injektiv, Surjektiv, Bijektiv
Injektiv, Surjektiv, Bijektiv Aufgabe 1. Geben Sie einen ausführlichen Beweis für folgende Aussage: Wenn f A B surjektiv ist und R A A A eine reflexive Relation auf A ist, dann ist R B = {( f(x), f(y)
THEORETISCHE INFORMATIK UND LOGIK
Was bisher geschah... Grundbegriffe, die wir verstehen und erklären können: DTM, NTM, Entscheider, Aufzähler, berechenbar/entscheidbar, semi-entscheidbar, unentscheidbar, Church-Turing-These THEORETISCHE
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
Übung zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein
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,
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
Einführung in die Berechenbarkeitstheorie
Einführung in die Berechenbarkeitstheorie Timo Kötzing 4. November 2013 1 Einleitung Dieses Dokument bietet eine kurze Einführung in die Grundlagen der Berechenbarkeitstheorie (für eine Ausführliche Behandlung
Turing-Maschine Definition
Turing-Maschine Definition Definition: Eine Turing-Maschine ist ein Quintupel M = (X, Z, z 0, Q, δ), wobei - X und Z Alphabete sind, - z 0 Z und Q Z gelten, - δ eine Funktion von (Z \ Q) (X { }) in Z (X
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:
Informatik I: Einführung in die Programmierung
Informatik I: Einführung in die Programmierung 7. Albert-Ludwigs-Universität Freiburg Bernhard Nebel 31. Oktober 2014 1 31. Oktober 2014 B. Nebel Info I 3 / 20 Um zu, muss man zuerst einmal. Abb. in Public
4. Funktionen und Relationen
Bestimmung der Umkehrfunktionen c) bei reellen Funktionen geometrisch durch Spiegelung des Funktionsgraphen an der Winkelhalbierenden y = x. y = x 3 y = x y = x y = (x+1)/2 y = x 1/3 y = 2x 1 Seite 27
Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt.
Formale Verifikation von Algorithmen 1.3 Verifikation Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt. Bisher nicht möglich
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
Mathematische Rekursion
Rekursion Mathematische Rekursion o Viele mathematische Funktionen sind sehr natürlich rekursiv definierbar, d.h. o die Funktion erscheint in ihrer eigenen Definition. Mathematische Rekursion o Viele mathematische
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.
Programmieren lernen mit Groovy Rekursion Rekursion und Iteration
Programmieren lernen mit Groovy Rekursion Seite 1 Rekursion Rekursion Ursprung lat. recurrere ~ zurücklaufen rekursive Definition Definition mit Bezug auf sich selbst Beispiel Fakultätsfunktion n! 0! =
