Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Halteproblem

Das Halteproblem beschreibt eine Frage aus der theoretischen Informatik. Wenn für eine Berechnung mehrere Rechenschritte nach festen Regeln durchgeführt …

Inhalt5 Abschnitte
  1. 1. Kern des Halteproblems
  2. 2. Bedeutung und praktische Grenzen
  3. 3. Beispiel mit der Collatz-Vermutung
  4. 4. Diagonalargument und Semi-Entscheidbarkeit
  5. 5. Beweisschritte und leeres Eingabeband

Kern des Halteproblems

Das Halteproblem ist eine Frage der theoretischen Informatik: Kann man für jeden Algorithmus und jede beliebige Eingabe entscheiden, ob die Ausführung nach endlich vielen Schritten anhält oder endlos weiterläuft? Algorithmen werden dabei mit abstrakten Maschinen modelliert, besonders mit Turingmaschinen.

Alan Turing bewies 1937, dass es keinen Algorithmus und keine Turingmaschine gibt, die diese Frage für alle möglichen Turingmaschinen und Eingaben beantwortet. Das Halteproblem ist daher algorithmisch nicht entscheidbar. Es ist ein grundlegendes Ergebnis der Berechenbarkeitstheorie, also des Fachgebiets, das untersucht, was Maschinen grundsätzlich berechnen können.

Bedeutung und praktische Grenzen

In ausreichend komplexen formalen Systemen gibt es Aussagen, die weder beweisbar noch widerlegbar sind. Kurt Gödel veröffentlichte 1931 einen Beweis dafür; sein Gödelscher Unvollständigkeitssatz zeigte die Unmöglichkeit des Hilbertprogramms. Auch das Halteproblem beschreibt in formalen Systemen, die Turingmaschinen enthalten, eine Aussage, die weder bewiesen noch widerlegt werden kann.

Aus seiner Unlösbarkeit folgt, dass es wohldefinierte mathematische Funktionen gibt, deren Werte nicht für jeden Parameter berechnet werden können; die Radó-Funktion ist ein Beispiel. Nach der Church-Turing-These ist alles intuitiv Berechenbare auch von einer Turingmaschine berechenbar. Falls diese These wahr ist, kann das Halteproblem grundsätzlich nicht algorithmisch entschieden werden.

Eine allgemeine Programmlogik kann deshalb nicht automatisiert für alle Programme feststellen, ob sie jemals enden; dies heißt Terminierungsbeweis. Für bestimmte Klassen ist das Halteproblem jedoch entscheidbar, etwa für Programme ohne Schleifen. Praktische Programme und Verfahren können daher so aufgebaut sein, dass für sie aufgrund ihrer Struktur ein automatisierter Terminierungsbeweis möglich ist.

Beispiel mit der Collatz-Vermutung

Bei vielen Programmen lässt sich leicht feststellen, ob sie anhalten. Schwieriger ist dies bei Programmen, deren Verhalten mit ungelösten mathematischen Fragen verbunden ist. Für jede natürliche Zahl n > 0 betrachtet das folgende Programm wiederholt n/2 für gerade n und (3 · n) + 1 für ungerade n, bis n = 1 gilt:

„wiederhole; falls n gerade: n := n / 2; sonst: n := (3 * n) + 1; bis n = 1“.

Das Programm hält für jede Eingabe n, wenn die bisher unbewiesene Collatz-Vermutung richtig ist. Diese Vermutung besagt, dass die Folge früher oder später 4, 2, 1 erreicht; wegen der Abbruchbedingung würde das Programm dann anhalten.

Diagonalargument und Semi-Entscheidbarkeit

Angenommen, es gäbe eine Turingmaschine H, die zu einer codierten Maschinenbeschreibung b(T) und einer Eingabe w entscheidet, ob T mit w anhält oder endlos weiterläuft. Der Beweis zeigt, dass eine solche Maschine nicht existieren kann.

Das Halteproblem ist semi-entscheidbar: Eine universelle Turingmaschine kann T mit w simulieren und hält genau dann, wenn T mit w hält. Semi-entscheidbar bedeutet hier: Für Fälle, die zur Menge gehören, kann die Maschine anhalten und ein Ergebnis liefern; für andere Fälle darf sie endlos laufen. Das Halteproblem wäre genau dann entscheidbar, wenn auch sein Komplement semi-entscheidbar wäre.

