Primitive Rekursion. Alexander Hölzle
|
|
|
- Joachim Knopp
- vor 9 Jahren
- Abrufe
Transkript
1 Primitive Rekursion Alexander Hölzle
2
3 Inhaltsverzeichnis Motivation i 1 Rekursive Funktionen Nicht berechenbare Funktionen Primitiv rekursive Funktionen Arithmetische Funktionen Primitiv rekursive Relationen mu-operator Unbeschränkte mu-operator Beschränkte mu-operator Die Ackermann-Funktion 16 3
4 Inhaltsverzeichnis Inhaltsverzeichnis
5 Motivation, Überblick und Notation Der Begriff der Berechenbarkeit spielt neben dem der Komplexität in der klassischen theoretischen Informatik eine zentrale Rolle. Zunächst sollte man sich fragen, was das Adjektiv berechenbar überhaupt bedeutet und worauf sich dieser Begriff bezieht. Intuitiv werden viele darunter wohl verstehen, dass etwas sich errechnen lässt bzw. vorhersehbar ist. Um jedoch etwas berechnen zu können benötigt man sicherlich ein Kochrezept, also einen Algorithmus bzw. eine Funktionsvorschrift. Schließlich müssen wir auch noch klären, was man alles berechnen kann, es wird sich nämlich zeigen, dass nicht alle Funktionen berechnenbar sind. Sowohl Turing- als auch Registermaschinen sind Modelle von Maschinen. Sie nähern sich der Frage nach der Berechenbarkeit von der Seite der berechenbaren Automaten. Die jeweiligen Programme, welche auf diesen Maschinen laufen, müssen spezielle für das jeweilige Modell und die jeweilige Problemstellung zugeschnitten sein. Einen hiervon differeten (aber äquivalenten) Zugang zur Frage der Berechenbarkeit besiert auf speziellen Funktionenklassen und darauf abgeschlossenen Operationen (Verknüpfungen). Mit den so genannte rekursiven Funktionen werden wir Lösungen von Problemen beschreiben und nicht, wie es bei den Maschinenmodellen üblich ist, die einzelnen Schritte des Rechenweges. Das Modell der rekursiven Funktionen versucht also nicht eine Maschine bzw. einen Automaten nachzubilden, sondern packt das Problem der Berechnbarkeit sozusagen bei der Wurzel, d.h. es nähert sich der Frage nach der Berechenbarkeit von Seite der Algorithmen. Wir bauen uns in den nächsten Abschnitten ein System von Funktionen auf, mit Hilfe derer wir jeden Algorithmus beschreiben können. Diese Funktionen haben jeweils k N natürliche Eingabewerte n := n 1,..., n k, sind kompositional zusammensetzbar und verwenden Rekursion. Dabei definieren wir uns zunächst einen Minimalsatz von Funktionen, die wir später gleich Bausteinen zu komplexeren Berechnungen zusammensetzen werden. Mit diesen Vorbemerkungen können wir den intuitive (und wohl naive) Vorstellung der Berechenbarkeit präzisieren: Definition: Wir betrachten partielle Funktionen f : N k N und nennen diese intuitiv berechenbar, wenn es einen Algorithmus (eine Rechenvorschrift) gibt, der als Eingabe ein beliebiges k-tupel (n 1,..., n k ) natürlicher Zahlen erhält und i
6 KAPITEL 0. MOTIVATION KAPITEL 0. MOTIVATION mit der Ausgabe f(n 1,..., n k ) terminiert, falls f(n 1,..., n k ). Für solche Tupel (n 1,..., n k ), für die f(n 1,..., n k ) undefiniert ist (, d.h. f(n 1,..., n k ) = ), soll keine Ausgabe bereitgestellt werden; entweder läuft der Algorithmus endlos ohne Ausgabe oder er hält ebenfalls ohne Ausgabe an. Wie üblich bezeichnen wir mit N := 0, 1, 2, 3,... die Menge der natürlichen Zahlen inklusive der 0.
7 1 Rekursive Funktionen 1.1 Nicht berechenbare Funktionen Es gibt Probleme, die nicht vollautomatisch lösbar sind. Beispiel: Hierzu betrachte man die Funktionenschar f r : N N, wobei r eine beliebige irrationale Zahl im Intervall ]0, 1[ ist. { 1, falls n Anfangsstück des Nachkommateils von r ist f r (n) := 0, sonst. Die Funktionen f r sind für unterschiedliches r offenbar verschieden, also ist die Menge {f r : r ]0, 1[ mit r irrational} überabzählbar. Andererseits ist die Menge aller durch ein Computerprogramm berechenbarer Funktionen f : N N abzählbar, da jedes Programm durch einen endlichen Text niedergeschrieben werden kann. Die Anzahl aller endlichen Texte über einem festen endlichen Alphabet ist abzählbar. Insbesondere muss es also nicht berechenbare Funktionen f r geben. Die eben gemachte Beobachtung präzisieren wir nun im folgenden SATZ 1.1: Es gibt nicht berechenbare Funktionen f : N k {0, 1}. Beweis. Ist die Funktion f berechenbar, dann existiert ein Algorithmus A, der f berechnet. Dabei ist A ein Wort endlicher Länge über einem endlichen Alphabet Σ. Weiter sei konstatiert, dass es nur abzählbar unendlich viele Wörter endlicher Länge über einem endlichen Alphabet Σ gibt, d.h. es kann nur abzählbar unendlich viele Algorithmen über Σ geben. Gibt es aber nur abzählbar unendlich viele Algorithmen so kann es gemäß Definition nur abzählbar unendlich viele berechenbare Funktionen f : N k N geben. Nun betrachten wir die Menge aller partiellen Funktionen {f f : N k {0, 1}} und zeigen, dass diese Menge überabzählbar ist, woraus folgt, dass es nicht berechenbare Funktionen geben muss. 1
8 Primitiv rekursive Funktionen Primitiv rekursive Funktionen Angenommen, die Menge {f f : N k {0, 1}} wäre abzählbar. Dazu dürfen wir o.b.d.a. k := 1 setzen. Sei sodann f 0 (n), f 1 (n),..., f i (n),... eine Aufzählung unterschiedlicher Funktionen f i. Wir definieren g : N N mit { i g(i) := 1, f i (i) = 0 0, f i (i) = 1 Es liegt also g {f f : N k {0, 1}}. Doch gemäß Definition kann g nicht in der obigen Aufzählung vorkommen, denn g(i) unterscheidet sich im Vergleich zu f i im Wert f i (i) g(i), was zum Widerspruch führt. Als Fazit halten wir also fest, dass es beweisbar nicht berechenbare Funktionen gibt! 1.2 Primitiv rekursive Funktionen Die einfachste Klasse von rekursiven Funktionen sind die primitiv rekursiven Funktionen. Sie umfassen drei Arten von Funktionen und zwei Methoden, sie zu komplexeren Funktionen zusammenzusetzen. Definition: Die Klasse P der primitiv rekursiven Funktionen ist die kleinste Klasse, welche die Basis-Funktionen (auch Grundfunktionen genannt) Konstante Funktion, C k : N k N mit (n 1,..., n k ) c und c N, Nachfolgerfunktion (Successor), suc : N N mit n suc(n) := n + 1 Projektion (Auswahl) des j-ten Eintrags π j : N k N mit (n 1,..., n j,..., n k ) n j und 1 j k enthält und abgeschlossen ist gegen Substitution (simultanes Einsetzen): Sind g : N k N sowie h 1 : N r N,..., h k : N r N mit 1 r k primitiv rekursiv, so auch f : N k N mit f(n 1,..., n k ) = g(h 1 (n 1,..., n r ),..., h k (n 1,..., n r )). primitive Rekursion: Jede Funktion, die durch so genannte primitive Rekursion aus primitiv rekursiven Funktionen entsteht, ist primitiv rekursiv. Genauer: sind g : N k N und h : N k+2 N primitiv rekursiv, so auch f : N k+1 N mit für m 0. f(n 1,..., n k, 0) = g(n 1,..., n k ) f(n 1,..., n k, m + 1) = h(n 1,..., n k, m, f(n 1,..., n k, m))
9 c by mathematik-netz.de Wir nennen eine Funktion f primitiv rekursiv, wenn f P. Beachten Sie, dass wir gemäß Vereinbarung das k-tupel (n 1,..., n k ) auch abkürzend als n notieren können. Die Definition der primitiven Rekursion gleicht dem Induktionsprinzip für natürliche Zahlen: Ist der letzte Parameter von f echt größer 0, so wird die Teilfunktion h verwendet, um den Funktionswert f(n, m + 1) zu berechnen, und zwar in Abhängigkeit von f(n, m). Die Verankerung bildet dann f(n, 0). Es ist einsichtig, dass alle primitiv rekursiven Funktionen (also die Menge P) intuitiv berechenbar sind, denn die Basisfunktionen sind berechenbar und sowohl die Komposition als auch die primitive Rekursion erzeugen aus berechenbaren Funktionen wieder solche. Die Projektion π j kann bspw. durch ein Array A berechnet werden, wobei man als Rückgabe gerade A[i] erhält. Die Berechnung einer festen konstanten Funktion sollte ebenfalls keine Schwierigkeiten bereiten und die Nachfolgerfunktion suc(n) erhalt man durch simple Addition n + 1 den Rückgabewert. Nun zeigen wir noch durch Angabe zweier Algorithmen, dass sowohl die Komposition als auch die primitive Rekursion berechenbar sind. Substitution: Function f (N: array[1... k] of cardinal): cardinal; var NN: array[1... r] of cardinal; var i: cardinal begin end NN[1]:= h(1, N);... NN[k]:= h(k, N); f:= g(nn); Der jeweilige Arrayeintrag NN[i] speichert offensichtlich den Funktionswert von h i. In der letzten Anweisungszeile wird dann, nachdem alle Funktionswerte von h i mit 1 i k berechnet und gespeichert wurden, die Identität f(n 1,..., n k ) = g(h 1 (n 1,..., n r ),..., h i (n 1,..., n r ),..., h k (n 1,..., n r )) ausgenutzt. Diese muss gemäß Voraussetzungen bestehen. 3
10 Arithmetische Funktionen Arithmetische Funktionen Primitive Rekursion: Function f (N: array[1... (k+1)] of cardinal): cardinal; var hh, i: cardinal; begin end hh:= g(n[1], N[2],..., N[k]); i:=0; LOOP N[k+1] DO begin hh:=h(n[1],..., N[k], i, hh); i:= i+1; end f:=hh; Im nächsten Abschnitt bauen wir aus den Grundfunktionen komplexere auf, indem wir sie mittels der Substitution und primitiver Rekursion verknüpfen. 1.3 Arithmetische Funktionen, primitiv rekursiv ausgedrückt Wir zeigen nun, dass die grundlegenden arithmetischen Operationen Addition, Subtraktion, Multiplikation und Division allesamt in P liegen und sich damit primitiv rekursiv ausdrücken lassen. Die dadurch neu gewonnenen Funktionen können wir für den Aufbau weiterer Funktionen aus P einsetzen. Wie wir allerdings wissen bildet die Menge der natürlichen Zahlen N zusammen mit der üblichen Zahlen-Addition keine Gruppe, da letztlich die additiv Inversen für die meisten Werte aus N fehlen. Das heißt wir müssen insbesondere bei der Substraktion darauf achten, dass wir uns stets innerhalb der Menge N befinden. Dies bewerkstelligen wir durch eine modifizierte Definition dieser beiden Operationen. Definition: Es sei Sub : N 2 N definiert durch Sub(n, m) := { 0, falls m n n m, falls m < n. Wir nennen Sub die (allgemeine) modifizierte Subraktion und sodann ist N abgeschlossen gegebenüber Sub.
11 c by mathematik-netz.de Im weiteren bezeichnen wir mit Add(n, m) := n+m die übliche Addition, Mult(n, m) := n m, P ot(n, m) := n m die Potenzierung zweier natürlicher Zahlen. Außerdem soll F ak(n) := n! die Fakultät einer natürlichen Zahl berechnen. Oftmals notieren wir Add(n, m) auch abkürzend mit n + m; analoges soll für ähnlich elementare Funktionen gelten. Die modifizierte Subraktion notieren wir abkürzend mit Sub(n, m) = n m. Lemma 1.2: Es gilt Die Identität id, die Addition Add, die Multiplikation M ult, die Potenzfunktion P ot, die Fakultätsfunktion F ak sowie die modifizierte Subtraktion liegen in P, d.h. diese Funktionen sind allesamt primitiv rekursiv. Beweis. Die Identität kann als Projektion einer einstelligen Funktion id : N N mit id(n) := n = π 1 (n) dargestellt werden. Damit gilt id P. Die Additionsfunktion Add : N 2 N ist primitiv rekursiv, denn sie kann primitiv rekursiv dargestellt werden in der Form Add(n, 0) = id(n) Add(n, m + 1) = suc(π 3 (n, m + 1, Add(n, m))). Die logische Verbindung zwischen Add(n, m + 1) und Add(n, m) wird mit der Nachfolgerfunktion hergestellt. Die Funktion h besteht allerdings aus der Zusammensetzung der Nachfolgerfunktion suc und der Projektion π 3. Dies ist notwendig, da lediglich auf das dritte Argument von h(n, m + 1, Add(n, m)) zugegriffen werden muss. Da wir bereits wissen, dass id, suc P gilt und P gegenüber der primitive Rekursion abgeschlossen ist, folgt Add P. Genauso verfahren wir mit der Multiplikation Mult : N 2 N. Diese lässt sich primitiv rekursiv darstellen durch M ult(n, 0) = 0 (konstante Nullfunktion) Mult(n, m + 1) = Add(π 1 [n, m, Mult(n, m)], π 3 [n, m, Mult(n, m)]). 5
12 Arithmetische Funktionen Arithmetische Funktionen Gemäß Definition ist g(n) := 0 die konstante Nullfunktion und damit g P. Wieder muss die für die primitive Rekursion notwendige Funktion h die drei Argumente (n, m, M ult(n, m)) enthalten. Dies erfüllt obige Funktion offensichtlich und da wir von allen verwendeten Funktionen wissen, dass diese in P liegen, folgt damit Mult P. Aufbauend auf der Multiplikation lässt sich die m-te Potenz von n, also P ot(n, m), wie folgt darstellen: P ot(n, 0) = 1 (konstante Einsfunktion) P ot(n, m + 1) = Mult(π 1 [n, m, P ot(n, m)], π 3 [n, m, P ot(n, m)]). Da sowohl Mult als auch die konstante Einsfunktion in P liegt, folgt P ot P. Die Fakultätsfunktion ist eine einstellige Funktion, dies sollte bei der rekursiven Darstellung beachtet werden: Es folgt also F ak P. F ak(0) = 1 (konstante Einsfunktion) F ak(m + 1) = Mult(π 1 [m, F ak(m)], π 2 [m, F ak(m)]). Abschließend zeigen wir noch, dass die modifizierte Subraktion in P liegt. Dazu stellen wir Sub mit Hilfe der primitive Rekursion dar. Allerdings benötigen wir dazu noch die so genannte Vorgängerfunktion P re(n) := Sub(n, 1): P re(0) = 0 P re(m + 1) = π 2 [m, P re(m)]. (konstante Nullfunktion) Da pi, C P gilt, folgt P re P. Nun kommen wir sogleich zur primitiv rekursiven Darstellung von Sub: Sub(n, 0) = π 1 (n) Damit ist bereits Sub P gezeigt. Sub(n, m + 1) = P re(π 3 [n, m, Sub(n, m)]) Mit Hilfe der elementaren arithmetischen Funktionen können wir rekursive Funktionen schon etwas bequemer beschreiben, als wenn wir nur die Basis-Funktionen dafür verwenden würden. In der Definition der Komposition (simultanes Einsetzen) sind alle Funktionen h i mit 1 i k von denselben Argumenten (n 1,..., n r ) abhängig, wobei 1 r k gilt. Nun
13 c by mathematik-netz.de könnte es allerdings sein, dass manche der h i nicht alle Argumente oder aber die vorhandenen Argumente in einer differenten Reihenfolge benötigen. Das all dies im Rahmen von P erlaubt ist bringt folgendes Lemma zum Ausdruck. Lemma 1.3: Die Funktionenmenge P ist gegen Umordnen und Weglassen von Variablen bezüglich der Komposition abgeschlossen. Beweis. Die Menge der primitiv rekursiven Funktionen ist abgeschlossen gegenüber Umordnung der Argumente. Sei n := (n 1,..., n k ) unser Ausgangstupel mit k Positionen, f eine primitiv rekursive Funktion und m := (m 1,..., m k ) das durch Umordnung entstandene Tupel mit k Einträgen, d.h., die Einträge von m ergeben sich durch Permutation von n in k Worten. Da jede Permutation bijektiv ist, muss die entsprechende inverse Permutation π exitieren. Die Permutation π kann mit Hilfe von k Projektionen π j1,..., π jk mit 1 j i k für 1 i k und der Komposition dargestellt werden. Wie wir wissen sind Projektionen primitiv rekursiv. Also ergibt sich sodann die Darstellung: f(n) = f(π j1 (m 1 ),..., π jk (m k )) Auch das Weglassen von Argumenten, die nicht benötigt werden stört diese Argumentation nicht, da diese Argumente dann einfach festgelassen werden. Es reduziert sich dann lediglich die Anzahl der benötigten Projektionen. Ein Beispiel wird den letzten Satz veranschaulichen. Beispiel: Es sei f(v, w, x, y) eine primitiv rekursive Funktion in vier Argumenten. Besteht die Identität g(a, b, c) = f(b, b, c, a), dann ist auch die Funktion g primitiv rekursiv. D.h. man kann sämtliche Bilder von f offensichtlich auch mit Hilfe von drei Argumenten beschreiben, wie dies g ja gerade zeigt. Eine formalen Beweis kann man mit Hilfe der Komposition und der Projektion erbringen: g(a, b, c) = f(π 2 (a, b, c), π 2 (a, b, c), π 3 (a, b, c), π 1 (a, b, c)). Eine häufig verwendete Konstruktion bei der Definition von Funktionen ist die Fallunterscheidung. Wenn man die Typen von Fällen, die untersucht werden können, geeignet einschränkt, kann man auch dieses Konstrukt mit den Mitteln der primitiv rekursiven Funktionen ausdrücken. Lemma 1.4: Die Funktionenmenge P ist abgeschlossen gegen primitiv rekursive Fallunterscheidung, d.h. wenn g i, h i für 1 i k primitiv rekursiv sind, und es für alle 7
14 Primitiv rekursive Relationen Primitiv rekursive Relationen n = (n 1,..., n k ) genau ein j gibt, so dass h j (n) = 0 gilt, so ist auch folgende Funktion f primitiv rekursiv: g 1 (n), falls h 1 (n) = 0 f(n) :=...,... g k (n), falls h k (n) = 0 Beweis. Die Funktion f können wir mit Hilfe der modifizierten Subtraktion darstellen durch f(n) = g 1 (n) [1 h 1 (n)] g k (n) [1 h k (n)] und für die verwendeten Teilfunktionen, +, haben wir bereits bewiesen, dass sie in P liegen. Der eben geführte Beweis hätte auch sehr schön mit Hilfe der charakteristischen Funktion erbracht werden können. 1.4 Primitiv rekursive Relationen Die Technik, die der letzte Beweis von Lemma 1.4 verwendet, verdient genauere Betrachtung. Fallunterscheidung wird ausgedrückt mit Hilfe der primitiv rekursiven Funktionen, + und, die hier die Aufgabe logischer Konnektoren übernehmen: n m 0 n 0 und m 0. n + m 0 n 0 oder m 0. 1 n 0 n ist nicht ungleich 0. Für die weiteren Beweise benötigen wir noch den Nachweis, dass max(n, m), min(n, m) sowie { 1, falls n > 0 sg(n) := 0, falls n = 0. primitiv rekursive Funktionen sind. Wir können das Maximum als Komposition primitiv rekursiver Funktionen darstellen. max(n, m) = Add[π 1 (n, m), Sub(π 2 (n, m), π 1 (n, m))] Entsprechend lässt sich auch die Funktion min(n, m) als Komposition primitiv rekursiver Funktionen darstellen.
15 c by mathematik-netz.de min(m, n) = Sub[π 2 (n, m), Sub{π 2 (n, m), π 1 (n, m)}] Da Sub, π i, Add P folgt damit, dass min, max P. Offensichtlich ist auch die Signum-Funktion primitiv rekursiv, da gilt sgn(0) = 0 sgn(m + 1) = 1 (konstante Nullfunktion) (konstante Einsfunktion). Bemerkung 1: Künftig werden wir verstärkt Gebrauch der abkürzenden Schreibweise der bereits bekannten primitiv rekursiven Funktionen machen. Prädikate, die aus Vergleichsoperationen sowie den Operationen Negation, Disjunktion und Konjunktion aufgebaut sind, sind durch primitiv rekursive Funktionen darstellbar. Solche Prädikate werden deshalb ebenfalls primitiv rekursiv genannt: Definition: Eine Relation R N k heißt primitiv rekursiv, falls ihre charakteristische Funktion χ R primitiv rekursiv ist. Bemerkung 2: Beachten Sie, dass man mit Hilfe von Relationen auch Prädikate vollständig charakterisieren kann. Ein dreistelliges Prädikat α = X 1 X 2 X 3 gibt bspw. Beziehungen zwischen drei Subjekten, hier den Literalen, an. Wie wir wissen, können Beziehungen mit Hilfe von Relationen formuliert werden. Relationen erklären in natürlicher Art und Weise Teilmengenbeziehungen. So ist es nicht verwunderlich, dass man auch primitiv rekursive Mengen definieren kann. Beispiel: Wir zeigen nun, dass die Relationen <, und = primitiv rekursiv sind. Die Gleichheitsrelation = erhalten wir durch χ = (x, y) = 1 [(x y) + (y x)] - diese Funktion ist genau dann 0, wenn x = y gilt. Da sich χ = aus primitiv rekursiven Funktionen zusammensetzt folgt damit, dass =-Relation primitiv rekursiv ist. Die Kleinerrelation n < m erhalten wir mit Hilfe der Signum-Funktion und der modifizierten Subtraktion durch: χ < (n, m) := sgn(m n). Dies wird klar, wenn man sich 9
16 Primitiv rekursive Relationen Primitiv rekursive Relationen folgende Äquivalenzkette betrachtet: n < m m n > 0 sgn(m n) = 1. Da die Addition eine primitiv rekursive Operation darstellt, ergibt sich die Eigenschaft primitiv rekursiv der Relation (Veroderung von = und <) durch χ < +χ =. Zu beachten ist, dass sowohl χ < als auch χ = primitiv rekursiv sind und deren Summe genau dann 1 ergibt, wenn χ < oder χ = gleich 1 ist, d.h., wenn gilt χ < = 1 χ = = 1. Folgendes Lemma gibt einen ersten Einblick in die Struktur des Raumes P: Lemma 1.5: Es seien die Prädikate p, q N r primitiv rekursiv, d.h. p, q P. Dann gilt 1. Das Prädikat p q N r ist primitiv rekursiv. 2. Das Prädikat p q N r ist primitiv rekursiv. 3. Das Prädikat p N r und q N r sind primitiv rekursiv. Beweis. Zuerst zeigen wir den ersten Punkt. Es sei x := (x 1,..., x r ) N r, dann ist offensichtlich χ p q (x) = { 1,, falls x p x q 0,, falls x / p x / q = sgn(χ p (x) + χ q (x)). Da die Funktion χ p q aus Substitution bereits bekannter primitiv rekursiver Funktionen +, sgn und der charakteristischen Funktion χ A einer Menge A hervorgeht, folgt die Behauptung. Es ist diesmal χ p q (x) = { 1,, falls x p x q 0,, falls x / p x / q = sgn(χ p (x) χ q (x)). Da die Funktion χ p q aus Substitution bereits bekannter primitiv rekursiver Funktionen, sgn, χ A hervorgeht, folgt die Behauptung. Wieder definieren wir (für p)
17 c by mathematik-netz.de χ p (x) = { 1,, falls x / p 0,, falls x p = 1 χ p (x). Da die Funktion χ p aus Substitution bereits bekannter primitiv rekursiver Funktionen C,, χ A hervorgeht, folgt die Behauptung für p. Analog zeigt man die Behauptung für q. Abschließend betrachten wir noch ein typisches Beispiel in diesem Kontext. Beispiel: Es sei f : N 2 N eine primitiv rekursive Funktion. Wir zeigen, dass das Prädikat p := {(x, y, f(x, y)) (x, y) N 2 } primitiv rekursiv ist. Dazu müssen wir nachweisen, dass die charakteristische Funktion χ p primitiv rekursiv ist. χ p (x, y, z) = { 1, falls f(x, y) z = 0 0, sonst 1 sgn( z f(x, y) ). Da sich also die charakteristische Funktion aus Substitutionen bereits bekannter primitiv rekursiver Funktionen zusammensetzt, folgt die Behauptung. 1.5 Der µ-operator Da die primitiv rekursiven Funktionen P nur eine echte Teilmenge der berechenbaren Funktionen sind, muss man, um alle berechenbaren Funktionen in mathematischer Notation zu beschreiben, die Klasse P echt erweitern. Dies kann man dadurch versuchen, indem man die Klasse der elementaren Basis- Funktionen erweitert, und/oder zum anderen, indem neben der Substitution und der Rekursion weitere Konstruktionsprinzipien zugelassen werden. Es zeigt sich, dass ein weiteres Konstruktionsprinzip ausreicht, um alle berechenbaren Funktionen F berech zu erfassen. 11
18 mu-operator mu-operator Der unbeschränkte µ-operator Definition: Es sei g : N k+1 N eine totale primitiv-rekursive Funktion mit Dann heißt die Funktion g(n 1,..., n k, y) = g(n, y). f(n) = µ y [g(n, y)] die Minimalisierung von g bezüglich y, wenn gilt f(n) := { y, falls g(n, y) = 0 und g(n, z) 0 für alle z < y,, falls g(n, y) 0 für alle y N. Man nennt µ den unbeschränkten µ-operator. Da g eine totale Funktion ist, ist g(n, y) für alle (n, y) definiert. Wie mächtig die Minimalisierung für die Funktionsbildung ist, zeigen die folgenden Beispiele. Beispiel: a) f(x) := µ y [x mod 2 + y] liefert f(x) = { 0, für gerades x, für ungerades x Ist also x = 2t mit t N und damit gerade, so gilt x mod 2 = 0. Damit kann man y = 0 wählen, so dass insgesamt x mod 2 + y = 0 gilt. Ist dagegen x ungerade, also x = 2t + 1 für ein t N, so ist x mod 2 0 und damit auch x mod 2 + y 0. Deshalb existiert kein y, welches den Anforderungen genügt und somit folgt f(x) =. b) f(x) := µ y [x 2 y] liefert f(x) = x 2. Schließlich muss minimales y N gewählt werden, so dass x 2 y = 0 x 2 = y. Setzen wir dagegen f(x) := µ y [y 2 x] so ergibt sich die Minimalisierung f(x) = 0, da 0 2 x für beliebiges x N stets den Wert 0 ergibt. Dazu beachte man die Definition der modifizierten Subraktion.
19 c by mathematik-netz.de c) Sei p ein Prädikat mit Die Funktion p(x, y) := { 1, falls y eine Primzahl größer als x ist, 0, sonst. f(x) = µ y [1 p(x, y)] liefert die kleinste Primzahl, die größer als x ist. Die durch Anwendung des µ-operators auf g entstehende Funktion f : N k N gibt das kleinste y mit g(n, y) = 0 wieder, falls dieses überhaupt existiert. Existiert kein kleinstes Element, so dass g(n, y) = 0 gilt, wir also min{ } bestimmen müssen, so soll min{ } = ergeben, also undefiniert sein. Das Adjektiv undefiniert sollte einen in der theoretischen Informatik stets an die so genannten paritellen (d.h. nicht totalen) Funktionen erinnern. Das heißt, durch Anwendung des µ-operators können wirklich partielle Funktionen entstehen. So erklärt sich auch die hin und wieder verwendeten Bezeichnungen partiell-rekursiv und total-rekursiv. Erstere sind partielle µ-rekursive Funktionen und letztere total µ-rekursive Funktionen. Beispielsweise entsteht durch Anwendung des µ-operators auf die zweistellige, konstante Funktion g(x, y) = 1 die vollständig undefinierte Funktion Ω. Ist F part := {f f ist partiell-rekursiv} die Klasse der partiell µ-rekursiven Funktionen, so ist F part eine echte Obermenge der primitiv-rekursiven Funktionen. Da auch die partiell rekursiven Funktionen berechenbar sind muss F part eine Teilmenge aller berechenbaren Funktionen sein. Definition: Die Klasse F µ der µ-rekursiven Funktionen ist die kleinste Klasse von (evtl. partiellen) Funktionen, die die Basisfunktion enthält und abgeschlossen ist unter Substitution, primitive Rekursion und Anwendung des µ-operators. Entsteht f(n) durch Minimalisierung von g(n, y), so ist f(n) berechenbar, falls es ein y mit g(n, y) = 0 gibt. Ist nämlich Function g(n: array [1... k] of cardinal): cardinal eine Funktionsprozedur zur Berechnung von g, dann leistet die Prozedur Function f(n: array [1... k] of cardinal): cardinal var y:cardinal; begin 13
20 mu-operator mu-operator y:= 0; WHILE g(n,y) 0 Do y:= y +1; f:=y; end das Gewünschte. Ist jedoch g(n, y) 0 für alle y 0, so terminiert die Funktionsprozedur Function f nicht, also ist die Funktion f nicht berechenbar für das Argument n. Beispiel: Wir zeigen, dass die Funktion f : N N definiert durch f(x) := x µ-rekursiv ist. Dazu müssen wir nachweisen, dass man f, mit Hilfe von primitiv rekursiven Funktionen und des µ-operators, erzeugen kann. Um einen Hinweis auf den Lösungsweg dieser oder gleichartiger Aufgaben zu bekommen, bietet es sich an, die Definition der zu untersuchenden Funktion (hier f) näher zu betrachten: Die Quadratwurzel x der Zahl x ist die kleinste positive Zahl z N, so dass die Gleichung z 2 = x erfüllt ist. Entsprechend ergibt sich x = min{z 0 z 2 x} = min{z 0 x z 2 = 0} und somit entsteht die Funktion f durch Anwendung des µ-operators auf f bezüglich x z 2. Da wir gemäß Lemma 1.2 wissen, dass die modifizierte Differenz und die Multiplikation primitiv rekursiv sind, folgt damit bereits die Behauptung Der beschränkte µ-operator Wir wissen nun also, dass der unbeschränkte µ-operator als funktionales Äquivalent einer WHILE-Schleife interpretiert werden kann. Genau aus diesem Grund ist dieser Operator abgeschlossen bezüglich der Menge der berechenbaren Funktionen. Es existiert aber auch eine eingeschränkte Version des µ-operators - eben der beschränkte µ Operator, welcher als funktionales Äquivalent einer FOR-Schleife angesehen werden kann.
21 c by mathematik-netz.de Definition: Sei g : N k+1 definiert: N eine Funktion, dann ist der beschränkte µ-operator wie folgt y, falls g(n, y) = 0 und x < y : g(n, x) 0 und 0 y < z µ x<z [g(n, y)] := 0, falls g(n, x) 0 x mit 0 x < z oder z = 0 An der Definition können wir ablesen: Ergibt die Anwendung des beschränkten µ- Operators den Wert 0, so kann das zweierlei Gründe haben: Entweder nimmt für y den Wert 0 an (erster Fall der Definition), oder die Funktion g nimmt für kein Argument x < z den Wert 0 an (zweiter Fall der Definition). Im Gegensatz zum unbeschränkten µ-operator operiert der beschränkte µ-operator abgeschlossen auf der Menge der primitiv rekursiven Funktione P. Wenden wir also den beschränkten µ-operator auf eine beliebige primitiv rekursive Funktion an, so ist das Ergebnis dieser Operation wieder eine primitiv rekursive Funktion. Ein Beweis ist mit den bereits gewonnen Erkenntnissen nicht schwer: Wir wissen, dass primitiv rekursive Funktionen gegenüber Fallunterscheidungen und der Verknüpfung mit logischen Konnektoren invariant sind. Das auch der beschränkte µ-operator berechenbar ist liegt auf der Hand: Function f(n: array [1... k+1] of cardinal): cardinal var y:cardinal; begin end FOR y:=0 TO z DO; begin IF g(n, y) = 0 THEN return y; ELSE y:= y+1; end return 0; Abschließend untersuchen wir im folgenden Abschnitt die so genannte Ackermann- Funktion, ein Funktione die nicht primitiv rekursiv ist, jedoch berechenbar. Wir werden zeigen, dass die Ackermann-Funktion stärkter wächst als jede primitiv rekursive Funktion. 15
22 2 Die Ackermann-Funktion Zunächst definieren wir die Ackermannfunktion rekursiv: Definition: Es sei A : N 2 0 N eine Funktion mit der rekursiven Funktionsvorschrift (Ack 1 ) A(0, y) := y + 1, (Ack 2 ) A(x, 0) := A(x 1, 1) für x > 0, (Ack 3 ) A(x, y) := A(x 1, A(x, y 1))) für x > 0, y > 0. Die Funktion A nennen wir Ackermann-Funktion. Auf Grundlage dieser Definition beweisen wir einige Hilfssätze die wir später benötigen werden, um zu zeigen, dass die Ackermann-Funktion stärker wächst als jede primitiv rekursive Funktion. Lemma 2.1: Die Ackermannfunktion ist wertmäßig größer als ihr zweites Argument angibt, also gilt: A(x, y) > y für alle x, y N 0 Beweis. (durch Induktion nach x) In diesem Beweis seien x, y stets wie in der obigen Behauptung definiert. Für x = 0 gilt 0 < A(0, y) = y + 1 gemäß Definition, d.h. es gilt die Induktionsverankerung. Wir nehmen nun an, die Behauptung y < A(x, y) gelte für ein beliebiges jedoch fixiertes x und alle y (Induktionsannahme für x). Sodann müssen wir y < A(x + 1, y) für alle y zeigen. Diesen Beweis führen wir mit Induktion nach der zweiten Varialben y, d.h. wir fahren nun mit Induktion nach y fort: Nach Induktionsvoraussetzung für x gilt 1 < A(x, 1). Wir wollen nun die Induktionsverankerung für y = 0 zeigen, das also 0 < A(x + 1, 0) gilt. Gemäß Definition (Ack 2 ) ist A(x + 1, 0) = A(x, 1) und wie wir wissen gilt A(x, 1) > 1 > 0. Somit haben wir also den Induktionsanfang für y bewiesen. 16
23 c by mathematik-netz.de Nehmen wir nun an, die Behauptung gelte für x + 1 und y, d.h. es gilt y < A(x + 1, y). Es ist dann zu zeigen, dass y + 1 < A(x + 1, y + 1) folgt. Wir setzen in die Induktionsannahme für x (also in y < A(x, y)) den speziellen Wert A(x+1, y) für das zweite Argument y ein und erhalten: A(x+1, y) < A(x, A(x+1, y)) = A(x + 1, y + 1). Zusammen mit der Induktionsannahme für y -und dem vorher Gesagtemergibt sich also y + 1 < A(x + 1, y + 1). Lemma 2.2: Desweiteren wächst A(x, y) streng monoton im y-argument, also gilt: A(x, y) < A(x, y + 1) für x 0, q 0. Beweis. Für x = 0 ist A(0, y) = y + 1 < y + 2 = A(0, y + 1). Für alle anderen x, d.h. für x > 0 folgt die Behauptung mit Hilfe des letzten Lemma [vgl. (1)]. Dazu substituieren wir y := A(x, y) und x := x 1 in (1). A(x, y ) > y für alle x, y N 0 (2.1) A(x 1, A(x, y)) > A(x, y). (2.2) Aus (3) ergibt sich gemäß Definition (Ack 2 ) der Ackermannfunktion A(x, y) < A(x, y+ 1). Eine weitere wichtige Eigenschaft ist die im nun folgenden Lemma formulierte: Lemma 2.3: Die Ackermannfunktion A(x, y) wächst im ersten Argument stärker als im zweiten Argument, also gilt: A(x, y + 1) A(x + 1, y) für x 0, y 3. Beweis. (durch Induktion nach y) Der Induktionsanfang für y = 0 gilt, da offensichtlich A(x, 0 + 1) A(x + 1, 0) = A(x, 1) gilt, wobei die letzte Identität durch (Ack 2 ) folgt. Wir nehmen nun an, dass die Induktionsvoraussetzung A(x, y + 1) A(x + 1, y) für alle x 0 und fixiertes y 3. Nach Lemma 1 ist y + 1 < A(x, y + 1), also gilt auch y + 2 A(x, y + 1) A(x + 1, y) aufgrund der Induktionsannahme. Mit Lemma 2 und der eben gemachten Abschätzung, sowie mit (Ack 3 ) ergibt sich damit A(x, y + 2) A(x, A(x + 1, y)) = A(x + 1, y + 1) was zu zeigen war. Analoges zu Lemma 2 gilt auch für das erste Argument der Ackermannfunktion: 17
24 KAPITEL 2. DIE ACKERMANN-FUNKTION KAPITEL 2. DIE ACKERMANN-FUNKTION Lemma 2.4: A(x, y) wächst streng monoton im x-argument, also gilt: A(x, y) < A(x + 1, y). Beweis. Mit Lemma 2 und Lemma 3 erhält man unmittelbar: A(x, y) < A(x, y + 1) A(x + 1, y). Die eben bewiesenen Lemmata können dazu benutzt werden, um zu zeigen, dass es eine Konstante k N 0 gibt, so dass n A(k i, y), n 1, i=1 für beliebige Konstanten k i N 0 und alle y > 2 gilt. Beweis. Der Fall n = 1 ist trivial, denn die Ackermann ist monoton steigend im ersten Argument, so ist also nur k > k 0 zu wählen. Sei nun n = 2 und k max := max{k 1, k 2 } das Maximum der beiden Konstanten. Dann gilt: A(k 1, y) + A(k 2, y) 2A(k max, y) = A(1, A(k max, y)) < A(k max + 1, A(c max + 2, y)) = A(k max + 2, y + 1)) < A(k, y) Setzen wir also nun k := k max + 3 so folgt die Behauptung für diesen Fall. Ist n 2, so ergibt sich durch Induktion nach n: n+1 n+1 A(k i, y) = (A(k 1, y) + A(k 2, y)) + A(k i, y) i=1 i=3 < A(ˆk, y) + A( k, y) (gemäß Induktionsvoraussetzung) < A(k, y) (gemäß Induktionsvoraussetzung) Die eben nachgewiesene Eigenschaft lässt vermuten, dass die Ackermannfunktion stärker wächst als jede andere primitiv-rekursive Funktion, wenn man nur das erste Argument hinreichend groß genug wählt.
25 c by mathematik-netz.de Nun zeigen wir, dass es zu jeder primitiv rekursiven Funktion f : N r 0 Nr 0 ein k N 0 gibt, derart dass f(x 1, x 2,..., x r ) < A(k, x 1, x 2,..., x r ) mit x 1 + x x r > 2, gilt. Um dies zu beweisen, genügt es, die Gültigkeit dieser Aussage für die elementaren Funktionen, die Substitution und die Rekursion nachzuweisen. a) Nullfunktion C r 0 (x 1, x 2,..., x r ) = 0 < A(0, 0) < A(0, x 1 + x x r ). b) Nachfolgerfunktion suc(x 1 ) = x < A(0, x 1 ). c) Projektionsfunktion π r i (x 1, x 2,..., x r ) = x i < A(0, x 1 + x x r ). d) Substitution: Es sei g(x 1, x 2,..., x r ) < A(0, x 1 + x x r ), h i (x 1, x 2,..., x m ) < A(k i, x 1 + x x m ) für 1 i r. f(x 1, x 2,..., x m ) = g(h 1,..., h r ) < A(k 0, h h r ) < A(k 0, A(c 1, x x m ) A(c r, x x m )) < A(k 0, A(ˆk, x x m )) < A(k 0 + ˆk, A(ˆk + k 0 + 1, x x m )) = A(k 0 + ˆk + 1, x x m ) = A(k, x x r ). d) Rekursion: Es seien g(x 1,..., x r ) < A(0, x x r ) und h i (x 1,..., x r+2 ) < A(k 1, x x r+2 ). f(x 1, x 2,..., x r, 0) = g(x 1,..., x r ) < A(k 0, x x r + 0) Induktionsannahme: f(x 1,..., x r+1, 0) < A(ˆk, x x r+1 ) für n r+1 0. Induktionsschritt: f(x 1,..., x r+1 + 1) = h(x 1,..., x r+1, f(x 1,..., x r+1 )) < A(k 1, x x r+1 + f(x 1,..., x r+1 )) < A(k 1, x x r+1 + A(ˆk, x 1,..., x r+1 )) < A(k 1, A(0, x x r+1 ) + A(ˆk, x 1,..., x r+1 )) A(k 1, A(k 2, x x r+1 )) < A(k 1 + k 2, A(k 1 + k 2 + 1, x x r+1 )) = A(k 1 + k 2 + 2, x x r+1 + 1) < A(k 1 + k 2 + 2, x x r+1 ) = A(k, x x r+1 ) 19
26 KAPITEL 2. DIE ACKERMANN-FUNKTION KAPITEL 2. DIE ACKERMANN-FUNKTION Weiterhin viel Spaß mit der Informatik! und
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
Theoretische Informatik II
Theoretische Informatik II Einheit 4.2 Rekursive Funktionen 1. Primitiv- und µ-rekursive Funktionen 2. Analyse und Programmierung 3. Äquivalenz zu Turingmaschinen Berechenbarkeit auf N ohne Maschinenmodelle
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 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
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
Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen
Mächtigkeit von LOOP-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Die Programmiersprache LOOP Syntax Elemente eines LOOP-Programms Variablen
Typen von Programmiersprachen
Typen von Programmiersprachen Berechenbarkeitstheorie: Formalisierung des intuitiven Berechenbarkeitsbegriffs man kann vier Typen von Programmiersprachen zum Berechnen von Zahlenfunktionen unterscheiden:
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.
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
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
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
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
Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme
Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 29. November 2007 Turing-mächtige
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
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: ; :=
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
Ü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
Tutorium: Diskrete Mathematik
Tutorium: Diskrete Mathematik Vorbereitung der Bonusklausur am 01.12.2017 (Teil 1) 22. November 2017 Steven Köhler [email protected] mathe.stevenkoehler.de 2 c 2017 Steven Köhler 22. November 2017
Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme
Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 13. November 2006 Turing-mächtige
Grundlagen: Algorithmen und Datenstrukturen
Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und
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
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
WS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
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
Kapitel 1. Grundlagen
Kapitel 1. Grundlagen 1.1. Mengen Georg Cantor 1895 Eine Menge ist die Zusammenfassung bestimmter, wohlunterschiedener Objekte unserer Anschauung oder unseres Denkens, wobei von jedem dieser Objekte eindeutig
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
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,
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
Die Ackermannfunktion
Die Ackermannfunktion Slide 1 Die Ackermannfunktion Hans U. Simon (RUB) Email: [email protected] Homepage: http://www.ruhr-uni-bochum.de/lmi Die Ackermannfunktion Slide 2 Eine Frage zu Anfang Ist jede intuitiv
Vorkurs: Mathematik für Informatiker
Vorkurs: Mathematik für Informatiker Teil 3 Wintersemester 2016/17 Steven Köhler [email protected] mathe.stevenkoehler.de 2 c 2016 Steven Köhler Wintersemester 2016/17 Inhaltsverzeichnis Teil 1 Teil
2. Symmetrische Gruppen
14 Andreas Gathmann 2 Symmetrische Gruppen Im letzten Kapitel haben wir Gruppen eingeführt und ihre elementaren Eigenschaften untersucht Wir wollen nun eine neue wichtige Klasse von Beispielen von Gruppen
1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 139 Unentscheidbarkeit Überblick Zunächst einmal definieren wir formal
Kapitel 1. Grundlagen Mengen
Kapitel 1. Grundlagen 1.1. Mengen Georg Cantor 1895 Eine Menge ist die Zusammenfassung bestimmter, wohlunterschiedener Objekte unserer Anschauung oder unseres Denkens, wobei von jedem dieser Objekte eindeutig
1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie
1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff
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
Kapitel 1. Grundlegendes
Kapitel 1 Grundlegendes Abschnitt 1.4 Vollständige Induktion Charakterisierung der natürlichen Zahlen Die Menge N 0 = {0, 1, 2, 3,...} der natürlichen Zahlen läßt sich wie folgt charakterisieren: 1. 0
b liegt zwischen a und c.
2 DIE ANORDNUNGSAXIOME 5 (2.4) a, b, c R : (a < b 0 < c) ac < bc Monotoniegesetz der Multiplikation Bezeichnungen a > b : b < a (> wird gelesen: größer als ) a b : a < b oder a = b a b : a > b oder a =
Institut für Analysis WiSe 2018/2019 Prof. Dr. Dirk Hundertmark Dr. Markus Lange. Analysis 1. Aufgabenzettel 4
Institut für Analysis WiSe 2018/2019 Prof. Dr. Dirk Hundertmark 08.11.2018 Dr. Markus Lange Analysis 1 Aufgabenzettel 4 Abgabe bis 14. November 2018, 19:00 Uhr Erinnerung: Die Anmeldung für den Übungsschein
Vorkurs: Mathematik für Informatiker
Vorkurs: Mathematik für Informatiker Teil 3 Wintersemester 2017/18 Steven Köhler [email protected] mathe.stevenkoehler.de 2 c 2017 Steven Köhler Wintersemester 2017/18 Inhaltsverzeichnis Teil 1 Teil
{, wenn n gerade ist,, wenn n ungerade ist.
11 GRENZWERTE VON FUNKTIONEN UND STETIGKEIT 60 Mit anderen Worten, es ist lim f(x) = b lim f (, a)(x) = b, x a x a wobei f (, a) die Einschränkung von f auf (, a) ist. Entsprechendes gilt für lim x a.
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) =
Zahlen und elementares Rechnen
und elementares Rechnen Christian Serpé Universität Münster 7. September 2011 Christian Serpé (Universität Münster) und elementares Rechnen 7. September 2011 1 / 51 Gliederung 1 2 Elementares Rechnen 3
Vollständige Induktion. Analysis I. Guofang Wang. Universität Freiburg
Universität Freiburg 26.10.2011 Vollständige Induktion Wir unterbrechen jetzt die Diskussion der Axiome der reellen Zahlen, um das Beweisverfahren der vollständigen Induktion kennenzulernen. Wir setzen
Kapitel 1. Grundlagen
Kapitel 1. Grundlagen 1.1. Mengen Georg Cantor 1895 Eine Menge ist die Zusammenfassung bestimmter, wohlunterschiedener Objekte unserer Anschauung oder unseres Denkens, wobei von jedem dieser Objekte eindeutig
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: ; :=
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
Aufgabenblatt 1: Abgabe am vor der Vorlesung
Aufgabenblatt 1: Abgabe am 17.09.09 vor der Vorlesung Aufgabe 1. a.) (1P) Geben Sie die Lösungsmenge der folgenden Gleichung an: 6x + y = 10. Zeichnen Sie die Lösungsmenge in ein Koordinatensystem. b.)
Vorkurs: Mathematik für Informatiker
Vorkurs: Mathematik für Informatiker Teil 3 Wintersemester 2017/18 Steven Köhler [email protected] mathe.stevenkoehler.de 2 c 2017 Steven Köhler Wintersemester 2017/18 Inhaltsverzeichnis Teil 1 Teil
Lösungsmenge L I = {x R 3x + 5 = 9} = L II = {x R 3x = 4} = L III = { }
Zur Einleitung: Lineare Gleichungssysteme Wir untersuchen zunächst mit Methoden, die Sie vermutlich aus der Schule kennen, explizit einige kleine lineare Gleichungssysteme. Das Gleichungssystem I wird
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:
Elementare Beweistechniken
Elementare Beweistechniken Beispiel: Satzform (Pythagoras) Voraussetzung: Gegeben sei ein beliebiges rechtwinkeliges Dreieck, die Länge der Hypothenuse sei c und die Längen der anderen Seiten seien a und
Kapitel II Funktionen reeller Variabler
Kapitel II Funktionen reeller Variabler D (Funktion) Es sei f XxY eine Abbildung Die Abbildung f heiß Funktion, falls sie eindeutig ist Man schreibt dann auch: f : X Y f ( x) = y, wobei y das (eindeutig
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
Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen)
WS 2015/16 Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15
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
2.5 Die Ackermannfunktion
Die zweistellige Ackermannfunktion definieren wir so: a(0, y) =y + 1 2.5 Die Ackermannfunktion a(x, 0) =a(x 1, 1) für x > 0 a(x, y) =a(x 1, a(x, y 1)) für x, y > 0 Die Ackermann-Funktion ist wohldefiniert
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
Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion
Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion Saskia Klaus 07.10.016 1 Motivation In den ersten beiden Vorträgen des Vorkurses haben wir gesehen, wie man aus schon bekannten Wahrheiten
Donnerstag, 11. Dezember 03 Satz 2.2 Der Name Unterraum ist gerechtfertigt, denn jeder Unterraum U von V ist bzgl.
Unterräume und Lineare Hülle 59 3. Unterräume und Lineare Hülle Definition.1 Eine Teilmenge U eines R-Vektorraums V heißt von V, wenn gilt: Unterraum (U 1) 0 U. (U ) U + U U, d.h. x, y U x + y U. (U )
aus der Bedingung/Annahme A folgt ein Widerspruch ), so ist A falsch!
Bemerkungen: 1 Die Bedeutung von (und damit ) ist klar. wird oft, vor allem in Beweisen, auch als geschrieben (im Englischen: iff, if and only if). 2 Für zwei boolesche Aussagen A und B ist A B falsch
Konstruktion der reellen Zahlen
Konstruktion der reellen Zahlen Zur Wiederholung: Eine Menge K (mit mindestens zwei Elementen) heißt Körper, wenn für beliebige Elemente x, y K eindeutig eine Summe x+y K und ein Produkt x y K definiert
Mengenlehre und vollständige Induktion
Fachschaft MathPhys Heidelberg Mengenlehre und vollständige Induktion Vladislav Olkhovskiy Vorkurs 018 Inhaltsverzeichnis 1 Motivation 1 Mengen.1 Grundbegriffe.................................. Kostruktionen
3 Vom Zählen zur Induktion
7 3 Vom Zählen zur Induktion 3.1 Natürliche Zahlen und Induktions-Prinzip Seit unserer Kindheit kennen wir die Zahlen 1,, 3, 4, usw. Diese Zahlen gebrauchen wir zum Zählen, und sie sind uns so vertraut,
8 Gruppen und Körper
8 Gruppen und Körper (8.) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres Element a?b aus G zuordnet, so dass die folgenden
Definition 131 Sei R ein (kommutativer) Ring. Ein Polynom über R in der Variablen x ist eine Funktion p der Form
3. Polynome 3.1 Definition und Grundlagen Definition 131 Sei R ein (kommutativer) Ring. Ein Polynom über R in der Variablen x ist eine Funktion p der Form p(x) = a n x n + a n 1 x n 1 + + a 1 x + a 0,
Analysis für Informatiker
Analysis für Informatiker Wintersemester 2017/2018 [email protected] 1 Bemerkung: Dies ist kein Skript, welches den gesamten Inhalt der Vorlesung abdeckt. Es soll den Studierenden aber während
Programmieren für Fortgeschrittene
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme Wintersemester 2011/12 Programmieren für Fortgeschrittene Rekursive Spezifikationen Die folgende
Formale Sprachen und Automaten
Mengen Eine Menge ist eine Gruppe von Elementen, die eine Einheit bilden (siehe z.b. Halmos 1976). Formale Sprachen und Automaten Mathematisches Rüstzeug Mengen können verschiedene Typen von Elementen
Mächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Turingmaschine (TM) M = (Q, Σ, Γ, B, q 0, q, δ) Unendliches Band... 0 c
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)
Lösungen zu Kapitel 2
Lösungen zu Kapitel 2 Lösung zu Aufgabe 1: Wir zeigen die Behauptung durch vollständige Induktion über n. Die einzige Menge mit n = 0 Elementen ist die leere Menge. Sie besitzt nur sich selbst als Teilmenge,
MATHEMATIK FÜR NATURWISSENSCHAFTLER I WINTERSEMESTER 2016/ OKTOBER 2016
MATHEMATIK FÜR NATURWISSENSCHAFTLER I WINTERSEMESTER 2016/17 MARK HAMILTON LMU MÜNCHEN 1.1. Grundbegriffe zu Mengen. 1. 17. OKTOBER 2016 Definition 1.1 (Mengen und Elemente). Eine Menge ist die Zusammenfassung
6.1 Natürliche Zahlen. 6. Zahlen. 6.1 Natürliche Zahlen
6. Zahlen Vom lieben Gott gemacht Menschenwerk: operativ oder Klassen äquivalenter Mengen oder axiomatisch (Peano 1889) 6. Zahlen GM 6-1 GM 6- Peano sche Axiome der natürlichen Zahlen Definition 6.1.1:
Vorkurs: Mathematik für Informatiker
Vorkurs: Mathematik für Informatiker Teil 3 Wintersemester 018/19 Steven Köhler [email protected] mathe.stevenkoehler.de c 018 Steven Köhler Wintersemester 018/19 Inhaltsverzeichnis Teil 1 Teil Teil
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
Elemente der Analysis I Kapitel 3: Einführung III, Summen, Logik, Mengen, Beweise
Elemente der Analysis I Kapitel 3: Einführung III, Summen, Logik, Mengen, Beweise Prof. Dr. Volker Schulz Universität Trier / FB IV / Abt. Mathematik 15. November 2010 http://www.mathematik.uni-trier.de/
Elementare Beweismethoden
Elementare Beweismethoden Christian Hensel 404015 Inhaltsverzeichnis Vortrag zum Thema Elementare Beweismethoden im Rahmen des Proseminars Mathematisches Problemlösen 1 Einführung und wichtige Begriffe
Skript und Übungen Teil II
Vorkurs Mathematik Herbst 2009 M. Carl E. Bönecke Skript und Übungen Teil II Das erste Semester wiederholt die Schulmathematik in einer neuen axiomatischen Sprache; es ähnelt damit dem nachträglichen Erlernen
Überabzählbarkeit der reellen Zahlen
Überabzählbarkeit der reellen Zahlen Mathematik M4 Dozentin: Dr. Regula Krapf Jan Lukas Schallenberg Matr. Nr.: 214202241 November 2017 1 Inhaltsverzeichnis 1 Dedekindsche Schnitte 3 2 Addition und Multiplikation
Mathematik 1 für Bauingenieure
Mathematik 1 für Bauingenieure Name (bitte ausfüllen): Prüfung am 6.3.2015 Reinhard Winkler Matrikelnummer (bitte ausfüllen): Wichtige Hinweise bevor Sie beginnen: Die Prüfung besteht aus vier Aufgaben
Berechenbarkeits- und Komplexitätstheorie
Berechenbarkeits- und Komplexitätstheorie Verschiedene Berechenbarkeitsbegriffe, Entscheidbarkeit von Sprachen, Wachstumsordnungen und Komplexitätsklassen Inhaltsübersicht und Literatur Verschiedene Berechenbarkeitsbegriffe:
