Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grenzen der Berechenbarkeit

Ähnliche Präsentationen


Präsentation zum Thema: "Grenzen der Berechenbarkeit"—  Präsentation transkript:

1 Grenzen der Berechenbarkeit
Klaus Becker 2004

2 Die 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)

3 Nicht-berechenbare Funktionen
Teil 1 Nicht-berechenbare Funktionen

4 ? ? Das 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 ?

5 Prä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

6 Abzä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. 1 2 3 4 Z000 ' ' ' ' R Z000 Z000 'I' ' ' R Z000 Z000 ' ' ' ' L Z000 Z000 'I' ' ' L Z000 Z000 ' ' ' ' S Z000 Z000 'I' ' ' S Z000 Z000 ' ' 'I' R Z000 Z000 'I' ' ' R Z000 Z000 ' ' 'I' L Z000 Z000 'I' ' ' L Z000 ...

7 Übung Ergänzen Sie die begonnene Abzählung um weitere Turing-maschinen mit genau einem Zustand. Wie viele gibt es insgesamt? 1 2 3 4 Z000 ' ' ' ' R Z000 Z000 'I' ' ' R Z000 Z000 ' ' ' ' L Z000 Z000 'I' ' ' L Z000 Z000 ' ' ' ' S Z000 Z000 'I' ' ' S Z000 Z000 ' ' 'I' R Z000 Z000 'I' ' ' R Z000 Z000 ' ' 'I' L Z000 Z000 'I' ' ' L Z000

8 Übung

9 Abzä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 Z000 Z000 'I' ' ' R Z001 Z001 ' ' ' ' R Z000 Z001 'I' ' ' R Z000 ...

10 Abzä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.. 1 .. 36 Z000 ' ' ' ' R Z000 Z000 'I' ' ' R Z000 Z000 ' ' ' ' L Z000 Z000 'I' ' ' L Z000 ... Z000 ' ' ' ' R Z000 Z000 'I' ' ' R Z001 Z001 ' ' ' ' R Z000 Z001 'I' ' ' R Z000

11 Abzä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. Satz Die 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? 1 2 3 .. x Z000 ' ' ' ' R Z000 Z000 'I' ' ' R Z000 Z000 ' ' ' ' L Z000 Z000 'I' ' ' L Z000 Z000 ' ' ' ' S Z000 Z000 'I' ' ' S Z000 Z000 ' ' 'I' R Z000 Z000 'I' ' ' R Z000 ... Z000 ' ' ' ' R Z000 Z000 'I' 'I' R Z001 Z001 ' ' ' ' R Z000 Z001 'I' ' ' S Z000

13 Lösung Überprüfen Sie, ob die aufgelisteten Turingmaschinen Funktionen f: N  N berechnen. Wenn ja, welche? 1 2 3 .. x Z000 ' ' ' ' R Z000 Z000 'I' ' ' R Z000 Z000 ' ' ' ' L Z000 Z000 'I' ' ' L Z000 Z000 ' ' ' ' S Z000 Z000 'I' ' ' S Z000 Z000 ' ' 'I' R Z000 Z000 'I' ' ' R Z000 ... Z000 ' ' ' ' R Z000 Z000 'I' 'I' R Z001 Z001 ' ' ' ' R Z000 Z001 'I' ' ' S Z000 f: n   f: 0  n  n-1 (n > 0) ... Keine Funktion

14 Abzä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. 1 2 .. x Z000 ' ' ' ' R Z000 Z000 'I' ' ' R Z000 Z000 ' ' ' ' L Z000 Z000 'I' ' ' L Z000 Z000 ' ' ' ' S Z000 Z000 'I' ' ' S Z000 ... Z000 ' ' ' ' R Z000 Z000 'I' 'I' R Z001 Z001 ' ' ' ' R Z000 Z001 'I' ' ' S Z000 f0: n   f1: n   f2: 0  n  n-1 (n > 0) ... Keine Funktion

15 Abzählverfahren Satz Die Menge der Turingmaschinen-berechenbaren Funktion f: N  N ist abzählbar. 1 2 .. x Z000 ' ' ' ' R Z000 Z000 'I' ' ' R Z000 Z000 ' ' ' ' L Z000 Z000 'I' ' ' L Z000 Z000 ' ' ' ' S Z000 Z000 'I' ' ' S Z000 ... Z000 ' ' ' ' R Z000 Z000 'I' 'I' R Z001 Z001 ' ' ' ' R Z000 Z001 'I' ' ' S Z000 f0: n   f1: n   f2: 0  n  n-1 (n > 0) ... Keine Funktion

16 Zwischenstand 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 ?

