Rekursion und Induktion

Werbung
Rekursion und Induktion
Rekursion und Induktion
Quick Start Informatik
Theoretischer Teil
WS2011/12
11. Oktober 2011
QSI - Theorie - WS2011/12
Rekursion und Induktion > Rekursion > Was ist Rekursion?
Definition der Rekursion für Funktionen
Definition
Eine rekursive Funktion ist eine Funktion, die sich selber aufruft
Beispiel: Wir kennen (aus der Schule):
n! = 1 · 2 · 3 · · · n
Wir können dies umformulieren zu einer rekursiven Funktion:
f :N→N
f (0) = 1
f (n) = f (n − 1) · n
QSI - Theorie - WS2011/12
Rekursion und Induktion > Rekursion > Was ist Rekursion?
Auswertung der Funktion
f :N→N
f (0) = 1
f (n) = f (n − 1) · n
Wir können diese Funktion wie folgt auswerten:
f (3) = f (2) · 3 = f (1) · 2 · 3 = f (0) · 1 · 2 · 3 = 1 · 1 · 2 · 3 = 6
Wir vermuten f (n) := n!.
QSI - Theorie - WS2011/12
Rekursion und Induktion > Rekursion > Anwendungen in der Informatik
Anwendung von Rekursion in der Informatik
Die Rekursion hat viele Anwendungen in der Informatik zum Beispiel
als Programmiertechnik.
Beispiel:
f :N→N
f (0) = 1
f (n) = f (n − 1) · n
wäre programmiert in Python:
def f (n ) :
i f n == 0 :
return 1
else :
r e t u r n f ( n−1) ∗ n
QSI - Theorie - WS2011/12
Rekursion und Induktion > Rekursion > Anwendungen in der Informatik
weitere Anwendungen in der Informatik
Programmiertechnik
Es gibt Programiersprachen, in denen die Rekursion sehr stark
optimiert ist. (Beispiel: Haskell)
Ersetzen in einigen Programmiersprachen, Kontrollstrukturen wie
die for-Schleife (siehe: Haskell (PRG-2))
Gültige Syntax für Programmiersprachen werden (müssen meist
sogar) rekursiv definiert werden
Der Übersetzer (Compiler) arbeitet meist rekursiv
QSI - Theorie - WS2011/12
Rekursion und Induktion > Rekursion > Basis- und Rekursionsfall
... wieder ein bisschen Fachchinesisch
Definition (Basisfall)
Der Basisfall in einer Rekursion beschreibt den Teil, in dem die
Funktion nicht noch einmal aufgerufen wird.
f :N→N
f (0) = 1
f (n) = f (n − 1) · n
Quizfrage der Folie
Wo ist hier der Basisfall ??
QSI - Theorie - WS2011/12
Rekursion und Induktion > Rekursion > Basis- und Rekursionsfall
... und noch mehr Fachchinesisch :-P
Definition (Rekursionsfall)
Der Rekursionsfall in einer Rekursion beschreibt den Teil, in dem die
Funktion noch einmal aufgerufen wird.
f :N→N
f (0) = 1
f (n) = f (n − 1) · n
Quizfrage der Folie
Wo ist hier der Rekursionsfall ??
QSI - Theorie - WS2011/12
Rekursion und Induktion > Rekursion > Rekursionstürmchen
Türmchen bauen
Wir können uns die einfache Rekursion auch wie ein Türmchen
vorstellen. Sei f eine rekursive Funktion. f (n) stellt das Dach dar.
Teile, die darunter sind, werden von dem oberen Teil aufgerufen.
Irgendwann haben wir einen Boden und das ist dann unser Basisfall.
(Animation siehe nächste Folie)
QSI - Theorie - WS2011/12
Rekursion und Induktion > Rekursion > Rekursionstürmchen
...zur Animation
QSI - Theorie - WS2011/12
Rekursion und Induktion > Rekursion > Rekursionstürmchen
...und als Sequenzdiagramm
QSI - Theorie - WS2011/12
Rekursion und Induktion > Induktion > Einleitung
Wie kann ich nachprüfen, dass rekursive Aussagen richtig
sind?
Wir erinnern uns: Wir haben unseren Python Code:
def f (n ) :
i f n == 0 :
return 1
else :
r e t u r n f ( n−1) ∗ n
und wir haben dann vermutet, dass dieser Code die Fakultät:
0! = 1
n! = 1 · 2 · · · n
berechnet. Tut er das wirklich????
QSI - Theorie - WS2011/12
Rekursion und Induktion > Induktion > Einleitung
Die vollständige Induktion
Auch dafür gibt es eine Beweistechnik: Die vollständig Induktion. Sie
besteht aus zwei Teilen:
Induktionsanfang: Wir überprüfen, ob die Aussagen für die
Rekursionsbasis gilt.
Induktionsschritt: Wir nehmen an, dass im rekursiven Aufruf
unsere Aussage stimmt. Dann weisen wir das nur noch für den
Rest nach!
Schauen wir uns mal das Beispiel von der vorherigen Folie an!
QSI - Theorie - WS2011/12
Rekursion und Induktion > Induktion > Rekursive Definition der natürlichen Zahlen
Was kann so eine Induktion noch?
Aussagen für natürliche Zahlen beweisen. Wir hatten:
N = {0, 1, 2, ...}
Geht diese Definition auch rekursiv?
In der Tat: Wir bauen ein Türmchen mit Zahlen. Unten ist die 0 und
den Nachfolger stecken wir drauf.
QSI - Theorie - WS2011/12
Rekursion und Induktion > Induktion > Rekursive Definition der natürlichen Zahlen
...zur Animation
QSI - Theorie - WS2011/12
Rekursion und Induktion > Induktion > Rekursive Definition der natürlichen Zahlen
Rekursion in nat. Zahlen
Wir haben hier unseren N-Turm.
Die Basis: 0 ist eine natürliche Zahl.
Die Rekursion: Wenn n eine natürliche Zahl ist, dann ist der
Nachfolger (also ein Stockwerk höher) n + 1 ebenfalls eine
natürliche Zahl.
QSI - Theorie - WS2011/12
Rekursion und Induktion > Induktion > Rekursive Definition der natürlichen Zahlen
Wenn wir unser N-Turm betrachten, dann
... gilt für die Induktion für natürliche Zahlen:
Der Induktionsanfang : Die Aussage ist für n = 0 zu prüfen. (Für
Mengen wie {n|n ∈ N, n ≥ 2} nehmen wir n = 2 als
Induktionsanfang)
Der Induktionsschritt: Wir nehmen an, dass die Aussage für ein
beliebiges n ∈ N gilt, und weisen dann nach, dass es für n + 1 (im
Turm eine Etage höher) gilt.
QSI - Theorie - WS2011/12
Rekursion und Induktion > Induktion > Rekursive Definition der natürlichen Zahlen
Das Prinzip der Induktion
Gilt eine Aussage für n = 0 und gilt die Aussage unter der
Annahme, dass sie für n gilt, auch für n + 1, dann gilt sie für alle
natürlichen Zahlen.
QSI - Theorie - WS2011/12
Rekursion und Induktion > Induktion > Summen- und Produktzeichen
Ein paar Kleinigkeiten...
Definition
Summen- und Produktzeichen Sei n ∈ N. Seien a1 , ..., an beliebige
Zahlen. Dann ist:
n
X
ai = a1 + · · · + an
i=1
n
Y
a1 = a1 · · · · · an
i=1
Spezialfälle:
0
X
i=1
ai = 0
0
Y
ai = 1
i=1
QSI - Theorie - WS2011/12
Rekursion und Induktion > Induktion > Beispiel für die vollständige Induktion für natürliche Zahlen
Jetzt zum Beispiel “Induktion für nat. Zahlen”
Der Klassiker: Beweise:
Satz
Für alle n ∈ N gilt:
n
X
i=0
i=
n · (n + 1)
2
Beweis: siehe Tafel
QSI - Theorie - WS2011/12
Rekursion und Induktion > Induktion > Beispiel für die vollständige Induktion für natürliche Zahlen
Wie geht es jetzt weiter?
... mit der Diskreten Modellierung
Mengen, Beweise
Aussagenlogik
Graphentheorie
Markov-Ketten
Logik erster Stufe
kontextfreie Grammatiken
QSI - Theorie - WS2011/12
Rekursion und Induktion > Induktion > Beispiel für die vollständige Induktion für natürliche Zahlen
noch Fragen???
Quelle Bild: http://www.citycampus.eu/cms/images/comic fragezeichen.png
QSI - Theorie - WS2011/12
Herunterladen