チューリングマシンはある時点で無限のものを想定していますか?


9

前の質問でアルゴリズムとは正確には何ですか?、事前計算された値の配列に基づいて関数の値を返す「アルゴリズム」がアルゴリズムであるかどうかを尋ねました。

私の注意を引いた答えの1つはこれです。

階乗の例は、不均一計算と呼ばれる別の計算モデルに入ります。チューリングマシンは、均一な計算モデルの例です。単一の有限の記述があり、任意の大きなサイズの入力に対して機能します。つまり、すべての入力サイズの問題を解決するTMが存在します。

ここで、代わりに次のように計算を検討することができます。各入力サイズに対して、問題を解決するTM(またはその他の計算デバイス)が存在します。これは非常に異なる質問です。TMには有限の記述があるため、1つのTMはすべての整数の階乗を格納できないことに注意してください。ただし、1000未満のすべての数値の階乗を格納するTM(またはCのプログラム)を作成できます。次に、1000〜10000のすべての数値の階乗を格納するプログラムを作成できます。

すべてのTMが実際に無限を処理する何らかの方法を想定しているわけではありませんか?つまり、アルゴリズムを介して任意の数Nの階乗を計算する有限の記述を持つTMでさえ

 int fact(int n) 
 { 
 int r = 1; 
 for(int i=2;i<=n;i++) 
 r = r*i; 
 return r; 
 } 

TMには、「<=」コンパレータを介して任意のサイズの数値を比較する「ハードウェア」があり、さらに iを任意の数値までインクリメントするADDersがあるという仮定が含まれています。、任意のサイズの数値を表す機能もあります。

何か不足していますか?私の他の質問で提示したアプローチが、無限のものに関してこれよりも実行可能性が低いのはなぜですか?


5
「無限」と「任意に大きい」の違いに注意してください。
ラファエル

これは非常に良い質問ですが、間違って述べられています。チューリングマシンを参照すると、最も単純な計算モデルに基づいて答えが得られます。そして、ほとんどの答えは非常に任意に制約された種類のマシンの表現力の制限に基づいているため、これはアルゴリズムとは何かを理解するための探求にほとんど光をもたらさないでしょう。多くの場合、有限の説明とは何かに依存します。これは実際には計算可能な説明でなければなりません。重要なことの1つは、それらが計算可能に列挙可能であることです。有限は計算可能ですが、計算可能である必要はありません。
babou 2014年

@Raphael Infiniteは、任意の大きさと同じではありません。ただし、無限エンティティをこのシーケンスの制限として適切に定義できる場合は、任意に増加するシーケンスを無限として考える方が簡単な場合があります。このように定義された計算可能な無限オブジェクトを常に処理します。
babou 2014年

あなたの質問に対する否定的な答えは、抽象的な数学のあるエーテルの領域の外側には何も無限ではないという仮定に基づいていると思います。それが事実である場合、問題は根拠のないものです。チューリングマシンは、無限のものがないからといって、「無限のものを想定する」ことはできません。
babou 2014年

回答:


9

<=<=QΣます。計算の各ステップで、Turingマシンは現在の状態と読み取り/書き込みヘッドの下のシンボルを調べ、次に実行することを決定します。どの状態に入るか、どのシンボルをテープに書き込むか、どの方法でテープを移動するか頭。

<=|Q||Σ|

チューリングマシンは、実際には「無限に対処」するわけではありません。少なくとも標準の定義では、無限の有限なものを扱います。入力は有限の文字列であり、有限の数のステップの後、マ​​シンは有限の数のテープセルを検査または書き込んだだけです。入力のサイズや計算ステップの数に制限はありませんが、入力は有限であり、有限のステップ数の後、有限量の出力のみが生成されます。


7

重要な違いは、チューリングマシンの記述は有限であり、マシンへの入力は有限であり、メモリとして使用するテープは無限であることです。TMはほとんど有限のマシンであり、有限のテープを使用します。テープがセルで構成されていると考えてください。各セルには単一の値を含めることができます。TMへの入力はテープに書き込まれます。

TMの記述は、タプルの有限セットです<current state, input, output, move, next state>

各ステップで、現在の状態と入力を照合することにより、実行する処理が見つかります。たとえば、私たちは状態0にあり、1を読んだので、開始するタプルを見つけて<0, 1, ...>、現在のセルに新しい値を書き込み、左または右に移動します(古典的な定義では同じセルにとどまることもできると思います)同様に)、次に新しい状態に変更します。