17 Existenz 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 ... Die Funktion f: N  N unterscheidet sich von allen berechenbaren Funktionen, kann also selbst nicht berechenbar sein.

18 Existenz nicht-berechenbarer Funktionen
Satz Es 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 ?

19 Rado´sche Sigma-Funktion
Teil 2 Rado´sche Sigma-Funktion

20 Geht es auch konkreter?  f0, f1, f2, f3, ... ?
Ziel ist es, eine Funktion, die nicht berechenbar ist, expliziter zu beschreiben. Rado´sche -Funktion Menge der Funktionen von N nach N f0, f1, f2, f3, ... Menge der berechenbaren Funktionen von N nach N ?

21 Biber-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“.

23 Fleißige Biber Fleißiger Biber mit 2 Zuständen:
alter gelesenes geschrieb. Kopf neuer Zustand Zeichen Zeichen bewegung Zustand Z I I L Z1 Z ' ' I R Z1 Z I I S Z0 Z ' ' I L Z0 Fleißiger Biber mit 3 Zuständen: alter gelesenes geschrieb. Kopf neuer Zustand Zeichen Zeichen bewegung Zustand Z I I L Z2 Z ' ' I R Z1 Z I I S Z1 Z ' ' I L Z0 Z I I S Z2 Z ' ' I L Z1

24 Rado´sche 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 1 2 3 4 5 6 ... (n) 1 4 6 13  4098  1,2910865 ...

25 Rado´sche Sigma-Funktion
Satz Die Rado´sche -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) < (n+1) 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

26 Rado´sche 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

27 Rado´sche 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) ZZ: I I I I I I I I ... Beachte: Tn,V,  hat n+5+k Zustände und erzeugt eine Baumstammreihe der Länge (2n).

28 Rado´sche Sigma-Funktion
Wir vergleichen jetzt diese zusammengesetzte Turingmaschine Tn,V,  mit einem fleißigen Biber TFB(n+5+k) mit n+5+k Zuständen: Tn,V,  hat n+5+k Zustände und erzeugt (2n) Baumstämme. TFB(n+5+k) hat n+5+k Zustände und erzeugt (n+5+k) Baumst. Da ein fleißiger Biber die maximal mögliche Anzahl von Baumstämmen erzeugt, gilt (für alle n N): (n+5+k)  (2n). Sei n = 2(5+k). Dann gilt: n+5+k = 3(5+k) 2n = 4(5+k), also n+5+k < 2n. Aus der Monotonie von  folgt: (n+5+k) < (2n). Es ergibt sich also ein Widerspruch. Da alle Schlüsse korrekt sind, muss die Annnahme falsch sein.

29 Teil 2 Entscheidbarkeit

30 Textverarbeitungsprogramme
eingabe: TStringList function verarbeiten(s: TStringList): string ausgabe: string

31 Ein 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 uPunkt: verarbeiten ja, falls der Text mit einem Punkt endet Text nein, sonst

32 Ein 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.Strings[s.Count-1]; if h[length(h)] = '.' then a := 'ja' else a := 'nein'; result := a; end; begin eingabe := TStringList(MEingabe.Lines); ausgabe := verarbeiten(eingabe); PAusgabe.Caption := ausgabe; end;

33 Selbstanwendung Das Textverarbeitungsprogramms kann man auch auf den Quelltext des Textverarbeitungsprogramms selbst anwenden.

34 Selbstanwendung Das Textverarbeitungsprogramms kann man auch auf den Quelltext des Textverarbeitungsprogramms selbst anwenden. uPunkt: verarbeiten uPunkt.~pas ja

35 Hilfe, 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. uWhile1: verarbeiten ja, falls der Text die Zeichenkette ‘while‘ enthält Text nein, sonst

37 Übung Erstellen Sie zunächst ein Textverarbeitungsprogramms, 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: uWhile2: verarbeiten Gerät in eine Endlosschleife, falls der Text die Zeichenkette ‘while‘ enthält Text nein, sonst

