Grenzen der Berechenbarkeit

Slides:



Advertisements
Ähnliche Präsentationen
Hier einige Hieroglyphen:
Advertisements

Polynomial Root Isolation
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Prof. Dr. W. Conen 15. November 2004
Telefonnummer.
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Einführung in Berechenbarkeit und Formale Sprachen
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Verifizieren versus Berechnen
Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Übung 6.1Turing-Maschine 1.Machen Sie sich mit der Funktionsweise des Busy Beaver-Programms vertraut Vollziehen sie die 11 Schritte der ersten Turing-Tabelle.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Kapitel 5 Stetigkeit.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
AC Analyse.
Differentielles Paar UIN rds gm UIN
(Ron Rivest, Adi Shamit, Leonard Adleman , 1977)
Prof. Dr. Bernhard Wasmayr
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Die Collatz-Folge a0 selbst wählen ( N) ak+1 = ak/2 falls ak gerade
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
20:00.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Zusatzfolien zu B-Bäumen
In der Schule.
Syntaxanalyse Bottom-Up und LR(0)
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Grenzen der Berechenbarkeit
PROCAM Score Alter (Jahre)
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Geometrische Aufgaben
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Symmetrische Blockchiffren DES – der Data Encryption Standard
Retuschen.ppt Die folgende Schau zeigt die Möglichkeiten, mit PhotoDraw Digitalbilder zu retuschieren. Vergleichen Sie jeweils zwei Bildpaare durch fleissiges.
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
ENDLICHE KÖRPER RSA – VERFAHREN.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
Es war einmal ein Haus
Analyse der Laufzeit von Algorithmen
Berechenbarkeit Klaus Becker Berechenbarkeit.
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
Sehen, Hören, Schmecken: wenn uns unsere Sinne täuschen
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
 Präsentation transkript:

Grenzen der Berechenbarkeit Klaus Becker 2004

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)

Nicht-berechenbare Funktionen Teil 1 Nicht-berechenbare Funktionen

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

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

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

Ü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

Übung

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

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

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; ...

Ü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

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  0 n  n-1 (n > 0) ... Keine Funktion

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  0 n  n-1 (n > 0) ... Keine Funktion

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  0 n  n-1 (n > 0) ... Keine Funktion

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 ?

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.

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 ?

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

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 ?

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:

Ü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“.

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

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

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

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

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).

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.

Teil 2 Entscheidbarkeit

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

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

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;

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

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

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

Ü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

Ü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

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.

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

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

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

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.

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.

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.

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

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.

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.

Semi-Entscheidbarkeit Teil 3 Semi-Entscheidbarkeit

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!

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

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

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.

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.

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

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

David Hilbert

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

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.

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.

Kurt Gödel

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.

Alan Turing http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Turing.html

Alonzo Church

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“

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.

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.