2016-09-02 10 views
2

人間の言語(例えば英語)はチューリングマシンをシミュレートするのに十分強力であると確信しています。しかし、それは自然言語がプログラミング言語よりも表現力に優れていることを意味し、それは疑わしいと思われる。自然言語チューリングが完了しましたか?

チューリングが完了しましたか?

+1

チューリングの完全性は、一般的な言語のアスペクトまたは属性としての計算可能性*とは大きく異なります。したがって、他のより公式な言語のように、自然(特に話された)言語にこの用語を実際に適用することはできません。 –

+0

自然言語はプログラミング言語と同じ意味で計算モデルを表現しないことは直感的です。しかし、一方で、私は、プログラミング言語を使ってコンピュータのシンボルを操作し、人間の言語を使って脳のシンボルを操作することの技術的な違いを正確に把握することはできません。 –

答えて

7

はじめに「言語Xは完全にチューリングされていますか」という言葉は、言語Xの明確なセマンティクスを考えると明確に定義された質問に過ぎません。自然言語の複雑な性質と依存文脈と直感で。たいていの(すべての)自然言語には明確な構文もありません。

それ以外の主な混乱は、計算モデルが厳密にチューリングマシンよりも強力である、つまりチューリングマシンをシミュレートすることはできないと仮定していますが、チューリングマシンはできません。本当じゃない。たとえば、オーラックを使ってチューリングマシンを拡張することができ、プレーンチューリングマシンよりも厳密に強力な計算モデルを得ることができます。

同じように、プログラミング言語MagicLangを定義すると、通常のプログラミング言語でできることすべてを実行できるだけでなく、停止問題を解決できます。そのような言語のセマンティクスを定義するのは簡単です。基本として使用した言語のセマンティクスを取り、セマンティクスを持つ関数bool halts(string src, string input)を追加するだけです。 "ソースコードsrcで記述されたプログラムが一定の時間入力が与えられるとinput "となります。それは簡単です。この言語を実装するのは難しい、またはむしろ不可能です。

自然言語は停止問題を記述することができ、私たちの脳は自然言語を「実行」することができます。つまり、「このプログラムは停止しますか?」という質問に答えることができます。だから、もし私たちの脳ができること全てを行うことができるコンピュータを作ることができれば、これもできるはずです。しかし、私たちの脳は、100%の精度で停止問題を解決することはできません。私たちの脳は、100%の精度で通常のプログラムを実行することさえできません。どのくらいの頻度であなたの頭の中でプログラムを踏んで、現実とは異なる結果が出たかを覚えておいてください。私たちの脳は、学習に直面し、直感的なつながりを持ち、ヒューリスティックを適用することができますが、これらのことはいつも間違った結果をもたらす危険があります。

コンピュータは同じことをすることができますか?そうでなければ解決できない問題にアプローチするヒューリスティックと機械学習を使用することができ、通常のプログラミング言語は自然言語(決まっていないものまで)で記述できるすべての問題を解決しようとする可能性があります。しかし、脳のように、これらのプログラムは間違った結果をもたらすことがあります。実際に、私たちの機械学習アルゴリズムや経験則は、人間の脳のアルゴリズムほど進んでいないので、間違った結果をもたらすことがあります。

1

ソフトウェア言語が(任意の新しい関数を定義するなどの)それ自身の任意の拡張を定義するために使用できるほど複雑である場合、それは明らかにチューリング完了です。

自然言語を使って、私は十分な時間を与えて、他の人間の用語や概念を教えて、以前にはできなかった任意の主題について議論する能力を伸ばすことができます。例えば、著作権法や天体物理学(もし彼らがすでにそれを知らなかったら)。したがって、これは正確なアイデンティティー以上の類推であるかもしれませんが、自然言語に対してチューリング完全性のような性質があるように見えます。それらは、任意の拡張を定義して自分自身に送信するために使用できます。 (確かに、すべての人間が天体物理学を学ぶために実際に切り抜かれているわけではありませんが、理想化されていない旋盤機械には、限られた量のメモリしかないので、実行できないプログラムを定義することは常に可能です十分な記憶がある。)

関連する問題