タグ付けされた質問 「turing-machines」

チューリングマシンは、特に理論的な研究において、計算の基本モデルです。


2
実現可能性理論:ラムダ計算とチューリングマシンのパワーの差
関連する3つのサブ質問があり、それらは下の箇条書きで強調されています(いいえ、疑問に思っている場合は分割できません)。Andrej Bauerは、ここで、いくつかの関数はチューリングマシンで実現できるが、ラムダ計算では実現できないと書いています。彼の推論の重要なステップは次のとおりです。 ただし、ラムダ計算を使用する場合、[プログラム] cは、関数fを表すラムダ項からチューリングマシンを表す数値を計算することになっています。これを行うことはできません(別の質問として質問した場合、その理由を説明できます)。 説明/非公式の証拠を見たいです。 ここでライスの定理を適用する方法がわかりません。この述語を同等の用語に適用すると同じ結果が得られるため、「このチューリングマシンTとこのラムダ項Lは同等ですか?」という問題に適用されます。ただし、必要な関数は、異なるが同等のラムダ項に対して異なるが同等のTMを計算する場合があります。 さらに、問題がラムダ項のイントロスペクションにある場合、ラムダ項のGödelエンコーディングを渡すことも受け入れられると思いますか? 一方では、彼の例がラムダ計算で、特定のタスクを完了するためにチューリングマシンが必要とするステップ数を計算することを考えれば、私はあまり驚かない。 しかし、ここではラムダ計算ではチューリングマシン関連の問題を解決できないため、ラムダ計算で同様の問題を定義し、チューリングマシンでは解決できないことを証明できるのか、それとも実際には力の差があるのか​​疑問に思いますチューリングマシン(これには驚かされます)。

5
チューリングマシンを主要な計算モデルとして採用する歴史的な理由。
チューリングのモデルは、計算を記述する際の「標準」になったと私は理解しています。なぜそうなのか、つまり、TMモデルが他の理論的に同等の(私の知る限り)モデル、たとえばKleeneのμ-RecursionやLambda Calculus(私は理解している)よりも広く使用されるようになった理由を知りたい前者は後ほど登場せず、後者はもともと計算のモデルとして特別に設計されていなかったが、代替案が最初から存在していたことを示している)。 私が考えることができるのは、TMモデルがその代替よりも実際に持っているコンピューターをより厳密に表しているということです。これが唯一の理由ですか?

10
実際のコンピューターの状態の数は限られているので、チューリングマシンの実際のコンピューターとの関連性はどうですか?
実際のコンピューターのメモリは限られており、状態の数は限られています。したがって、それらは本質的に有限オートマトンです。理論的なコンピューター科学者がコンピューターの研究にチューリングマシン(および他の同等のモデル)を使用するのはなぜですか?実際のコンピューターに関して、これらの非常に強力なモデルを研究するポイントは何ですか?有限オートマトンモデルでは不十分なのはなぜですか?

2
シングルテープチューリングマシンのアルファベット
すべての関数は、サイズアルファベットを使用して、シングルテープチューリングマシンで時間で計算できますかサイズアルファベット(空白など)を使用するシングルテープチューリングマシンでの時間f:{0,1}∗→{0,1}f:{0,1}∗→{0,1}f : \{0,1\}^* \to \{0,1\}tttk=O(1)k=O(1)k = O(1)O(t)O(t)O(t)3330,1,0,1,0,1, (OPによる以下のコメントから)入力はを使用して書き込まれますが、サイズアルファベットを使用するチューリングマシンは、より大きなアルファベットのシンボルで入力シンボルを上書きできます。時間要する入力をシフトすることなく、大きいアルファベットのシンボルを小さいアルファベットにエンコードする方法がわかりません。0,10,10,1kkkn2n2n^2

7
真の乱数発生器:チューリング計算可能?
「真にランダムな」数の生成がチューリング計算可能かどうかの決定的な答えを探しています。これを正確に表現する方法がわかりません。 「乱数生成のための効率的なアルゴリズム」に関するこのStackExchangeの質問は、私の質問に答えるところです。チャールズ・スチュワートは彼の答えで、「それ(マーティン・ロフの乱雑さ)は機械によって生成することはできません。ロス・スナイダーは、「決定論的なプロセス(チューリング/登録マシンなど)は、「哲学的」または「真の」乱数を生成することはできません。」真の乱数ジェネレーターの構成要素について明確で受け入れられている概念はありますか?もしそうなら、それはチューリング機械によって計算できないことが知られていますか? おそらく関連する文献を示してくれれば十分でしょう。あなたが提供できる助けをありがとう! 編集。知識豊富な答えをしてくれたIanとAaronに感謝します!私はこの分野では比較的学校に通っていませんが、支援に感謝しています。この補遺で質問を少し拡張することができます:ランダム性の純粋なソース(オラクル?)にアクセスできるTMは、古典的なTMではできない関数を計算できるのでしょうか?