したがって、例として、TMの無限に大きい説明(無限の<current state, input, output, move, next state>タプル数)が必要になるか、TMへの入力にルックアップ情報を含める必要があります。TMへの入力は有限であると定義されていると思います。したがって、これは、古典的に定義されたチューリングマシンで実行できることではないでしょう。

対照的に、フィボナッチの例は、TMを記述するために有限数のタプルを使用してバイナリで計算でき、有限の入力を持ちます。


5
テープは無限である必要ありませ!必要に応じて拡張できます。必要なのは、テープを任意に大きくできることです。
reinierpost 2014年

5

簡単に言えば、チューリングマシンは、(有限指定)無限データに対して(有限指定)無限計算を実行し、(有限指定)無限結果を生成できます。基本的な考え方は、これらの無限大は、数学的に適切な方法で定義された有限エンティティの限界として定義できるということです。これは、計算の数学的セマンティクスの基礎です。チューリングマシンではなくプログラムを検討する場合、これらのプログラムには(有限に指定された)無限のデータ構造を含めることもできます。fact可能なアルゴリズムとしての表関数の場合は、最終的に、プログラムとして、またはTMモデルとして、無限オブジェクトの遅延評価との関係に関するヒントとともに分析されます。

より多くの詳細で

最後の質問に関して、TMは任意の数値ではなく、これらの数値を表す記号の任意の(無制限の)長い文字列としての記号表現で計算します。適切な符号化を法として、これらの表現を介してそのような数値と比較または算術を実行できるのは正しいことです。

しかし、元の質問は、チューリングマシン全般における無限大の役割に関するものです。

この質問に対する一般的な答えは、チューリングマシンが無限を処理することは決してないということです。それらは有限に定義され、それらが計算するものはすべて、テープの有限の部分で有限時間に計算されます(したがって、より大きい有限のテープで十分です)。真実なのは、TMのスペース要件の時間に制限がないことです。これは無限と同じではありません。

したがって、TMによって計算されるすべての答えは、有限状態オートマトン(FSA)によっても計算できます。これは、「ある程度」表を見る1つの方法です。難しいのは、一部の入力サイズ(入力を読み取るだけの場合は、ほとんどの場合それになる)は、オートマトンのサイズを超えることです。ただし、大きい方を使用できます。したがって、無制限の入力サイズを検討する場合は、計算を実行できるFSAの無限シーケンスが必要です。実際には、(はい/いいえの答えではなく)出力が計算される可能性があるため、従来のFSAよりも少し複雑な有限状態機械が必要になる場合がありますが、有限状態トランスデューサがおそらく必要です。

したがって、GCDの計算や、単に任意のサイズの整数の算術演算を使用するなど、インスタンスのセットが無限にある問題を調べている場合、無限がバックドアを介して戻ってくることがわかります。 FSAのセット。

π

次に、それを有限計算の無限シーケンスに置き換えることができます。しかし、私たちは浮気をしていますか?

物理的な観点からは、それが私たちにできる最善のことです。私たちは、少なくとも物理学における現在の最新技術に従って、有限のマシンを構築する方法を知っています。近い将来、その問題についてあまり変化しないと予想されています。

しかし、数学の観点から、これらの無限を一貫した扱いやすい方法でどのように処理できるでしょうか。

無限の答えのセットを計算するために一種の協力が可能なFSAの無限のセットを考えるとき、それを勝手に行うことはできません。あなたがしていることが理にかなっていることを確実にするためにいくつかの保護手段が必要です。通常のセットの無限ユニオンを使用して、実際にはシングルトンセットの無限ユニオンを使用して、任意のセットを簡単に作成できることはよく知られています。したがって、制限のないオートマトンの任意の無限ユニオンを検討することは、どこにもあなたを導きません。一貫性のない答えを与える同じセットのオートマトンを検討することもできます。

本当に必要なのは、一貫性の概念を定義することです。しかし、それにはいくつかの注意が必要です。オートマトンの無限シーケンスを使用して、yesまたはnoで応答する、または停止しないTMをシミュレートしていると仮定します。問題は、FSAが「はい」や「いいえ」などの回答で常に停止することです。しかし、選択した入力に対して実際には十分な大きさではないFSAを使用する場合、それはどのように答えるべきですか?yesとnoの両方は、FSAが実際にTM計算を終了した場合のために予約されており、未完了の計算でこれらの答えの1つを使用すると、混乱を招くだけです。あなたが望んでいるのは、「申し訳ありませんが、私は小さすぎて分からないのです。家族の中でもっと大きい人に試してみてください」という答えです。つまり、オーバーフローなどの回答が必要 、またはわからない