38 Das (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 uProgramm:verarbeiten bei Eingabe von uProgramm.~pas hält uProgramm.~pas nein, sonst Annahme: Man kann diese Funktion programmieren.

39 Das (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'; end; begin eingabe := TStringList(MEingabe.Lines); ausgabe := verarbeiten(eingabe); PAusgabe.Caption := ausgabe; end; uSeltsam

40 Ein seltsames Programm
Seltsam dreht den Spieß um. keine Ausgabe, wenn uProgramm:verarbeiten bei Eingabe von uProgramm.~pas hält, da Endlosschleife uSeltsam: verarbeiten uProgramm.~pas ‘haelt‘, wenn uProgramm:verarbeiten bei Eingabe von uProgramm.~pas nicht hält

41 Ein seltsames Programm
Seltsam analysiert sein eigenes Halteverhalten. keine Ausgabe, wenn uSeltsam:verarbeiten bei Eingabe von uSeltsam.~pas hält, da Endlosschleife uSeltsam: verarbeiten uSeltsam.~pas ‘haelt‘, wenn uSeltsam:verarbeiten bei Eingabe von uSeltsam.~pas nicht hält

42 Ein seltsames Programm
Hält uSeltsam:verarbeiten bei Eingabe von uSeltsam.~pas? hält nicht, wenn uSeltsam:verarbeiten bei Eingabe von uSeltsam.~pas hält uSeltsam: verarbeiten uSeltsam.~pas hält, wenn uSeltsam:verarbeiten bei Eingabe von uSeltsam.~pas nicht hält Man kann es nicht klären, ohne sich in Widersprüche zu verwickeln.

43 Ein seltsames Programm
Woran liegt es, dass man widersprüchliche Ergebnissen erhält? hält nicht, wenn uSeltsam:verarbeiten bei Eingabe von uSeltsam.~pas hält uSeltsam: verarbeiten uSeltsam.~pas hält, wenn uSeltsam:verarbeiten 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.

44 Entscheidbarkeit 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.

45 Entscheidbarkeit Beispiel: Die Sprache der ASCII-Texte, die die Zeichenkette ‘while‘ enthalten, ist (Delphi-) entscheidbar. uWhile: verarbeiten ja, falls der Text die Zeichenkette ‘while‘ enthält Text nein, sonst

46 Unentscheidbarkeit des Halte-Problems
Satz Die Sprache der Delphi-Textverarbeitungsprogramme, die bei Eingabe des eigenen Quelltextes halten, ist nicht (Delphi-) entscheidbar. ja, falls uProgramm:verarbeiten 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.

47 Unentscheidbarkeit des Halte-Problems
Satz Das allgemeine Halteproblem (Hält ein ein Programm, wenn es Daten bearbeitet?) ist nicht entscheidbar. ja, falls uProgramm:verarbeiten 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

49 Semi-Entscheidbarkeit
Teil 3 Semi-Entscheidbarkeit

50 Das 10. Hilbert`sche 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!

51 Das 10. Hilbert`sche Problem
Satz Das 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

52 Das 10. Hilbert`sche 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: nein x = 1; y = 0; z = 0: nein x = -1; y = 0; z = 0 nein x = 0; y = 1; z = 0 nein ... x = 1; y = 2; z = -2 ja Ausgabe: Lösbarkeit; im Beispiel: ja

53 Semi-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.

54 Semi-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.

55 Semi-Entscheidbarkeit
Satz Eine Sprache L ist entscheidbar genau dann, wenn sowohl L als auch das Komplement von L semi-entscheidbar sind. Beweis: Die 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

57 Exkurs in die Geschichte der Informatik
Teil 4 Exkurs in die Geschichte der Informatik

58 David Hilbert

59 Hilbert´s 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. ...

60 Hilbert´s 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.

61 Das Hilbert´sche Programm
Ziel: Formalisierung der Mathematik Widerspruchsfreiheit: Die Formalisierung soll widerspruchsfrei sein (d. h.: keine zwei sich ausschließenden Aussagen können hergeleitet werden). Vollständigkeit: Jede wahre mathematische Aussage kann hergeleitet werden. Entscheidbarkeit: Es gibt ein Verfahren, mit dem man für jede beliebige Aussage in endlich vielen Schritten entscheiden kann, ob sie ableitbar ist oder nicht.

62 Kurt Gödel

63 Ergebnisse von Gödel Hilbertsche Programm: Formalisierung der Mathematik Widerspruchsfreiheit: Die Formalisierung soll widerspruchsfrei sein (d. h.: keine zwei sich ausschließenden Aussagen können hergeleitet werden). Vollständigkeit: Jede 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.

64 Alan Turing

65 Alonzo Church

66 Prä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“

67 Ergebnis von Turing und Church
Hilbertsche Programm: Formalisierung der Mathematik Widerspruchsfreiheit: Die Formalisierung soll widerspruchsfrei sein (d. h.: keine zwei sich ausschließenden Aussagen können hergeleitet werden). Vollständigkeit: Jede wahre mathematische Aussage kann hergeleitet werden. Entscheidbarkeit: Es 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.

68 Literaturhinweise 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.


Herunterladen ppt "Grenzen der Berechenbarkeit"

Ähnliche Präsentationen


Google-Anzeigen