Title: Grenzen%20der%20Berechenbarkeit
1Grenzen der Berechenbarkeit
2Die Möglichkeiten von Software
Herausgeber einer Software-Zeitschrift
Geben Sie einem Computer die richtige Software,
und er wird tun, was immer Sie wünschen. Die
Maschine selbst mag Grenzen haben, doch für die
Möglichkeiten von Software gibt es keine
Grenzen. (zitiert nach D. Harel Das Affenpuzzle
und weitere bad news aus der Computerwelt)
3Teil 1
Nicht-berechenbare Funktionen
4Das Problem
Ist jede Funktion f N ? N auch berechenbar?
Menge der Funktionen von N nach N
?
n ? prim(n)
n ? 2n
n ? s(n)
Menge der berechenbaren Funktionen von N nach N
?
5Präzisierung von Berechenbarkeit
Definition Eine Funktion f N ? N heißt
Turingmaschinen-berechenbar, gdw gilt Es gibt
eine Turingmaschine T mit der folgenden
Eigenschaft AZ Auf dem Band befindet sich n
dargestellt als Strichzahl. ZZ Fall 1 f(n)
ist definiert T hält und hat f(n) dargestellt
als Strichzahl erzeugt. Fall 2 f(n) ist
undefiniert T hält nicht.
I
I
z0
I
I
I
I
Analog für f N x N x ... x N ? N
6Abzählverfahren
Turingmaschinen kann man abzählen (d. h.
durchnummerieren).
Es gibt nur endlich viele Turingmaschinen mit 1
Zustand. Diese können der Reihe nach abgezählt
werden.
Z000 ' ' ' ' R Z000Z000 'I' ' ' R Z000 Z000 ' '
' ' L Z000Z000 'I' ' ' L Z000 Z000 ' ' ' ' S
Z000Z000 'I' ' ' S Z000 Z000 ' ' 'I' R Z000Z000
'I' ' ' R Z000 Z000 ' ' 'I' L Z000Z000 'I' ' ' L
Z000 ...
0 1 2 3 4
7Ãœbung
Ergänzen Sie die begonnene Abzählung um weitere
Turing-maschinen mit genau einem Zustand. Wie
viele gibt es insgesamt?
Z000 ' ' ' ' R Z000Z000 'I' ' ' R Z000 Z000 ' '
' ' L Z000Z000 'I' ' ' L Z000 Z000 ' ' ' ' S
Z000Z000 'I' ' ' S Z000 Z000 ' ' 'I' R Z000Z000
'I' ' ' R Z000 Z000 ' ' 'I' L Z000Z000 'I' ' ' L
Z000
0 1 2 3 4
8Ãœbung
9Abzählverfahren
Turingmaschinen kann man abzählen.
Es gibt nur endlich viele Turingmaschinen mit 2
Zuständen. Diese können ebenfalls der Reihe nach
abgezählt werden.
Z000 ' ' ' ' R Z000Z000 'I' ' ' R Z001Z001 ' '
' ' R Z000Z001 'I' ' ' R Z000 ...
0
10Abzählverfahren
Turingmaschinen kann man abzählen.
Die gesamte Menge der Turingmaschinen kann
abgezählt werden, indem man zunächst die mit 1
Zustand durchnummeriert, dann die mit 2 Zuständen
u.s.w..
Z000 ' ' ' ' R Z000Z000 'I' ' ' R Z000 Z000 ' '
' ' L Z000Z000 'I' ' ' L Z000 ... Z000 ' ' ' ' R
Z000Z000 'I' ' ' R Z001Z001 ' ' ' ' R Z000Z001
'I' ' ' R Z000 ...
0 1 .. 36
11Abzählbarkeit
Definition Eine Menge M heißt abzählbar genau
dann, wenn es eine Abbildung von den natürlichen
Zahlen N in M gibt, bei der alle Elemente aus M
als Bildelemente natürlicher Zahlen erfasst
werden.
D. h., die Elemente von M können durchnummeriert
werden. Alle Elemente aus M müssen bei der
Nummerierung erfasst werden. Wiederholungen sind
bei der Nummerierung zugelassen.
SatzDie Menge der Turingmaschinen (über dem
Eingabealphabet 'I') ist abzählbar.
D. h., die Turingmaschinen lassen sich
durchnummerieren T0 T1 T2 ...
12Ãœbung
Überprüfen Sie, ob die aufgelisteten
Turingmaschinen Funktionen f N ? N berechnen.
Wenn ja, welche?
Z000 ' ' ' ' R Z000Z000 'I' ' ' R Z000 Z000 ' '
' ' L Z000Z000 'I' ' ' L Z000 Z000 ' ' ' ' S
Z000Z000 'I' ' ' S Z000 Z000 ' ' 'I' R Z000Z000
'I' ' ' R Z000 ... Z000 ' ' ' ' R Z000Z000 'I'
'I' R Z001Z001 ' ' ' ' R Z000Z001 'I' ' ' S Z000
0 1 2 3 .. x
13Lösung
Überprüfen Sie, ob die aufgelisteten
Turingmaschinen Funktionen f N ? N berechnen.
Wenn ja, welche?
f n ? ? f n ? ? f 0 ? 0 n ? n-1 (n
gt 0) f n ? ? ... Keine Funktion
Z000 ' ' ' ' R Z000Z000 'I' ' ' R Z000 Z000 ' '
' ' L Z000Z000 'I' ' ' L Z000 Z000 ' ' ' ' S
Z000Z000 'I' ' ' S Z000 Z000 ' ' 'I' R Z000Z000
'I' ' ' R Z000 ... Z000 ' ' ' ' R Z000Z000 'I'
'I' R Z001Z001 ' ' ' ' R Z000Z001 'I' ' ' S Z000
0 1 2 3 .. x
14Abzählverfahren
Berechenbare Funktionen kann man abzählen.
Wir streichen all die Turingmaschinen, die keine
Funktion f N ? N berechnen. Die verbleibenden
Turingmaschinen entsprechen genau den
Turing-berechenbaren Funktionen.
f0 n ? ? f1 n ? ? f2 0 ? 0 n ?
n-1 (n gt 0) ... Keine Funktion
Z000 ' ' ' ' R Z000Z000 'I' ' ' R Z000 Z000 ' '
' ' L Z000Z000 'I' ' ' L Z000 Z000 ' ' ' ' S
Z000Z000 'I' ' ' S Z000 ... Z000 ' ' ' ' R
Z000Z000 'I' 'I' R Z001Z001 ' ' ' ' R Z000Z001
'I' ' ' S Z000
0 1 2 .. x
15Abzählverfahren
SatzDie Menge der Turingmaschinen-berechenbaren
Funktion f N ? N ist abzählbar.
f0 n ? ? f1 n ? ? f2 0 ? 0 n ?
n-1 (n gt 0) ... Keine Funktion
Z000 ' ' ' ' R Z000Z000 'I' ' ' R Z000 Z000 ' '
' ' L Z000Z000 'I' ' ' L Z000 Z000 ' ' ' ' S
Z000Z000 'I' ' ' S Z000 ... Z000 ' ' ' ' R
Z000Z000 'I' 'I' R Z001Z001 ' ' ' ' R Z000Z001
'I' ' ' S Z000
0 1 2 .. x
16Zwischenstand
Die Menge der berechenbaren Funktionen ist
abzählbar.
Menge der Funktionen von N nach N
?
f0, f1, f2, f3, ...
Menge der berechenbaren Funktionen von N nach N
?
17Existenz nicht-berechenbarer Funktionen
Definition einer neuen Funktion f N ? N
f(0) f0(0)1, falls f0(0) definiert ist, sonst
f(0) 0 f(1) f1(1)1, falls f1(1) definiert
ist, sonst f(1) 0 f(2) f2(2)1, falls f2(2)
definiert ist, sonst f(2) 0 f(3) f3(3)1,
falls f3(3) definiert ist, sonst f(3) 0
... f(n) fn(n)1, falls fn(n) definiert ist,
sonst f(n) 0 ...
? f ? f0 ? f ? f1 ? f ? f2 ? f ? f3 ... ? f ?
f0 ...
Die Funktion f N ? N unterscheidet sich von
allen berechenbaren Funktionen, kann also selbst
nicht berechenbar sein.
18Existenz nicht-berechenbarer Funktionen
SatzEs gibt Funktionen f N ? N, die nicht
(Turingmaschinen-) berechenbar sind.
Menge der Funktionen von N nach N
f
f0, f1, f2, f3, ...
Menge der berechenbaren Funktionen von N nach N
?
19Teil 2
Radosche Sigma-Funktion
20Geht es auch konkreter?
Ziel ist es, eine Funktion, die nicht berechenbar
ist, expliziter zu beschreiben.
Radosche ?-Funktion
Menge der Funktionen von N nach N
?
f0, f1, f2, f3, ...
Menge der berechenbaren Funktionen von N nach N
?
21Biber-Turingmaschinen
Eine Biber-TM ist eine eindimensionale TM, die in
jedem Arbeitsschritt genau eine Rechts- oder
Linksbewegung macht und nur einen Baumstamm
erzeugt. Eine Biber-TM startet in einer leeren
Welt, erzeugt Baumstämme und hält nach endlich
vielen Arbeitsschritten.
Vorher
Biber-TM
Nachher
22Ãœbung
Biber-Wettbewerb
Gesucht ist eine Biber-TM mit genau 2 Zuständen
(außer dem Stop-Zustand), die möglichst viele
Baumstämme erzeugt, bevor sie hält. Eine solche
TM heißt fleißiger Biber (mit 2 Zuständen) bzw.
busy beaver TM.
Gesucht ist eine Biber-TM mit genau 3 (bzw. 4)
Zuständen (außer dem Stop-Zustand), die möglichst
viele Baumstämme erzeugt, bevor sie hält. Eine
solche TM heißt fleißiger Biber (mit 3 bzw. 4
Zuständen) bzw. busy beaver TM.
23Fleißige Biber
Fleißiger Biber mit 2 Zuständen
alter gelesenes geschrieb. Kopf- neuer
Zustand Zeichen Zeichen bewegung
Zustand Z0 I I L
Z1Z0 ' ' I R
Z1 Z1 I I S
Z0Z1 ' ' I L Z0
Fleißiger Biber mit 3 Zuständen
alter gelesenes geschrieb. Kopf- neuer
Zustand Zeichen Zeichen bewegung
Zustand Z0 I I L
Z2Z0 ' ' I R
Z1 Z1 I I S
Z1Z1 ' ' I L
Z0 Z2 I I S
Z2Z2 ' ' I L Z1
24Radosche Sigma-Funktion
Definition (Tibor Rado, 1962) Die Funktion ? N
? N ist wie folgt festgelegt ?(n) bezeichne die
maximale Anzahl von Baumstämmen, die eine
Biber-TM mit genau n Zuständen (außer dem
Stop-Zustand) erzeugen kann.
n 0 1 2 3 4 5 6 ...
?(n) 0 1 4 6 13 ? 4098 ? 1,29?10865 ...
25Radosche Sigma-Funktion
SatzDie Radosche ?-Funktion ist nicht
Turingmaschinen-berechenbar.
- Beweis
- Der Beweis benutzt die folgenden (leicht zu
zeigenden) Eigenschaften der ?-Funktion - ?(n) ? n für alle n? N,
- ?(n) lt ?(n1) für alle n? N (Monotonie von ?).
- Der Beweis wird durch Widerspruch geführt.
Annahme Es gibt eine Turingmaschine T?, mit der
? berechnet werden kann. Die Anzahl der Zustände
von T? bezeichnen wir mit k.
AZ
I
I
z0
T?
ZZ
I
I
I
I
26Radosche Sigma-Funktion
Man zeigt zunächst, dass es eine Turingmaschine
Tn mit n Zuständen gibt, der auf einem leeren
Band eine Baumstammreihe mit genau n Baumstämmen
erzeugt
AZ
z0
T2
ZZ
I
I
Man zeigt anschließend, dass es eine
Turingmaschine TV mit 5 Zuständen gibt, der eine
gegebene, beliebig lange Baumstammreihe
verdoppelt
AZ
I
I
z0
TV
ZZ
I
I
I
I
27Radosche Sigma-Funktion
Wir verknüpfen die 3 Turingmaschinen jetzt wie
folgt zu einer neuen Turingmaschine Tn,V, ?
z0
AZ
Tn erzeugt eine Baumstammreihe der Länge n
ZZ
I
I
TV erzeugt eine Baumstammreihe der Länge 2n
ZZ
I
I
I
I
T? erzeugt eine Baumstammreihe der Länge
?(2n)
I
I
I
I
I
I
I
I
...
ZZ
Beachte Tn,V, ? hat n5k Zustände und erzeugt
eine Baumstammreihe der Länge ?(2n).
28Radosche Sigma-Funktion
- Wir vergleichen jetzt diese zusammengesetzte
Turingmaschine Tn,V, ? mit einem fleißigen Biber
TFB(n5k) mit n5k Zuständen - Tn,V, ? hat n5k Zustände und erzeugt ?(2n)
Baumstämme. - TFB(n5k) hat n5k Zustände und erzeugt
?(n5k) Baumst. - Da ein fleißiger Biber die maximal mögliche
Anzahl von Baumstämmen erzeugt, gilt (für alle n?
N) ?(n5k) ? ?(2n). - Sei n 2(5k). Dann gilt
- n5k 3(5k)
- 2n 4(5k), also n5k lt 2n.
- Aus der Monotonie von ? folgt ?(n5k) lt ?(2n).
- Es ergibt sich also ein Widerspruch. Da alle
Schlüsse korrekt sind, muss die Annnahme falsch
sein.
29Teil 2
Entscheidbarkeit
30Textverarbeitungsprogramme
eingabe TStringList
function verarbeiten(s TStringList) string
ausgabe string
31Ein einfaches Beispiel
Mit Hilfe eines Textverarbeitungsprogramms soll
entschieden werden, ob ein eingegebener Text mit
einem Punkt endet.
Name des Programms function verarbeiten(s
TStringList) string
uPunktverarbeiten
ja, falls der Text mit einem Punkt endet
Text
nein, sonst
32Ein einfaches Beispiel
procedure TForm1.BVerarbeitenClick(Sender
TObject) var eingabe TStringList
ausgabe string function verarbeiten(s
TStringList) string var a string
h string begin h s.Stringss.Count-1
if hlength(h) '.' then a 'ja' else a
'nein' result a end begineingabe
TStringList(MEingabe.Lines)ausgabe
verarbeiten(eingabe)PAusgabe.Caption
ausgabeend
33Selbstanwendung
Das Textverarbeitungsprogramms kann man auch auf
den Quelltext des Textverarbeitungsprogramms
selbst anwenden.
34Selbstanwendung
Das Textverarbeitungsprogramms kann man auch auf
den Quelltext des Textverarbeitungsprogramms
selbst anwenden.
uPunktverarbeiten
uPunkt.pas
ja
35Hilfe, mein Rechner hängt!
Jeder hat schon einmal die Erfahrung gemacht,
dass der Rechner aus irgendwelchen Gründen nicht
mehr reagiert. Die Ursache kann eine
Endlosschleife sein.
x0 x1 WHILE x2 ? 0 DO x0 x0 1 END
36Ãœbung
Erstellen Sie ein Textverarbeitungsprogramms, mit
dem man entscheiden kann, ob der eingegebene Text
die Zeichenkette while enthält.
uWhile1verarbeiten
ja, falls der Text die Zeichenkette while
enthält
Text
nein, sonst
37Ãœbung
Erstellen Sie zunächst ein Textverarbeitungsprogra
mms, mit dem man entscheiden kann, ob der
eingegebene Text die Zeichenkette while
enthält. Das Textverarbeitungsprogramm soll
mindestens eine while-Schleife enthalten. Ändern
Sie es anschließend so ab, dass folgendes
Verhalten auftritt
uWhile2verarbeiten
Gerät in eine Endlosschleife, falls der Text die
Zeichenkette while enthält
Text
nein, sonst
38Das (spezielle) Halteproblem
Kann man eine Funktion programmieren, mit der man
entscheiden kann, ob ein Textverarbeitungsprogramm
bei der Analyse des eigenen Quelltextes hält?
halten
ja, falls uProgrammverarbeiten bei Eingabe von
uProgramm.pas hält
uProgramm.pas
nein, sonst
Annahme Man kann diese Funktion programmieren.
39Das (spezielle) Halteproblem
Annahme Man kann die Funktion halten
programmieren. Dann ergänzen wir das Programm wie
folgt
procedure TForm1.BVerarbeitenClick(Sender
TObject) var eingabe TStringList ausgabe
string function halten(s TStringList)
string begin ... end function
verarbeiten(s TStringList) string begin if
halten(s)'ja' then while true do result
'haelt' endbegineingabe
TStringList(MEingabe.Lines)ausgabe
verarbeiten(eingabe)PAusgabe.Caption
ausgabeend
uSeltsam
40Ein seltsames Programm
Seltsam dreht den Spieß um.
keine Ausgabe, wenn uProgrammverarbeiten bei
Eingabe von uProgramm.pas hält, da Endlosschleife
uSeltsamverarbeiten
uProgramm.pas
haelt, wenn uProgrammverarbeiten bei Eingabe
von uProgramm.pas nicht hält
41Ein seltsames Programm
Seltsam analysiert sein eigenes Halteverhalten.
keine Ausgabe, wenn uSeltsamverarbeiten bei
Eingabe von uSeltsam.pas hält, da Endlosschleife
uSeltsamverarbeiten
uSeltsam.pas
haelt, wenn uSeltsamverarbeiten bei Eingabe
von uSeltsam.pas nicht hält
42Ein seltsames Programm
Hält uSeltsamverarbeiten bei Eingabe von
uSeltsam.pas?
hält nicht, wenn uSeltsamverarbeiten bei Eingabe
von uSeltsam.pas hält
uSeltsamverarbeiten
uSeltsam.pas
hält, wenn uSeltsamverarbeiten bei Eingabe von
uSeltsam.pas nicht hält
Man kann es nicht klären, ohne sich in
Widersprüche zu verwickeln.
43Ein seltsames Programm
Woran liegt es, dass man widersprüchliche
Ergebnissen erhält?
hält nicht, wenn uSeltsamverarbeiten bei Eingabe
von uSeltsam.pas hält
uSeltsamverarbeiten
uSeltsam.pas
hält, wenn uSeltsamverarbeiten bei Eingabe von
uSeltsam.pas nicht hält
Die Annahme, dass man eine Funktion programmieren
kann, mit der man entscheiden kann, ob ein
Textverarbeitungsprogramm bei der Analyse des
eigenen Quelltextes hält, muss falsch sein.
44Entscheidbarkeit
Definition Eine Sprache über einem Alphabet
heißt (Delphi-) entscheidbar, wenn es einen
(Delphi-) Algorithmus gibt, der für jedes Wort
über dem Alphabet feststellt, ob es zur Sprache
gehört oder nicht.
Algorithmus
ja, falls das Wort zur Sprache gehört
Wort
nein, falls das Wort nicht zur Sprache gehört
Beachte Der Algorithmus muss für jede Eingabe
halten und eine der beiden Ausgaben ja bzw.
nein erzeugen.
45Entscheidbarkeit
Beispiel Die Sprache der ASCII-Texte, die die
Zeichenkette while enthalten, ist (Delphi-)
entscheidbar.
uWhileverarbeiten
ja, falls der Text die Zeichenkette while
enthält
Text
nein, sonst
46Unentscheidbarkeit des Halte-Problems
SatzDie Sprache der Delphi-Textverarbeitungsprogr
amme, die bei Eingabe des eigenen Quelltextes
halten, ist nicht (Delphi-) entscheidbar.
ja, falls uProgrammverarbeiten bei Eingabe von
uProgramm.pas hält
uProgramm.pas
nein, sonst
Kurz Das spezielle Halteproblem (Hält ein ein
Programm, wenn es seinen eigenen Quelltext
bearbeitet?) ist nicht entscheidbar.
47Unentscheidbarkeit des Halte-Problems
SatzDas allgemeine Halteproblem (Hält ein ein
Programm, wenn es Daten bearbeitet?) ist nicht
entscheidbar.
ja, falls uProgrammverarbeiten bei Eingabe der
Daten hält
uProgramm.pas Daten
nein, sonst
Fazit Es gibt keinen Algorithmus, mit dem man
allgemein vorab testen kann, ob ein Programm bei
der Verarbeitung von Daten hält.
48 49Teil 3
Semi-Entscheidbarkeit
50Das 10. Hilbertsche Problem
Diophantische Gleichungen Hat eine
Polynomgleichung (in der verschiedene Variablen
mit verschiedenen Exponenten vorkommen können)
mit ganzzahligen Koeffizienten eine ganzzahlige
Lösung?
x3 5x2y2z xz 37 0 ja x 1 y 2 z -2
x2 1 0 nein!
51Das 10. Hilbertsche Problem
SatzDas 10. Hilbertsche Problem (Hat eine
Polynomgleichung mit ganzzahligen Koeffizienten
eine ganzzahlige Lösung?) ist nicht entscheidbar.
ja, falls die Polynomgleichung eine ganzzahlige
Lösung hat
Polynomgleichung
nein, sonst
52Das 10. Hilbertsche Problem
Ein Algorithmus zur Lösung von Diophantischen
Gleichungen
Eingabe Gleichung z. B. x3 5x2y2z xz 37
0
Probiere systematisch alle möglichen Belegungen
der in der Gleichung vorkommenden Variablen aus,
ob sie die Gleichung erfüllen. Stoppe, wenn eine
passende Belegung gefunden wurde. Im Beispiel x
0 y 0 z 0 neinx 1 y 0 z
0 neinx -1 y 0 z 0 neinx 0 y
1 z 0 nein...x 1 y 2 z -2 ja
Ausgabe Lösbarkeit im Beispiel ja
53Semi-Entscheidbarkeit
Der Algorithmus zur Lösung von Diophantischen
Gleichungen hat folgendes Verhalten
ja, falls die Gleichung eine ganzzahlige Lösung
hat
Diophantische Gleichung
hält nicht, sonst
Beachte Der Algorithmus liefert nur in den
Fällen, in denen eine Lösung existiert, ein
positives Ergebnis, in anderen Fällen liefert er
kein Ergebnis.
54Semi-Entscheidbarkeit
Definition Eine Sprache über einem Alphabet
heißt semi-entscheidbar, wenn es einen
Algorithmus gibt, der für jedes Wort über dem
Alphabet, das zur Sprache gehört, dies auch
mitteilt.
Algorithmus
ja, falls das Wort zur Sprache gehört
Wort
hält nicht, falls das Wort nicht zur Sprache
gehört
Beachte Falls der Algorithmus lange Zeit noch
nicht gestoppt hat, ist nicht klar, ob das Wort
zur Sprache gehört oder nicht.
55Semi-Entscheidbarkeit
SatzEine Sprache L ist entscheidbar genau dann,
wenn sowohl L als auch das Komplement von L
semi-entscheidbar sind.
BeweisDie Richtung von links nach rechts ist
klar. Für die Umkehrung sei A1 ein
Semi-Entscheidungsalgorithmus für L und A2 ein
entsprechender Algorithmus für das Komplement von
L. Der folgende Algorithmus liefert ein
Entscheidungsverfahren Eingabe Wort w FÃœR s
1, 2, 3, ... TUE WENN A1 bei Eingabe von w in
s Schritten stoppt, DANN Ausgabe ja WENN
A2 bei Eingabe von w in s Schritten stoppt,
DANN Ausgabe nein
56 57Teil 4
Exkurs in die Geschichte der Informatik
58David Hilbert
59Hilberts Rede auf dem Kongress 1900
Wer von uns würde nicht gern den Schleier lüften,
unter dem die Zukunft verborgen liegt, um einen
Blick zu werfen auf die bevorstehenden
Fortschritte unsrer Wissenschaft und in die
Geheimnisse ihrer Entwickelung während der
künftigen Jahrhunderte! Welche besonderen Ziele
werden es sein, denen die führenden
mathematischen Geister der kommenden Geschlechter
nachstreben? welche neuen Methoden und neuen
Thatsachen werden die neuen Jahrhunderte
entdecken - auf dem weiten und reichen Felde
mathematischen Denkens? Die Geschichte lehrt die
Stetigkeit der Entwickelung der Wissenschaft. Wir
wissen, daß jedes Zeitalter eigene Probleme hat,
die das kommende Zeitalter löst oder als
unfruchtbar zur Seite schiebt und durch neue
Probleme ersetzt. Wollen wir eine Vorstellung
gewinnen von der muthmaßlichen Entwickelung
mathematischen Wissens in der nächsten Zukunft,
so müssen wir die offenen Fragen vor unserem
Geiste passiren lassen und die Probleme
überschauen, welche die gegenwärtige Wissenschaft
stellt, und deren Lösung wir von der Zukunft
erwarten. Zu einer solchen Musterung der Probleme
scheint mir der heutige Tag, der an der
Jahrhundertwende liegt, wohl geeignet denn die
großen Zeitabschnitte fordern uns nicht blos auf
zu Rückblicken in die Vergangenheit, sondern sie
lenken unsere Gedanken auch auf das unbekannte
Bevorstehende. ...
60Hilberts Rede auf dem Kongress 1900
2. Die Widerspruchslosigkeit der arithmetischen
Axiome Wenn es sich darum handelt, die Grundlagen
einer Wissenschaft zu untersuchen, so hat man ein
System von Axiomen aufzustellen, welche eine
genaue und vollständige Beschreibung derjenigen
Beziehungen enthalten, die zwischen den
elementaren Begriffen jener Wissenschaft
stattfinden. Die aufgestellten Axiome sind
zugleich die Definitionen jener elementaren
Begriffe und jede Aussage innerhalb des Bereiches
der Wissenschaft, deren Grundlagen wir prüfen,
gilt uns nur dann als richtig, falls sie sich
mittelst einer endlichen Anzahl logischer
Schlüsse aus den aufgestellten Axiomen ableiten
läßt. Bei näherer Betrachtung entsteht die Frage,
ob etwa gewisse Aussagen einzelner Axiome sich
untereinander bedingen und ob nicht somit die
Axiome noch gemeinsame Bestandteile enthalten,
die man beseitigen muß, wenn man zu einem System
von Axiomen gelangen will, die völlig von
einander unabhängig sind.Vor Allem aber möchte
ich unter den zahlreichen Fragen, welche
hinsichtlich der Axiome gestellt werden können,
dies als das wichtigste Problem bezeichnen, zu
beweisen, daß dieselben untereinander
widerspruchslos sind, d.h. daß man auf Grund
derselben mittelst einer endlichen Anzahl von
logischen Schlüssen niemals zu Resultaten
gelangen kann, die miteinander in Widerspruch
stehen.
61Das Hilbertsche Programm
Ziel Formalisierung der Mathematik
WiderspruchsfreiheitDie Formalisierung soll
widerspruchsfrei sein (d. h. keine zwei sich
ausschließenden Aussagen können hergeleitet
werden). VollständigkeitJede wahre
mathematische Aussage kann hergeleitet
werden. EntscheidbarkeitEs gibt ein Verfahren,
mit dem man für jede beliebige Aussage in endlich
vielen Schritten entscheiden kann, ob sie
ableitbar ist oder nicht.
62Kurt Gödel
63Ergebnisse von Gödel
Hilbertsche Programm Formalisierung der
Mathematik
WiderspruchsfreiheitDie Formalisierung soll
widerspruchsfrei sein (d. h. keine zwei sich
ausschließenden Aussagen können hergeleitet
werden). VollständigkeitJede wahre
mathematische Aussage kann hergeleitet werden.
Gödelsche Unvollständigkeitssätze (1931)
In jedem formalen System, das widerspruchsfrei
ist, existieren Aussagen, die wahr sind, aber
innerhalb des Systems nicht hergeleitet werden
können. Das bedeutet, es bleiben immer wahre
Aussagen übrig, die nicht herleitbar sind. Wenn
ein formales System widerspruchsfrei ist, dann
kann man innerhalb des Systems nicht herleiten,
dass es widerspruchsfrei ist.
64Alan Turing
http//www-gap.dcs.st-and.ac.uk/history/Mathemati
cians/Turing.html
65Alonzo Church
66Präzisierung des Algorithmusbegriffs
Entscheidungsproblem
Gibt es ein Verfahren, mit dem man für jede
beliebige mathematische Aussage in endlich vielen
Schritten entscheiden kann, ob sie ableitbar ist
oder nicht?
Grundlegende Schwierigkeit
Mathematische Präzisierung des Begriffs
Verfahren bzw. (in heutiger Terminologie) des
Begriffs Algorithmus
67Ergebnis von Turing und Church
Hilbertsche Programm Formalisierung der
Mathematik
WiderspruchsfreiheitDie Formalisierung soll
widerspruchsfrei sein (d. h. keine zwei sich
ausschließenden Aussagen können hergeleitet
werden). VollständigkeitJede wahre
mathematische Aussage kann hergeleitet
werden. EntscheidbarkeitEs gibt ein Verfahren,
mit dem man für jede beliebige Aussage in endlich
vielen Schritten entscheiden kann, ob sie
ableitbar ist oder nicht.
Turing und Church (1936)
Es gibt kein Verfahren, mit dem man für jede
beliebige Aussage in endlich vielen Schritten
entscheiden kann, ob sie ableitbar ist oder nicht.
68Literaturhinweise
U. Schöning Theoretische Informatik
kurzgefasst. Spektrum Akademischer Verlag
2001. Gasper, Leiß, Spengler, Stimm Technische
und theoretische Informatik. Bayerischer
Schulbuch-Verlag 1992. Reichert, Nievergelt,
Hartmann Programmieren mit Kara. Springer-Verlag
2004. D. Harel Das Affenpuzzle und weitere bad
news aus der Computerwelt. Springer-Verlag
2002. J. Casti Das Cambridge Quintett. Berlin
Verlag 1998. D. R. Hofstadter Gödel, Escher,
Bach. Klett-Cotta 1985.