したがって、受け入れ、非受け入れ、未定義の3種類の状態を持つオートマトンが必要です。未定義の状態は、計算を強制的に停止させるオートマトンの欠落部分を表す状態と見なすことができます。したがって、計算が停止すると、停止した状態に応じて、yesno、またはundefinedの答えが得られます。

これで、一貫性のあるオートマトンの無限シーケンスが必要なことがわかります。どちらもイエス何がと一致していない 未定義のが、はいと一致しないなし。次に、2つのオートマトンは、同じ入力に対して一貫した答えを出すときに一貫しています。

π3.143.141551593.14163.1416π

これらの理論的な側面についてはこれ以上詳しく説明しません。チューリングマシンに基づいた場合は少し厄介です。重要なのは、これらの概念が、計算領域(データまたはマシン)がラティスなどの数学的構造を形成するという考えにつながることです。この場合、無限オブジェクトは、有限オブジェクト。無限シーケンスを定義するには、さらにいくつかの装置と、連続性の概念が必要です。これは、基本的にはダナスコットのセマンティクス理論に関するものであり、計算可能性の概念について多少異なる見解を示します。

次に、チューリングマシン、または「無限計算」を実行できる他の形式的なデバイスは、マシンの有限近似のシーケンスの制限として定義できます。マシンが計算に使用するデータについても、入力か出力かにかかわらず同じことが言えます。

これについて私が今まで読んだ最も簡単な文書は、アムステルダムの講義ノートと呼ばれることが多い、ダナスコットによる手書きの講義ノートのセットです。しかし、私はそれをウェブ上で見つけることができませんでした。コピーへのポインタ(私がその一部を持っているため、不完全であっても)は歓迎されます。しかし、スコットによる他の初期の出版物、たとえば「計算の数学理論の概要」などを見ることができます 。

質問の最初の例に戻る

これらの近似の概念は、データだけでなくプログラムにも適用されます。関数factは再帰的に定義されます。これは、の有限収束近似を計算するために使用できる汎関数の最小固定点であることを意味しfactます。ますます定義される有限関数のこのシーケンスは、関数と呼ばれる無限エンティティに収束しますfact

fact

計算の基本的なTMモデルを考えると、そのような無限配列はその形式で表現できないことは事実です。それが意味をなさないという意味ではありません。チューリングマシンには、などのいくつかの関数の表形式の値で初期化されることになっている2番目のテープがある場合がありますfact。関数が計算可能なものである限り、つまり、関連する関数のすべての引数と値のペアを計算できる別のTMの無限計算でテーブルを初期化できる限り、TMの計算能力は変わりません。

しかし、実際には、無限の計算を完了することはできません。したがって、それを行う正しい方法は、テーブルを遅延計算すること、つまり、必要な場合にのみエントリを埋めることです。それが正確にメモ化で行われるものです。これは、前の質問に対してさまざまな理由を付けて私があなたに与えた答えです。


3

この答えの要点は、Turing Machinesがプログラムできるすべてのものを模倣できること、そして無限オブジェクト上で、無限オブジェクトのプログラム計算を行うことです。

これは、回答を正当化する一般的な理論的フレームワークよりも、特定の質問に焦点を当てた2番目の回答であり、質問のより一般的なタイトルに回答するには間違いなく必要です。これは、OPの質問に対する私の以前の回答と完全に互換性があります。両方とも、正確にはアルゴリズムとは何ですか。そしてチューリングマシンはある時点で無限のものを想定していますか?、私がより理論的な文脈を発展させた答え。これは両方の質問に答えると見なされるかもしれません。

すべてのチューリングが計算モデルを完了できるように、チューリングマシンは無限大を処理する機能を備えていますが、列挙可能な無限大しかありません。私たちの問題は、この無限大の一部しか観測できないことですが、観測できる部分は無限なので、全体を考慮する必要があります。

もう1つの問題は、有限に指定されたエンティティのみを処理できることです。実は、私たちが知っている科学の構造全体は、有限に指定されていないエンティティを考慮すると、定義の一貫性をチェックすることができなくなり、定義が何であるかさえ知ることができなくなります。有限の時間。

そのような共用体で許可されるものを適切に有限に制限できない限り、無限共用体でのクロージャが必要なセットを定義するという事実にいくぶん類似した別の基本的な問題がある可能性があります。しかし、私はこの問題を完全に理解しているとは思いません。

私が言ったように、チューリングマシンは無限を処理する能力を持っています。私は、そのような基本的なトピックについて何を話しているのかを知っているはずの、いくつかのハイレップユーザーのよく賛成された他の回答と矛盾しています。

