Tl; dr:「停止するかどうか」と「停止する場合」は同じものではありません。数学を使用して、言語のあいまいさによって引き起こされる混乱を回避します。
停止問題は、与えられた入力xとマシンHについて、マシンHが入力xで停止するかどうかを判断できないことを示しています。
いいえ、それはそれが言っていることではありません。停止問題かどうかを決めるの計算問題ですH 止まる x、与えられた x そして H入力として。ここで「決定」とは、「そうである場合はイエスと言い、そうでない場合はノーと言う」ことを意味することに注意することが重要です。
停止問題の決定不能性は、すべての停止問題を解決する単一のアルゴリズム(Turingマシン)がないことを示しています。 H そして x。
ここで、問題を停止する際に、入力が言語に属していても(YESの場合)、マシンが停止するかどうかはわかりません。それでは、それはどのように半決定可能ですか?
上記の説明の後、ここでの混乱は明確になります。「私たちが言えること」は問題ではありません。「半停止の問題」は緩和されました。次の場合、アルゴリズムは「はい」と言わなければなりません。H 止まる x、ただし、そうでない場合は何でも実行できます(「yes」と回答する場合を除く)。
これは実装するのは簡単です:実行するだけです H オン x。停止した場合は、「はい」と答えてください。ループしない場合は、ループすることが許可されているため、問題ではありません。