チューリング完了とはどういう意味ですか?


34

チューリング完全であるということの定義のほとんどは、ある程度トートロジー的であることがわかります。たとえば、「チューリング完全であることとはどういう意味ですか」をGoogleで検索すると、次のようになります。

チューリングマシンができる問題を解決できるなら、コンピューターはチューリング完全です...

異なるシステムがチューリング完全であるかどうかは非常に明確に定義されていますが、チューリング完全であることの意味/結果が何であるかの説明は見ていません。

同じタスクを実行できる非チューリングマシンが存在しない場合、チューリングマシンで何ができますか?たとえば、コンピューターはのような簡単な計算を実行できます(1+5)/3=?が、通常の計算機でも実行できます。

「別のチューリングマシンをシミュレートできる」と言うだけでチューリングマシンの機能を定義する方法はありますか?


31
「チューリングマシン」の定義を調べます。チューリングマシンは「別のチューリングマシンをシミュレートできる」と定義されていないため、循環定義はありません。これは完全に設計された理論上のコンピューター(基本的には無限テープステートマシン)です。「チューリング完了」と「チューリング機械」を混ぜているだけです。私が知る限り、チューリングマシンで実行できないアルゴリズムはまだ知りませんが、それは私自身の無知かもしれません。
ルアーン

2
@Luaan The Church-Turing Thesisはあなたに同意するでしょう。
ブライアンマックラッチン

「チューリングマシンの機能を定義する方法はありますか」。確かに。理論は、チューリングマシン(L、NL、P、NP、PSPACEなど)でアルゴリズムを解決するために必要なスペースと時間を調べます。また、解決できない問題もあります(通常、その他の解決できない問題)。チューリングマシンでは解決できない問題の1つの例は、停止問題です。
ミリースミス

CS(または他の)理論に関しては、グーグルで検索するよりもトピックに関する本を読むほうが常に良いです。多くの場合、トピックを完全に理解していない人々によって書かれたトピックに関するブログ記事を読むことはありません自分自身。1冊の良い本はあなたの時間を節約し、より広い視野とより良い理解を与えます。
Bozidar Sikanjic

アッカーマン関数はチューリングマシンは計算が、計算(のより限定されたモデルができることを何かの顕著な例である原始再帰することはできません)。
-zwol

回答:


13

さらに別の答えを追加するかどうかしばらく考えました。他の答えは、彼の質問の真ん中に焦点を当てています(「チューリング完全」、「トートロジー」など)。最初と最後の部分、つまり大きくてわずかに哲学的な図をつかんでみましょう。

しかし、それはどういう意味ですか?

チューリング完了とはどういう意味ですか?

「別のチューリングマシンをシミュレートできる」と言うだけでチューリングマシンの機能を定義する方法はありますか?

非公式にあなたのメカニズムが実行できることを完全手段チューリングされ、話すどんなことがある(コードの面で)長い、あなたが考えることができ、アルゴリズム、複雑どのように複雑な、深い、再帰、関係なく、ストレージや時間は次のようになりどんなにそれを評価する必要がありました。これは、問題が計算可能であればそれだけで成功することは言うまでもないが、それは場合計算、それがされます(停止)成功します。

(注:これが「非公式」である理由を調べるには、これらの行に沿って、より精巧な言葉遣いで教会-チューリングの論文を調べてください。論文であるため、正しいかもしれませんし、そうでないかもしれません。この小さな省略をコメントで指摘しています。)

「アルゴリズム」とは、今日のコンピューターアルゴリズムとして一般に理解されているものを意味します。つまり、ストレージを操作する一連の個別のステップで、いくつかの制御ロジックが混在しています。ただし、Oracleマシンとは異なります。つまり、「推測」することはできません。

実用的な非tc言語の例

自分でプログラムを作成している場合は、おそらく文字列を何らかのパターンに一致させるために使用される正規表現を知っているでしょう。

これは、チューリング完全ではない構造の一例です。特定のフレーズに一致する正規表現を作成することが不可能な演習を簡単に見つけることができます。

たとえば(実際の実際のアプリケーションでは多くのプログラマーを悩ませています)、プログラミング言語またはXMLドキュメントに一致する正規表現を作成することは理論上および実際上不可能です:正規表現がブロック構造を見つけることは不可能です(do ... endまたは{ ... }言語の場合、XMLドキュメントの開始タグと終了タグ)が任意に深くできる場合。そこに制限がある場合、たとえば、「再帰」のレベルは3つしか持てない場合、正規表現を見つけることができます。しかし、それが制限されていない場合、それはノーゴーです。

