Tl; dr: "(sagen) ob es anhält oder nicht" und "(sagen) ob es anhält" sind nicht dasselbe. Verwenden Sie Mathematik, um Verwirrung durch Sprachmehrdeutigkeit zu vermeiden.
Das Halteproblem besagt, dass wir für eine gegebene Eingabe x und eine Maschine H nicht sagen können, ob die Maschine H an der Eingabe x anhält oder nicht.
Nein, das steht nicht. Das Halteproblem ist das Rechenproblem der Entscheidung, ob auf anhält , wenn und als Eingabe gegeben sind. Es ist wichtig zu beachten, dass "entscheiden" hier "Ja sagen, wenn es so ist, und Nein sagen, wenn es nicht ist" bedeutet.H.xxH.
Die Unentscheidbarkeit des Stoppproblems besagt, dass es keinen einzelnen Algorithmus (Turing-Maschine) gibt, der das Stoppproblem für alle und löst .H.x
Beim Anhalten des Problems können wir nicht sagen, ob die Maschine angehalten wird, selbst wenn die Eingabe zur Sprache gehört (JA-Fälle). Wie ist es dann halbentscheidbar?
Nach der obigen Klarstellung sollte Ihre Verwirrung hier klar sein. Es ist egal, was "wir sagen können". Das "Semi-Stopping-Problem" ist gelockert: Der Algorithmus muss immer noch "Ja" sagen, wenn auf anhält , aber er kann tun, was er will, wenn dies nicht der Fall ist (außer Antwort "Ja").H.x
Dies ist trivial zu implementieren: Führen Sie einfach aufH.x. Wenn es anhält, antworten Sie mit "Ja". Wenn nicht, spielt es keine Rolle, da wir eine Schleife durchführen dürfen.