7
Church-Turing論文のインタラクティブな計算モデルへの適用性
Paul WegnerとDina Goldinは10年以上にわたり、主に教会チューリングの論文がしばしばCS理論コミュニティや他の場所で誤って伝えられていると主張する論文や本を出版してきました。つまり、実際にはすべての計算の非常に小さなサブセットである関数の計算にのみ適用される場合、すべての計算を包含するものとして表示されます。代わりに、計算中に外部との通信が発生するインタラクティブな計算のモデル化を模索する必要があることを示唆しています。 この作品について私が見た唯一の批評は、ラムダ・ザ・アルティメット・フォーラムです。そこでは、明らかに知られていることを継続的に公開したことで、誰かがこれらの著者を嘆きました。私の質問は、この考え方、特に永続的チューリングマシンに対する批判がこれ以上ないかということです。そうでない場合、なぜそれが一見非常にほとんど研究されていないのですか(私は間違っているかもしれません)。最後に、普遍性の概念はどのようにインタラクティブなドメインに変換されますか。

3
ラムダ計算によるPおよびNPクラスの説明
導入および説明では、PおよびNP複雑度クラスは、チューリングマシンを介してしばしば与えられます。計算モデルの1つはラムダ計算です。計算のすべてのモデルが同等であることを理解しています(そして、チューリングマシンの用語で何かを導入できるなら、計算のモデルの用語でこれを導入できます)が、ラムダ計算による説明のアイデアPおよびNP複雑度クラスを見たことはありません。チューリングマシンを使用せず、計算モデルとしてラムダ計算のみを使用して、概念PおよびNPの複雑度クラスを誰でも説明できます。

3
停止を決定可能にするチューリングマシンの制限
有限テープへの1つの制限しチューリング機械(すなわち、有界空間を使用する場合は)、その後、停止問題は、本質的にあるため、状態数から計算することができるステップ数(後に、決定可能であるQ、およびS、およびアルファベットサイズ)、構成を繰り返す必要があります。SSSQQQSSS 停止を決定可能にするその他の自然なチューリングマシンの制限はありますか? 状態遷移グラフにループやサイクルがない場合は、確実に停止を決定できます。他のもの?

6
最も単純な、議論の余地のない2状態ユニバーサルチューリングマシンとは何ですか?
カードゲームのルールで簡単なチューリングマシンをエンコードしたいです。チューリングの完全性を証明するために、これを汎用チューリングマシンにしたいと思います。 これまで、Alex Smithの2ステート、3シンボルチューリングマシンをエンコードするゲームステートを作成しました。ただし、(確かにウィキペディアに基づいて)(2、3)マシンが実際に普遍的であるかどうかについていくつかの論争があるようです。 厳密を期すために、「論争の余地のない」UTMの機能を備えた証拠を提供したいと思います。だから私の質問は: (2,3)マシンは、一般的にユニバーサル、非ユニバーサル、または物議を醸すものと見なされていますか?これに対する答えを見つけるために信頼できる場所がどこにあるかはわかりません。 (2,3)マシンがユニバーサルとして広く受け入れられていない場合、(2、N)マシンが議論の余地なくユニバーサルとして受け入れられるような最小のNは何ですか? 追加して編集:言及されたマシンの無限テープの要件を知っていると、たまたま知っていると便利です。(2,3)マシンは、非定期的なテープの初期状態を必要とするようです。これは、カードゲームのルール内でシミュレートするのが少し難しいでしょう。

4
確率的チューリングマシンは停止の問題を解決できますか?
真にランダムなビットの無限のストリームを与えられたコンピューターは、それを持たないコンピューターよりも強力です。問題は、停止する問題を解決するのに十分な力があるかどうかです。 つまり、確率的コンピューターは、決定論的プログラムが停止するかどうかを判断できますか? 決定論的に不可能なことを行う確率的コンピューターの例:ギガバイトより大きいKolmogorov複雑さを持つ文字列を出力する小さなプログラム(長さが1キロバイト未満)を考えます。コルモゴロフ複雑性文字列の長さは、その文字列を生成する最短の決定論的プログラムの長さです。したがって、定義により、決定論的プログラムは、複雑さがそれ自体の長さよりも大きい文字列を生成できません。ただし、真にランダムなビットの無限ストリームが与えられた場合、小さなプログラムは、たとえば100億のランダムビットをエコーアウトし、それらのビットのコルモゴロフの複雑さが十分に高いことを期待することで、99.99999 ...%の成功でタスクを達成できます。したがって、優れたコルモゴロフの複雑さのストリングを生成することは、確率的プログラムの可能性の範囲内ですが、決定論的プログラムではまったく不可能です。 そうは言っても、本当に問題のある問題を真にランダムなビットで修正することが可能かどうか疑問に思っています。例えば、アルゴリズムは定理をランダムに生成し、特定の決定論的プログラムが停止することを証明/反証するのに十分なことがわかるまで、それらを証明/反証/破棄します。