ソースコードを解析するために(Cなどの)チューリング完全言語でプログラムを作成することは明らかに可能であるため(すべてのコンパイラーが行う)、正規表現はそのプログラムをシミュレートできません。したがって、定義によりチューリング完全ではありません。

動機

チューリングマシン自体のアイデアは実用的ではありません。つまり、Turingは確かに、たとえばCharles Babbageやvon Neumannとは対照的に、実際のコンピューターなどを作成するために発明したわけではありません。チューリングマシンの概念を持つことのポイントは、非常に単純であることです。ほとんど何もありません。可能な(そして実際の)コンピューターを想像できる限り最小限に減らします。

この単純化のポイントは、これにより、理論的な質問(問題の停止、複雑さのクラス、および理論的なコンピュータサイエンスが気にするものなど)について簡単に熟考できるようになることです。特に1つの特徴は、通常、その言語で前述のチューリングマシン(非常に簡単です!)をプログラミングするだけで、特定の言語またはコンピューターがチューリングマシンをシミュレートできるかどうかを非常に簡単に確認できることです。

無限に

無限の時間やストレージは必要ないことに注意してください。しかし、時間とストレージの両方に制限はありません。それらは、計算可能な実行ごとに最大値を持ちますが、その値になりうる大きさに制限はありません。実際のコンピューターが最終的にRAMを使い果たすという事実は、ここで説明されています。もちろんこれは物理的なコンピュータの制限ですが、それは明らかであり、マシンの理論的な「計算能力」にとっても関心の対象ではありません。また、実際にかかる時間についてはまったく興味がありません。したがって、私たちの小さなマシンは、任意の量の時間とスペースを使用することができ、それは絶対に実用的ではありません。

... 以降

一つの驚異的な最後の点は、それから、このような単純なは、単純なことを行うことができるということですすべてのものの任意の考えられる実際のコンピュータができ、これまで我々が今日知っている限り、少なくとも- 、宇宙全体では、(単に非常に遅い)を達成します。


「非公式に言えば、チューリング完全であるということは、あなたのメカニズムがあなたが考えうるあらゆるアルゴリズムを実行できることを意味します。」または、代わりに、チューリングマシンをアルゴリズムの定義として使用することもできます。この場合、非公式ステートメントは「任意のチューリングマシンをシミュレートできます」の非公式バージョンです(これは悪いことではなく、単なる観察です)。
デビッドリチャービー

私の印象では、OPはチューリングを完了することの意味を直感的に理解するように求めています。したがって、この種の軽快で非理論的なコンピューターサイエンスの答えです。これを指摘してくれてありがとう、答えに統合します。@DavidRicherby
AnoE

