本当に実用的な問題の多くは、変装の停止問題だからです。それらの解決策は、停止する問題を解決します。
特定のプログラムで可能な限り高速のマシンコードを見つけるコンパイラが必要ですか?実際に停止する問題。
JavaScriptがあり、いくつかの変数は高いセキュリティレベルにあり、いくつかは低いセキュリティレベルにあります。攻撃者が高度なセキュリティ情報を取得できないようにする必要があります。これも停止する問題です。
プログラミング言語のパーサーがあります。変更しますが、以前のすべてのプログラムを引き続き解析するようにします。実際に停止する問題。
アンチウイルスプログラムがあり、悪意のある命令を実行するかどうかを確認したい。実際に停止する問題。
ウィキペディアの例については、はい、最新のコンピューターを有限状態マシンとしてモデル化できます。しかし、これには2つの問題があります。
RAMの正確なビット数に応じて、すべてのコンピューターは異なるオートマトンになります。そのため、オートマトンは実行可能なマシンに依存しているため、これは特定のコードを調べるのに役立ちません。
nビットのRAMがある場合は、状態が必要です。したがって、最新の8GBコンピューターの場合、2 32000000000です。これは非常に大きい数値であるため、Wolfram Alphaはそれを解釈する方法すら知りません。2 10 9を実行すると、300000000の 10進数が表示されます。これは、通常のコンピューターに格納するには明らかに明らかに大きすぎます。2n2320000000002109300000000
停止の問題により、アルゴリズムの相対的な難しさについて推論することができます。存在しないアルゴリズムがあること、時には問題を推測するだけで解決できるかどうかがわからないこともあります。
停止の問題がなければ、定理を入力し、それらが真であるかどうかを出力するヒルベルトの魔法のアルゴリズムを探し続けます。これで、私たちは見るのをやめることができ、これらの問題を解決するための発見的方法と二番目に良い方法を見つけることに努力を注ぐことができます。
更新:コメントで提起されたいくつかの問題に対処するためだけに。
@Tyler Fleming Cloutier:「無意味な」問題は、停止する問題が決定不能であることの証明で発生しますが、決定不能性の核となるのは、実際に無限の探索空間を持つことです。特定のプロパティを持つオブジェクトを検索していますが、プロパティが存在しない場合は、いつ完了したかを知る方法がありません。
問題の難しさは、それが持つ数量詞の数に関係している可能性があります。任意のプロパティを持つオブジェクトが存在することを証明しようとすると()、それが見つかるまで検索する必要があります。存在しない場合、これを知る方法はありません(一般的に)。すべてのオブジェクト(∀)にプロパティがあることを証明することは困難ですが、プロパティを持たないオブジェクトを検索して反証することができます。forallとexistの間の交替が多いほど、問題は難しくなります。∃∀
詳細については、算術階層を参照してください。上記何レベル1が半決定可能であるが、決定不能です。Σ00=Π00
Halting問題やLiarsパラドックスのような無意味なパラドックスを使わずに、決定できない問題があることを示すこともできます。チューリングマシンは、ビットの文字列、つまり整数を使用してエンコードできます。しかし、問題は言語、つまり整数のサブセットとしてエンコードできます。整数のセットと整数のすべてのサブセットのセットの間に全単射がないことが知られています。したがって、チューリングマシン(アルゴリズム)が関連付けられていない問題(言語)がいくつかあるに違いありません。
@Brent:はい、これはこれが現代のコンピューターに決定可能であることを認めています。ただし、特定のマシンについては決定可能です。ディスク容量のあるUSBドライブ、またはネットワークに保存する機能などを追加すると、マシンが変更され、結果は保持されません。
また、アルゴリズムが「このコードは停止します」と言っている場合が多く、コードが失敗してメモリが不足するため、メモリを1ビット追加するとコードが成功し、別の結果を与えます。
実のところ、チューリングマシンには無限のメモリ容量はありません。無限の量のシンボルがテープに書き込まれることは決してありません。代わりに、チューリングマシンには「制限のない」メモリがあります。つまり、必要なときにより多くのメモリソースを取得し続けることができます。コンピューターはこんな感じです。RAM、USBスティック、ハードドライブ、またはネットワークストレージを追加できます。はい、宇宙の原子を使い果たすと、メモリを使い果たします。ただし、無制限のメモリを使用する方がはるかに便利なモデルです。