WikiDer > Beenden Sie das Problem
Es Stoppproblem, auch bekannt als "Halteproblem", ist es Entscheidungsproblem von dem Mathematik und Informatik, um zu bestimmen, ob a Algorithmus mit endlicher Eingabe in endlich vielen Schritten endet oder unendlich weitergeht. Es ist ein bekanntes Beispiel für ein mathematisches Problem, das unentscheidbar und eines der ersten als solche erkannten Probleme. Dies wurde bewiesen durch Alan Turing im 1936.
Definition
Das Stoppproblem wird informell wie folgt definiert Entscheidungsproblem:
- Ein Programm gegeben und ein Eingabewert , herausfinden, ob mit Eingang stoppt nach einer endlichen Anzahl von Schritten.
Um das Stoppproblem formal zu definieren, müssen wir uns darauf einigen, was wir unter dem Begriff Programm verstehen. Ursprünglich das Stoppproblem für Turing-Maschinen formuliert, kann aber auch analog für andere Turingfull Formalismen definiert.
Die Eingabe einer Turingmaschine besteht aus einer Reihe von Symbolen, a Schnur. Damit Turing-Maschinen als Input für andere Turing-Maschinen verwendet werden können, müssen wir sie zuerst codieren, oder Computerprogrammierung. Zum Beispiel können wir alle Turing-Maschinen in einer Reihe auflisten und dann die Sequenznummer in dieser Reihe als Code für die Turing-Maschine verwenden. wenn ein Code für eine Turingmaschine ist, dann schreiben wir für die durchlaufende Turingmaschine ist kodiert. Außerdem schreiben wir für den Code des Paares . Das Stoppproblem kann nun formal wie folgt definiert werden:
Entscheidungsprobleme werden oft auch als Menge positiver Eingabewerte definiert, daher lautet die Definition des Stoppproblems alternativ:
Unentscheidbarkeit
Alan Turing bewies 1936, dass das Stoppproblem unentscheidbar ist. Das heißt, es gibt keine Turingmaschine, die in allen Fällen richtig entscheidet, ob eine Turingmaschine mit einem bestimmten Eingangswert in endlich vielen Schritten stoppt oder nicht.
- Die Unberechenbarkeit des Stoppproblems ist bewiesen mit a Beweis durch Widerspruch. Nehmen Sie daher an, dass es einen Programmstopp gibt (ein, X) ist, dass wenn der Algorithmus ein wird auf den Eingang angewendet X, gibt "1" zurück, wenn es endet, und gibt "0" zurück, wenn es nicht endet.
- Bilden Sie nun das Algorithmus-Paradox(ein), dass für einen Algorithmus ein gibt einen Wert zurück, gibt nicht an, welcher, wenn halt(ein, ein) gibt das Ergebnis 0 zurück und fährt unbegrenzt fort, wenn halt(ein, ein) liefert das Ergebnis 1.
- Die Frage ist nun, ob der Algorithmus am Ende paradox wird, wenn er als Eingabe Paradox erhält?
- Wenn ja, dann sollte gemäß der Definition von paradox halt(paradox, paradox) 0 zurückgeben. Nach der Definition von halt bedeutet dies, dass Paradox nicht mit Paradox als Eingabe endet.
- Wenn nein, dann sollte gemäß der Definition von paradox halt(paradox, paradox) 1 zurückgeben. Nach der Definition von halt bedeutet dies, dass paradox mit paradox als Eingabe endet.
- Paradox (Paradox) kann also nicht enden, aber es kann auch nicht enden. Widerspruch, daher ist die ursprüngliche Annahme, dass Halt existiert, falsch.
Für seinen Beweis bzw. für die Definition des Algorithmus kam Turing auf die später berühmte Idee der Turing-Maschine.
Quellen
- (und) Elaine Rich, Automaten, Berechenbarkeit und Komplexität. Theorie und Anwendungen., 2008