Nimmt man an, eine Maschine G semi-entscheide das Komplement, dann berechnet sie die partielle Funktion g(i,w) = 1, falls die Turingmaschine i bei Eingabe w nicht hält, und ist sonst undefiniert. Ihre Diagonale wäre f(i) = 1, falls die Turingmaschine i bei Eingabe i nicht hält, und sonst undefiniert. Hat F, die f berechnet, die Nummer n_f, entsteht bei f(n_f) ein Widerspruch: Hält F auf n_f, müsste f dort undefiniert sein; hält F nicht, müsste sie halten und 1 ausgeben. Also ist das Komplement nicht semi-entscheidbar.

Beweisschritte und leeres Eingabeband

Die Diagonalsprache besteht aus allen Turingmaschinen, die nicht halten, wenn sie ihre eigene Kodierung als Eingabe erhalten. Wäre sie semi-entscheidbar, würde eine Maschine F bei b(F) genau dann halten und 1 ausgeben, wenn F bei b(F) nicht hält. Dies ist ein Widerspruch.

Wäre das Komplement des Halteproblems semi-entscheidbar, könnte eine Maschine G für b(T)*w bei nicht haltendem T den Wert 1 ausgeben. Dabei ist * eine Zeichenkette, die weder in b(T) noch in w vorkommt. Eine Maschine F könnte G dann mit b(T)*b(T) starten und so die Diagonalsprache semi-entscheiden. Da dies unmöglich ist, ist auch das Komplement nicht semi-entscheidbar. Eine entscheidende Maschine H würde bei nicht haltendem T 0 und bei haltendem T 1 ausgeben. Daraus ließe sich G bauen, die bei 0 eine 1 ausgibt und bei 1 endlos läuft. Folglich kann H nicht existieren.

Eine gleich schwere Variante ist das Halteproblem mit leerem Eingabeband, das blank-tape halting problem (BTHP) oder Null-Halteproblem. Es fragt, ob eine Turingmaschine T bei leerem Band anhält. Eine Maschine für das allgemeine Halteproblem löst unmittelbar das BTHP. Umgekehrt kann eine BTHP-Maschine das allgemeine Problem lösen: Zu T und w konstruiert man T_w, die zuerst w auf das Band schreibt und sich anschließend wie T verhält. T_w hält auf leerem Band genau dann, wenn T mit Eingabe w hält.

Lernvideos zu Halteproblem

Weiterlesen

Theoretische Informatik Ihre Inhalte sind die Automatentheorie, die Theorie der formalen Sprachen, die Berechenbarkeits- und Komplexitätstheorie, aber auch die Logik und formale … Algorithmus Algorithmen bestehen aus endlich vielen, wohldefinierten Einzelschritten. ... Damit können sie zur Ausführung in ein Computerprogramm implementiert, aber auch in … Automat (Informatik) Ein Automat oder eine abstrakte Maschine ist in der Informatik, speziell in der Automatentheorie, das Modell eines digitalen, zeitdiskreten Rechners. Turingmaschine Eine Turingmaschine ist ein mathematisches Modell der theoretischen Informatik, das eine abstrakte Maschine definiert. Bei diesem Rechnermodell werden nach … Alan Turing Er gilt heute als einer der einflussreichsten Theoretiker der frühen Computerentwicklung und Informatik. Turing schuf einen großen Teil der theoretischen … Berechenbarkeitstheorie Die Berechenbarkeitstheorie (auch Rekursionstheorie) ist ein Teilgebiet der theoretischen Informatik ... Ein weiteres Problem ist das Halteproblem. Es … Summe Eine Summe bezeichnet in der Mathematik das Ergebnis einer Addition sowie auch die Darstellung der Addition. Im einfachsten Fall ist eine Summe also eine … Innenwinkel Die Innenwinkel eines Polygons sind in der Geometrie die Winkel, die durch zwei benachbarte Polygonseiten eingeschlossen werden und im Inneren des Polygons … Dreieck Ein Dreieck (veraltet auch Triangel, lateinisch: triangulum) ist ein Polygon und eine geometrische Figur. Es handelt sich innerhalb der euklidischen … Grad (Winkel) Die Angabe der Winkelweite in Grad wird als Gradmaß bezeichnet, um sie von anderen Winkelmaßen, wie zum Beispiel dem Bogenmaß in Radiant, abzugrenzen. Als … David Hilbert David Hilbert (* 23. Januar 1862 in Königsberg; † 14. Februar 1943 in Göttingen) war ein deutscher Mathematiker, Physiker, Philosoph und Hochschullehrer. Funktion (Mathematik) In der Mathematik ist eine Funktion (lateinisch functio) oder Abbildung eine Beziehung (Relation) zwischen zwei Mengen, die jedem Element der einen Menge …