ありがとう!それは私が探していた種類の答えです。私は停止する問題について考えていました。そして、単純な有界forループを持つ言語がどのように予測可能であるか(それらは常に停止する)-したがって、非チューリング完全です。多分チューリング完全であるとは、何らかの形で潜在的に予測できないことを意味していると考えていました(これらの関数の

@sashoalm、答えが気に入ってくれて嬉しい。いいえ、予測不可能性は問題を実際に考慮しません。有界forループ(非tcとして)も良い例です。実際、単純な(そしてより現実的な)tc言語の別の良い例は、変数と(無制限の)だけを持つものです。これwhileは既にtcで十分です。制御構造の(非)境界は重要な要素の1つです。
AnoE

38

それはまったくトートロジカルではありません。

すべてのチューリングマシンをシミュレートできる場合、つまり、少なくともチューリングマシンと同じくらい強力であれば、計算のモデルはチューリング完全です。

チューリングマシンでできることの1つは、他のチューリングマシンをシミュレートすることです(ユニバーサルチューリングマシンを使用)。つまり、計算モデルがチューリングマシンをシミュレートできない場合、チューリングマシンが実行できることを少なくとも1つ実行できないため、定義を満たさないため、チューリングが完全ではありません。チューリング完全性自体を定義していないため、循環性はありません。チューリング完全性とは、チューリングマシンが実行できるすべてのことを実行できるということです。

しかし、計算のモデルが失敗する可能性のある他のことがたくさんあります。例えば、いかなる決定性有限オートマトン(DFA)は、いくつかの数からなる文字列のクラスを認識することができないのと同じ数字が続くS Sを。一方、チューリングマシンはそのクラスの文字列を認識できます。したがって、DFAはチューリング完全ではありません。bab

「別のチューリングマシンをシミュレートできる」と言うだけでチューリングマシンの機能を定義する方法はありますか?

「チューリングマシンの機能を定義する」とはどういう意味かわかりません。機能は、無限テープで動作する有限状態オートマトンの観点から定義されます。(完全な定義は繰り返しませんが、Wikipediaなどで見つけることができます。)


19
OPはチューリングマシンとチューリングを完全にミックスすると思います。彼が実際に探しているのは、チューリングマシンの定義です。最後の文が答えです。en.wikipedia.org/wiki/Turing_machineが役立ちます。
JollyJoker

それでは、チューリングマシンで何ができますか たとえば、Turingマシンをエミュレートできるものであることを証明したい場合、自分のマシンでも実行できることを示すために必要な最小限の動作セットはどれですか。
アクシャットマハジャン

2
気にしない-チューリング完全であることを証明するために、言語がチューリングマシンの動作を模倣できることを示すだけで十分だと思いました。
アクシャットマハジャン

17

チューリングの計算モデルは、多くの同等の計算モデルの1つにすぎません。ゲーデルの再帰関数やチャーチのラムダ計算(ほぼ同時期に提案された)、およびポインターマシンなどの他のモデルと同じパワーを持っています。したがって、それを述べることができます

Excelで可能な問題を解決できる場合、コンピューターはチューリング完全です。

これは、Excelもチューリング完全であるため機能します。Church-Turing論文に関するWikipediaのページ、およびBlassとGurevichの調査論文、Algorithms:A Quest for Absolute Definitionsをご覧になることをお勧めします。


あなたの質問に関して、チューリング機械は非チューリング機械ができないことで何ができますか、一般的には残念なことに答えは非チューリング機械に依存します。

しかし、チューリング完全問題の自明ではない概念を定義することは可能です、例えば:

言語すべての計算言語のための場合はチューリング完全である「効率的に計算」関数が存在よう IFF。A F A A F LLAfaAf(a)L

この定義では、停止問題の適切なエンコーディングはチューリング完全であるため、合理的なクラスのマシン(「効率的に計算可能」の定義に応じて)では、マシンはチューリング完全であり、一部(すべて、 )チューリング完全言語。

チューリング対応問題や、WangタイルとGame of Lifeに関する問題など、「効率的に計算可能な」の定義に応じて、この形式によって捕捉されるチューリング完全な問題が他にも多くあります。これらの問題はいずれも、停止する問題の代わりにベンチマークとして機能します。


「残念なことに、答えはチューリングマシン以外に依存します」-私は質問が明確ではなかったので編集しました。チューリング未完了のままタスクを実行できる限り、チューリング以外のマシンを選択できます。
sashoalm

5
Excel is also Turing-complete.-Excelに無限のメモリを提供できる場合のみ。Excelは1,048,576行と16,384列に制限されていますが、これはかなり無限に近いものです。
マットクラーク

5
@MattClarke:確かに、しかし同じトークンによって、これまでに構築されたシステムはチューリング完全ではありません。
エミール

3
@Emil:まさに、CSの学生は計算モデルの機能と実際のマシンの機能を区別することが重要です。もちろん、実際のマシンの物理的な限界に繰り返し達している人は、この区別を簡単に行うことができます。したがって、Excelのコンピューティングモデルの無制限バージョンをどのように定義するか、そしてチューリング完全になることがわかっています。実際にその定義を書き出すことは、いささか厄介です。
スティーブジェソップ

4
@SteveJessopマシンの物理的限界?誰もそのようなものをヒットすることができますか?誰でも640kで十分です!
デビッドリチャービー

4

まず第一に、チューリング完全性の定義はまったくトートロジー的ではないことを指摘したいと思います。計算モデルを証明することは、チューリング完全それ自体が興味深い結果であるだけでなく、計算可能性理論からこの他の計算モデルにすべての結果を即座に拡張することも可能にします。たとえば、2カウンターマシンはチューリング完全であり、チューリングマシンは停止の問題を解決できないため、2カウンターマシンも解決できません。

チューリングマシンで計算可能な関数の簡単な特性評価は、再帰関数、合成の下で閉じられた関数の最小セット、原始再帰、および常にゼロの関数、恒等式および後続関数を含む最小化演算子によって与えられます。μ

そのようなクラスには、「直感的に計算可能な」関数、つまり、鉛筆と紙を使用した正確なアルゴリズムに従って人間が実行できる関数が組み込まれています。

明らかに「直観的に計算可能」は実際には正式な定義ではなく、「直観的に計算可能」と「チューリング計算可能」の同一性は教会チューリング論文として知られています。計算可能性を特徴付けようとする多くの正式な試みは最終的にチューリング完全な計算モデルに収束しますが、数学的な意味でそのような主張の正式な証拠は決してありませんが、それを信じる強い理由があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.