決定論的プログラム(つまり、ステートマシン)が停止問題を解くことと同等の無限ループにあるかどうかを検出していますか?
私は解決策を思いついたが、なぜそれが機能しないのかわからない:
- プログラムを実行させます
- 無限ループにあると思われる場合は、定期的にメモリのスナップショットを撮ります
- 同じスナップショットを検出した場合、プログラムは無限ループに陥っています
- 同じスナップショットを2回取得しない限り、(1)無限ループではないか、(2)スナップショットをより迅速に取得する必要があります(おそらく、メモリアクセスごとに1回ですか?)
これはうまくいかないと思います...しかし、なぜですか?
プログラムが無限ループにあるかどうかを検出するのは完全に合理的な方法のようです(たとえば、メモリ自体ではなくハッシュを格納する場合、100%正確ではありませんが)...もしあれば、何が問題になっていますか?