【ていしもんだい】
停止問題 とは?
💡 「このプログラム、いつか止まる?」に万能な答えは存在しない
📌 このページのポイント
停止問題って何?プログラムが止まるかどうか、動かしてみればわかるんじゃないの?
止まるプログラムなら待てばわかるけど、止まらない場合はいつまで待っても「まだ動いてるだけ」なのか「永遠に止まらない」のか区別がつかないんだよ
たしかに...。じゃあ動かさずに判定する方法はないの?
チューリングが証明したのはまさにそこで、「あらゆるプログラムについて停止するか判定できる万能な装置は作れない」ということなんだ
どうやって証明したの?
自分で自分を判定しようとすると矛盾するんだね!
そうそう、「この文は嘘である」というパラドックスに似ているね。対角線論法とも呼ばれる手法だよ
これって実際の開発にも影響あるの?
まとめ:ざっくりこれだけ覚えればOK!
「停止問題」って出てきたら「プログラムが止まるかどうかを完璧に判定する方法は存在しない、という理論的限界」と思えればだいたいOK!
📖 おまけ:英語の意味
「Halting Problem」 = 停止問題
💬 Halt(停止する)から来ていて、プログラムがhaltするかどうかを判定できるか?という問いそのものが名前になっているよ