問題は、チューリングが理論的目的を達成するために非常に基本的な計算モデルを選択したことです。シンプルなほど良い。それは、プログラミングの機械語とほぼ同じ、より高度で洗練された計算モデルです。つまり、高水準のプログラミングで意味をなす概念を認識できないような、非常にあいまいなものです。実際のところ、TMは機械語と同様に、直接表現できる以上に多くのことを模倣できます。

さらに、チューリングマシンのこれらの制限を実際に誰も信じておらず、多かれ少なかれエキゾチックな機能を備えた多くの種類のTMが考案されています。いくつかの無限のセットが呼び出された場合は帰納的可算 TMが実際に無限の計算を必要としない列挙(の表現)そのメンバーは、(見ることができるので、それはある列挙子としてチューリングマシンホップクロフト・ウルマン1979、167ページ)。:もちろん、我々は有限の計算通りのような質問に答えるであろうと、常にエンコードすることができるものですが23rd それらの列挙によるセットのメンバー?しかし、正しい答えが得られたときに人工的に停止される無限計算として実装されることもよくあります。

実際、すべてが有限であるがTMに制限がないと述べているすべてのユーザーは、Turing Machinesを標準定義で検討していることを非常に注意深く追加しています。問題は、標準的な定義が理論を単純化するための単なるデバイスであるということですが、計算構造を理解しようとするときはほとんど無関係です。

実際には、計算で重要な唯一のことは、すべてが計算可能な方法で有限に指定されなければならないことであり、有限であることではありません

チューリングマシンは有限のオブジェクトでなければならないことを前提としています。しかし、それは真実ではありません。読み取り専用で、すべての整数値の表形式の関数が含まれる2番目のテープを使用して、制限なしにチューリングマシンのモデルを定義できます。それは無限です。しかし、そのテープの内容が計算で指定されている限り、追加の計算能力を購入することはありません(計算能力は、それが有限に指定されていることを意味します)。追加のテープは、他のテープに埋め込まれたTMマシンで置き換えることもでき、追加のテープで探すのではなく、回答を提供します。より高いレベルから、違いは見えません。

実用的な実現の観点からは、fact チューリングマシンで階乗を計算し、それらを追加のテープに集計することができますが、別のTMは追加のテープから集計された階乗を使用し、集計がまだ欠けているときは常に最初のTMで待機しますエントリ。しかし、2台目のマシンは、テープの内容が最終的に無限であると想定しています。集計マシンは常に動作する必要はありませんが、テーブルからデータが要求され、そこにデータが見つからない場合は常に計算を再開する必要があります。

質問に戻ると、無制限の整数と無限テーブルの主な違いは、整数が有限で無制限であるが、有限時間で完全に計算されることだけです。無限テーブルは無期限に計算され、有限ですが、それでも無限に成長し続けます。それは問題ではありませんが、違いです。無限オブジェクトは有限近似によってのみアクセスできますが、無限です。計算可能な無理数は、この意味で、少なくとも2進数として表現するための無限のオブジェクトです。

すべてのアルゴリズムは、いくつかの数学的理論の文脈で定義されています。そして、無限テーブルと一緒のテーブルルックアップはアルゴリズムです。ただし、これは、各整数引数に対して公理化される関数の値を(集中的ではなく)広範囲に指定する、有限に定義された無限の公理のセットを持つ数学理論のアルゴリズムです。(前の質問に対する私の回答を参照しください)。そうすれば、理論の公理に証明可能な真のステートメントを常に追加できるため、そうすることは常に正当です。

現在の質問で再現されているように、Usulのステートメントは私の意見では正しくありません(すべてが定義の問題でもあります)。あなたが再現しなかった彼の回答における彼の結論は、無限テーブルの使用は、アルゴリズムの不均一なモデル、異なるマシンのコレクション、およびそのようなものによってのみ実装できるため、アルゴリズムと見なすことができないということです任意の入力サイズの「全体」の問題を解決するために実装できる有限の記述がない」を使用します「これは間違っています。別個の定義のドメインを持つ独立したマシンへの彼のパーティショニングは、物事を行うには間違った方法です。正しい方法は、適切に収束できる、より大きな定義のドメインを持つ一貫したマシンの無限シーケンスを持つことです。これは、質問に答える無限機械に当てはまります。これは、Dana Scottによって定義された計算の意味論の数学的理論の1つの本質的な目的です。適切な数学的装置を使用すると、無限表現(eまたはπ)、またはすべて計算可能な無限データ構造。(この質問に対する私の最初の回答を参照しください)。

