Grenzen der Berechenbarkeit — das Halteproblem
Limits of Computability — the Halting Problem
Es gibt präzise gestellte Probleme, die KEIN Programm lösen kann — egal wie schnell die Hardware wird. Die Turingmaschine, ein endlicher Automat mit unbegrenztem Band, macht den Berechenbarkeitsbegriff fassbar; weil Programme selbst Daten sind, kann man Programme auf Programme ansetzen. So erweist sich das Halteproblem — „terminiert dieses Programm mit dieser Eingabe?" — als prinzipiell unentscheidbar; deshalb kann es keinen perfekten Endlosschleifen-Detektor und keinen perfekten Virenscanner geben, und es ist keine Frage fehlender Rechenleistung.
Voraussetzungen (3)
Was besagt das Halteproblem?
Mit ausreichend schnellen Computern der Zukunft wird sich das Halteproblem lösen lassen.
Welche Aufgabe kann eine Turingmaschine lösen, ein endlicher Automat aber nicht?
Welche Situation zeigt, dass Programme selbst nur Daten sind?
Ein Problem, das kein Algorithmus für alle Fälle lösen kann, nennt man prinzipiell ___ (Gegenteil von „entscheidbar").
Was macht das Ergebnis „das Halteproblem ist unentscheidbar" wissenschaftlich so bemerkenswert?
Der Beweis des Halteproblems beginnt so: „Angenommen, es gäbe ein Prüfprogramm HALT(P, E), das immer korrekt antwortet …" und endet in einem Widerspruch. Wie heißt diese Beweistechnik?
Für ein EINZELNES, konkretes Programm kann ein Mensch oder ein Werkzeug durchaus nachweisen, dass es anhält — das widerspricht dem Halteproblem nicht.
Ein Softwarehaus verspricht einen Scanner, der JEDE Endlosschleife in JEDEM Programm sicher vor dem Start erkennt. Was ist davon zu halten?
Warum folgt aus dem Halteproblem, dass es keinen perfekten Virenscanner geben kann?
Die Turingmaschine ist nur ein Gedankenmodell — trotzdem gilt, was sie nicht berechnen kann, als für Computer überhaupt nicht berechenbar.
Die These, dass alles im intuitiven Sinn Berechenbare auch von einer Turingmaschine berechnet werden kann, heiĂźt ___-Turing-These.
Welches Problem ist praktisch unlösbar, aber NICHT prinzipiell unlösbar?
Dass das Halteproblem unentscheidbar ist, bedeutet: Kein Programm kann jemals ĂĽber ein anderes Programm irgendetwas herausfinden.