私は、人間の言語 (英語など) がチューリング マシンをシミュレートするのに十分強力であると確信しています。しかし、それは自然言語がプログラミング言語よりも多かれ少なかれ表現力があることを意味し、疑わしいようです.
自然言語チューリングは完全か?
私は、人間の言語 (英語など) がチューリング マシンをシミュレートするのに十分強力であると確信しています。しかし、それは自然言語がプログラミング言語よりも多かれ少なかれ表現力があることを意味し、疑わしいようです.
自然言語チューリングは完全か?
まず第一に、「言語 X のチューリングは完全か」は、言語 X の明確に定義されたセマンティクスが与えられた場合、明確に定義された質問にすぎません。自然言語の複雑な性質と文脈と直感への依存により、自然言語に対して 1 つを定義することはほとんど不可能です。 . ほとんどの (すべて?) 自然言語には、明確に定義された構文さえありません。
それはさておき、あなたの主な混乱は、計算モデルがチューリングマシンよりも厳密に強力になることはできないという仮定に基づいています。つまり、チューリングマシンをシミュレートすることはできますが、チューリングマシンができない計算を表現することもできません。本当じゃない。たとえば、オラクルを使用してチューリング マシンを拡張し、単純なチューリング マシンよりも厳密に強力な計算モデルを取得できます。
同様に、通常のプログラミング言語でできることはすべて実行でき、しかも停止問題を解決できるプログラミング言語 MagicLang を定義できます。そのような言語のセマンティクスを定義するのは簡単です: 基礎として使用した言語のセマンティクスを取り、セマンティクスを持つ関数bool halts(string src, string input)
を追加するsrc
だけです。入力input
"。それは簡単です。この言語を実装するのが難しい、というか不可能です。
ここで、自然言語は停止問題を記述することもでき、私たちの脳は自然言語を「実行」できる、つまり「このプログラムは停止しますか」という質問に答えることができると主張する人もいるかもしれません。したがって、私たちの脳ができるすべてのことを実行できるコンピューターを構築できれば、これも同様に実行できるはずです。しかし問題は、私たちの脳は停止問題を 100% 正確に解決できないということです。私たちの脳は、通常のプログラムを 100% の精度で実行することさえできません。頭の中でプログラムを実行し、現実とは異なる結果を思いついたことがどれだけあるかを覚えておいてください. 私たちの脳は、学習、直感的な接続の作成、ヒューリスティックの適用が得意ですが、これらには常に間違った結果をもたらすリスクが伴います。
では、コンピューターは同じことを行うことができるでしょうか? はい、ヒューリスティックと機械学習を使用して、他の方法では解決できない問題にアプローチできます。そのため、通常のプログラミング言語は、自然言語で記述できるすべての問題 (決定不能なものも含む) の解決を試みることができます。しかし、脳と同じように、これらのプログラムは時々間違った結果を出すことがあります。実際、私たちの機械学習アルゴリズムとヒューリスティックスは人間の脳ほど高度ではないため、間違った結果を出す可能性がはるかに高くなります.