1
効率的に計算できないが学習可能な関数
([1]の定理1および3を参照)大まかに言えば、適切な条件下では、多項式時間でチューリングマシンによって効率的に計算できる関数( "効率的に計算可能")は多項式ニューラルネットワークで表現できる合理的なサイズで、したがって、任意の入力分布の下で多項式サンプルの複雑さ(「学習可能」)で学習できます。 ここで、「学習可能」とは、計算の複雑さに関係なく、サンプルの複雑さにのみ関係します。 非常に密接に関連する問題について疑問に思っています:多項式時間でチューリングマシンによって効率的に計算できない関数(「非効率的に計算できない」)が存在する一方で、多項式サンプルの複雑さ(「学習可能」)で学習できる関数があります入力分布の下で? [1] Roi Livni、Shai Shalev-Shwartz、Ohad Shamir、「ニューラルネットワークのトレーニングの計算効率について」、2014

2
System Fが計算できないのはどの関数ですか?
でチューリング完全性について、このWikipediaの記事には、と述べています: 型付けされていないラムダ計算はチューリング完全ですが、システムFを含む多くの型付けされたラムダ計算はそうで​​はありません。型付きシステムの価値は、より多くのエラーを検出しながら、最も典型的なコンピュータープログラムを表す能力に基づいています。 システムFで計算できない合計計算可能関数の例は何ですか? さらに、hindley-milnerは次のとおりです。 System Fの制限 以下の事実のため: System FのCurryスタイルのバリアント、つまり明示的なタイピングアノテーションのないタイプでは、タイプチェックは決定できません。 これは、ヒンドレー・ミルナー型システムの基礎となるラムダ計算が完全にチューリングされていないことを意味していますか? これが本当なら、haskellは明らかに完全なチューリングであり、その基礎はラムダ計算とhindley-milner型システムであることがわかっているので、λ計算に存在しない機能はhaskellチューリングを完了するために追加されますか?

1
TCS定理の合理的な自動証明システムはありますか?
マシンがチェックできるように、停止問題に関するチューリングの証明を形式化したいとします。有名な自動定理証明システムには、Mizar、Coq、HOL4などがあります。Coqをダウンロードして実験しましたが、Turingマシン用のライブラリがありません。私は自分でコーディングしようと思ったが、チュートリアルが欠けており、言語を習得するのが難しいことがわかった。 私の質問は次のとおりです。チューリング機械を含む定理を証明するのに一般的に優れている自動化された定理証明器はありますか?既に存在するライブラリを使用して、停止する問題の決定不能性の証明を形式化できれば、そのような定理証明者は「良い」と考えます。比較的簡単に手に入れることができれば、さらに良いと考えます。(記録のために、私は通常、プログラミング言語に問題はありません。) おかげで、 フィリップ

6
C実装の最大計算能力
この本(または、必要に応じて言語仕様のその他のバージョン)を調べてみると、C実装の計算能力はどれくらいですか? 「C実装」には技術的な意味があることに注意してください。実装定義の動作が文書化されているCプログラミング言語仕様の特定のインスタンス化です。AC実装は、実際のコンピューターで実行できる必要はありません。ビット文字列表現を持つすべてのオブジェクトと、実装定義のサイズを持つ型を含む、言語全体を実装する必要があります。 この質問のために、外部ストレージはありません。実行できる唯一の入出力は、getchar(プログラム入力を読み取るため)およびputchar(プログラム出力を書き込むため)です。また、未定義の動作を呼び出すプログラムは無効です。有効なプログラムの動作は、C仕様に加えて、付録J(C99の場合)にリストされている実装定義動作の実装の説明で定義されている必要があります。標準で言及されていないライブラリ関数の呼び出しは未定義の動作であることに注意してください。 私の最初の反応は、Cの実装はアドレス指定可能なメモリの量に制限があるため、有限オートマトンに過ぎないということでした(sizeof(char*) * CHAR_BIT格納する際に個別のメモリアドレスは個別のビットパターンを持たなければならないため、ストレージのビット以上をアドレス指定することはできません)バイトポインター)。 しかし、実装ではこれ以上のことができると思います。私が知る限り、標準は再帰の深さに制限を課していません。したがって、必要なだけ再帰関数呼び出しを行うことができregisterます。アドレス指定不可能な()引数を使用する必要があるのは、有限数の呼び出しを除いてすべてです。したがって、任意の再帰を許可し、registerオブジェクトの数に制限のないC実装は、決定性プッシュダウンオートマトンをエンコードできます。 これは正しいです?より強力なC実装を見つけることができますか?チューリング完全なC実装は存在しますか?

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