このような無限エンティティを実際に計算する方法は、遅延評価、任意の時点で必要な部分だけを計算し、さらに必要になったときに残りの部分の計算を再開することです。これはfact、テーブルからさらにデータが必要なときはいつでも、テーブルに格納される階乗計算をマシンで遅延計算することにより、上記で提案されたものとまったく同じ です。

ある意味では、遅延評価は実際には有限のコードに基づいているため、コードスペースは有限でなければならないという(DanielVの回答の)主張を裏付けるように見えます。しかし、計算可能性はエンコーディングの普及ゲームであるため、とりわけ、コードとデータを区別することは、常に見ている人の目にはほとんど常にあります。実際、多くの最新のプログラミング言語は、値の意図的仕様 と拡張仕様をあまり区別せず、Dentotational Semanticsは実際には「2 + 2」と「4」を区別しません。セマンティクスとは、「Xとは」などの質問をするときに私たちが話していることです

静的とも見なされるコードの有限性のこのビューは、無限のテーブル(コードの一部と見なされる)が、データとして使用される無制限の整数と等しい基礎で見られないもう1つの理由です。しかし、それは、メタプログラミング、再帰言語、およびeval関数の使用における既知のプログラミングの実践を生き残ることができないもう1つの幻想です。これらの言語では、コンピューターが実行されている限り、実行中のプログラム自体によって制限なしにコードを拡張できます。確かに、独自の移行ルールを変更し、制限なく数を増やすチューリングマシンを検討することができます。これは、ユニバーサルチューリングマシンの動作にかなり近いものです。

理論的なフレームワークを設計する場合、単純さと目立ちやすさや表現力の間には常に緊張があります。単純さにより、特に特定のプロパティを証明したり、他のフレームワークに還元したりする場合に、フレームワークの分析がしばしば単純になります。しかし、エンコードする必要のある高レベルの概念を表現することはしばしば不便です。Turing Machinesを使用してプログラミングするのではなく、より表現力があり目立つ高水準言語を使用してプログラミングします。同時に、セマンティックの等価性に基づいて、コードとデータの区別などのいくつかの障壁を取り払う場合があります。チューリングマシンは単純に見えますが、基本的な定義をはるかに超える可能性があります。


3

短い答え:いいえ。チューリングマシンは、いかなる点においても無限を想定していません

これが、それらが計算のモデルとして有効である理由の1つです。計算を無限のデバイスによって実行されるものとして説明しても意味がありません。

ただし、それらの操作は無限である場合があります。終了しない場合があります。これが、それらが計算のモデルとして有効であるもう1つの理由です。常に終了することが保証されている操作のみを実行できるデバイスは、可能なすべての計算を表現できません。

さらに、操作には無制限のメモリが必要です。実際の使用メモリ量は常に有限ですが、任意に大きくなる場合があります。したがって、操作に必要なすべてのメモリを事前に提供することはできません。特定の固定量を超えるメモリを使用しないことが保証されている操作のみを実行できるデバイスは、可能なすべての計算を表現できません。


-1

「箱から出して考える」ことと、チューリングマシンの抽象化の中心に到達するこの質問を一般化し、まだ答えられていない別の角度を思い付く:はい、チューリングマシンには、「無限大を想定する」という本質的な側面があります。概念は数学に固有のものであるため。TMは物理マシンを抽象化したものです。時間と空間の物理的概念は、TM理論では意図的に使用されますが、抽象化として使用されますが、実際の対応物の側面も使用されます。

つまり、TMは理論上は永久実行される可能性があり、停止問題とも呼ばれます。テープは無限ですが、特定の時間に書き込むことができるテープは有限です。永久に実行されるTMは、基本的に時間と空間が無制限、つまり「無限」であることを前提としています。実際、対応する時間空間の階層 /無限の「連続体」があります。

しかし、この抽象的な概念の物理的な実現は、物理的宇宙が有界(空間、時間、物質、その最後はチューリングマシンの「シンボル」または「インク」にいくらか類似している)であると想定しては不可能です。物理的には多少似た/類似の方法で、宇宙は無限/無限であると見なされることもありますが、抽象化にすぎません。これを裏返すために、現代のコンピューターのチューリングマシンとしての「モデル化」はそれ自体が抽象的である理由でもあります。コンピューターは有限のメモリしか持てないからです。

別の有用な比較は、数学の数直線です。数直線は無限ですが、有限数を示します。数直線上のすべての数値は有限量を表しますが、これらの有限量の数は無限にあります。チューリングマシンのテープは、数学の数直線の概念と非常によく似ています。チューリングは一方向にのみ無限大と簡単に定義できましたが、数学の数直線と同様に、テープの負の位置を「左」、正の位置を「右」にして、双方向で無限と定義しました。

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