Dies ist bekannt über das Halteproblem und die Halbentscheidbarkeit:
Das Halteproblem besagt, dass wir für eine gegebene Eingabe x und eine Maschine H nicht sagen können, ob die Maschine H bei Eingabe x anhält oder nicht.
Eine Sprache gilt als halbentscheidbar, wenn es eine Turing-Maschine gibt, die anhält, wenn ein Wort zur Sprache gehört (JA-Fälle), und kann ablehnen oder in eine Endlosschleife gehen, wenn das Wort nicht zur Sprache gehört (KEIN Fall). .
Nun können wir beim Anhalten des Problems nicht sagen, ob die Maschine anhält, selbst wenn die Eingabe zur Sprache gehört (JA-Fälle). Wie ist es dann halbentscheidbar? Ich denke, es sollte nicht rekursiv aufzählbar oder unentscheidbar sein.
Antworten:
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.
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. x x H.
Die Unentscheidbarkeit des Stoppproblems besagt, dass es keinen einzelnen Algorithmus (Turing-Maschine) gibt, der das Stoppproblem für alle und löst .H. x
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.
quelle