タグ付けされた質問 「machine-models」

計算に使用される一連の許容可能な操作の定義とそれぞれのコスト。モデルの例には、チューリングマシン、再帰関数、ラムダ計算、生産システムなどがあります。

5
チューリングマシンと有限状態マシンの違いは?
チューリングマシンに関するプレゼンテーションを行っています。チューリングマシンを紹介する前に、FSMの背景を説明したかったのです。問題は、何が互いに非常に違うのか本当に分からないことです。 私が知っているのは違います: FSMは、対応する条件に応じて、チューリングマシンが読み取りと書き込みを行うヘッドを備えた無限の「テープ」で動作する状態に応じて連続した状態を持ちます。 FSMにはエラーが発生する余地があります。これは、終了しない状態に簡単に陥ることができるのに対して、チューリングマシンには戻って物事を変更できるのでそれほど問題ではないからです。 しかし、それ以外には、チューリングマシンをFSMよりも優れたものにするほど多くの違いは知りません。 手伝ってくれませんか?

1
チューリングマシンのユニバーサルシミュレーション
してみましょう一定時間が構築可能関数です。fff 二テープTMが存在することのTM(Hennieとスターンズ、1966)状態の古典的なユニバーサルシミュレーション結果与えられたようにうんUU TM、および⟨ M⟩⟨M⟩\langle M \rangle 入力文字列、バツxx 以下のためのランのステップとリターン上の答え。また、は任意の関数とことができます。M X G ω (F (N )LG F (N ))g(| x |)g(|x|)g(|x|)MMMバツxxgggω(f(n)lgf(n))ω(f(n)lg⁡f(n))\omega(f(n)\lg f(n)) 私の質問は: シングルテープTMで最もよく知られているシミュレーション結果は何ですか?上記の結果も保持されますか? [HS66]に改善はありますか?ステップの2テープTMでTMをより高速にシミュレートできますか?私たちは取ることができますであることをの代わりに?g (n )ω (f (n ))ω (f (n )lg f (n ))f(n)f(n)f(n)g(n)g(n)g(n)ω(f(n))ω(f(n))\omega(f(n))ω(f(n)lgf(n))ω(f(n)lg⁡f(n))\omega(f(n)\lg f(n))

2
ランダム化アルゴリズムの分類
ウィキペディア乱択アルゴリズムについて 予想される実行時間またはメモリ使用量を減らすためにランダム入力を使用するアルゴリズムを区別する必要がありますが、限られた時間内で常に正しい結果で終了します。また 、ランダム入力に応じてチャンスがある確率的アルゴリズム間違った結果を生成する(モンテカルロアルゴリズム)または失敗を通知するか終了しないことで結果を生成しない(ラスベガスアルゴリズム)。 最初の種類のアルゴリズムでは、ランダム入力を使用して、予想される実行時間またはメモリ使用量を削減しますが、制限された時間内に正しい結果で常に終了する方法を疑問に思いましたか? 結果の生成に失敗する可能性があるラスベガスアルゴリズムとラスベガスアルゴリズムの違いは何ですか? 正しく理解すれば、確率的アルゴリズムとランダム化アルゴリズムは同じ概念ではありません。確率的アルゴリズムはランダム化アルゴリズムの一種であり、他の種類はランダム入力を使用して予想実行時間またはメモリ使用量を削減しますが、制限された時間内に常に正しい結果で終了しますか?

3
消費電力をキャプチャできる抽象的なマシンはありますか?
アルゴリズムのアルゴリズムの複雑さを報告するとき、基礎となる計算は、最新のCPUに近い抽象的なマシン(RAMなど)で実行されると想定します。このようなモデルにより、アルゴリズムの時間と空間の複雑さを報告できます。さて、GPGPUの普及により、消費電力も考慮することができるよく知られたモデルがあるかどうか疑問に思います。 GPUはかなりの量の電力を消費することがよく知られており、特定の命令は、その複雑さと洗練されたチップ上の位置に基づいて、異なるカテゴリの電力消費に分類されます。したがって、指示のエネルギーは、エネルギーの観点から、単位(または固定)のコストではありません。取るに足らない拡張は、操作コストに重みを割り当てることですが、操作/命令がエネルギーの一定でない単位、たとえば多項式量(またはさらに複雑な例:開始から経過した時間の関数)を要する強力なモデルを探していますアルゴリズムの;または、冷却システムの故障の可能性を考慮して、チップを加熱し、クロック周波数を遅くするなど) 自明ではないコストと障害を組み込むことができるようなモデルはありますか?

1
絞り込みタイプの推測
職場では、動的言語に関する型情報を推論する必要があります。次のように、ステートメントのシーケンスをネストされたlet式に書き換えます。 return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 一般的なタイプ情報から始めて、より具体的なタイプを推測しようとしているので、自然な選択は絞り込みタイプです。たとえば、条件演算子は、trueブランチとfalseブランチの型の和集合を返します。単純なケースでは、非常にうまく機能します。 ただし、次のタイプを推測しようとしたときに、思わぬ障害に遭遇しました。 function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

1
RAMマシンによってT(n)で計算可能なブール関数がDTIME(T(n)^ 2)にあることを証明します
問題は、Arora-Barakの著書「Computational Complexity — Modern Approach:」の演習1.9 です。 RAMチューリングマシンを、ランダムアクセスメモリを持つチューリングマシンとして定義します。これを次のように形式化します。マシンには、すべての空白に初期化される無限配列Aがあります。次のようにこの配列にアクセスします。マシンのワークテープの1つがアドレステープとして指定されています。また、マシンには、RとWで示される2つの特別なアルファベット記号と、q_accessで示される追加の状態があります。マシンがq_accessに入るときは常に、そのアドレステープに 'i'R(' i 'はiのバイナリ表現を表す)が含まれている場合、値A [i]がRシンボルの隣のセルに書き込まれます。そのテープに 'i'Wa(aはマシンのアルファベットの記号)が含まれている場合、A [i]は値aに設定されます。 ブール関数がRAM Tによって時間T (n )(ある時間構成可能なTの場合)内で計算可能である場合、はD T I M E(T (n )2)にあることを示します。fffT(n)T(n)T(n)TTTDTIME(T(n)2)DTIME(T(n)2)\mathrm{DTIME}(T(n)^2) (アドレス値)追加のテープ記録のペアを使用して、自明な解は、であることが判明そのテープは、大きさのものとすることができるので、O (T (N )2)とO (T (n ))ペア、各ペアのアドレスはサイズO (T (n ))にすることができます。DTIME(T(n)3)DTIME(T(n)3)\mathrm{DTIME}(T(n)^3)O(T(n)2)O(T(n)2)O(T(n)^2)O(T(n))O(T(n))O(T(n))O(T(n))O(T(n))O(T(n))

1
現代の正規表現の表現力
私は最近、主に単語のグループを特別なプロパティと照合する正規表現の課題を提案するWebサイトについて友人と話し合いました。彼は||||||||、数|が素数であるような文字列に一致する正規表現を探していました。そのような言語は、通常であれば、補題をポンプの翻訳が素数のためにあるという事実与えますので、私はすぐにそれが今まで動作しません彼に言われた十分な大きさ、それが存在するのk ≤ pがあるようP + N kは、すべての主要ですN ≥ - 1、よく、これは全くケースしにくい(素数の配分、そのような未知の自明とプロパティを破砕、...)pppk≤pk≤pk \leq pp+nkp+nkp + nkn≥−1n≥−1n \geq -1 しかし、誰かが解決策に付属している:一致しない(||+?)\1+ キャプチャグループに一致するように、この表現しようとする(つまりすることができ||、|||、||||などの上の出現箇所)のn ≥ 2回。一致する場合、文字列で表される数はkで割り切れるので、素数ではありません。それ以外の場合です。k≥2k≥2k \geq 2|n≥2n≥2n \geq 2kkk そして、グループ化と後方参照により、正規表現が理論的な意味で...正規表現よりも実際にはるかに表現力豊かになることが明らかになったので、私は愚かに感じました。今では、実際の正規表現を実行するときに私が知らなかったルックアラウンドやその他の演算子も追加されました。 ウィキペディアによると、文脈自由文法によって生成された言語よりもさらに表現力があります。だからここに私の質問があります: 現代の正規表現エンジンを使用して、(文脈自由文法から生成された)代数言語を表現できますか より一般的な説明、または現代の正規表現で説明できる言語の種類の複雑さの少なくとも上限はありますか? より実用的には、その背後に深刻な理論がありますか、それとも有限オートマトンに基づく実際の正規表現の最初のブロックに実装可能と思われるたびに新しい機能を追加するだけですか? 「モダンな正規表現」は質問が具体的ではないことを知っていますが、少なくとも後方参照を使用することを意味します。もちろん、この「現代の正規表現」言語に対する特定の制限を想定している部分的な回答者がいる場合は、遠慮なく投稿してください。

2
CUDAに最も近い理論的並列モデルはどれですか?
CUDA / OpenCLプログラミングモデルに最も近い理論上の並列モデルはどれですか? たとえば、汎用的なParallel Random Access Machine(PRAM)モデルにある程度適合します。ただし、さまざまなメモリアクセスのレイテンシと同期の問題を抽象化するため、これは一般的すぎます。 私の質問は、CUDAアーキテクチャが最も適合する理論的なモデルはどれですか(スレッドとスレッドのブロックの階層的な並列処理を考慮して)

2
現在のコンピューターが構築されている数学モデル
「チューリングマシンは実用的なコンピューティングテクノロジーとしてではなく、コンピューティングマシンを表す仮想デバイスとして意図されていると言われています。チューリングマシンは、コンピューター科学者が機械計算の限界を理解するのに役立ちます。」[ウィキペディア] では、どのモデルで現在のマシンが構築されていますか?

2
すべてのコンピュータプログラムをグラフとして表すことはできますか?
先日考えていたところ、コンピュータープログラムはすべてグラフ(たとえば、抽象構文ツリー)として、または一般的な式を組み合わせると抽象構文グラフとして表現できるように思えました。 たぶん、どのコンピュータプログラムも、これらのグラフの1つ+それに付加された評価セマンティクスとして表すことができると思いました。これがチューリングマシンに対して普遍的に当てはまるかどうか誰かが知っているのであれば、私は興味があります(潜在的に無限のグラフを取得できると思いますが、これは数学なので問題ありません)。私はそれと、強力な型システムなどの多くのことを熟考してきましたが、この抽象化によく適合します(グラフに構造上の制約を課します)。型システムを独自のプログラムと見なして、それを別のグラフ+プログラムのグラフで動作する評価セマンティクスとして表すこともできます... これが既知の同等であるかどうかに興味があります。


1
行列乗算アルゴリズムの実行時間を分析するために使用される計算モデルはどれですか?
行列乗算アルゴリズム(Strassenのアルゴリズムなど)の漸近ランタイムについてはすでに学習しましたが、この複雑さを測定するために使用される計算モデルへの明示的で満足のいく参照は見つかりませんでした。実際、私は3つの可能な答えを見つけましたが、どちらも完全に満足できるものではないようです。 ウィキペディアによると、ここで使用されているモデルはマルチテープチューリングマシンです。マトリックス乗算の分析では、スカラー乗算は一定の時間複雑さを持つと想定されているため、これは私にはあまり意味がありません。これは、チューリングマシンには当てはまりません。 一部のテキストは、使用される算術演算の数として複雑さを漠然としか説明していません。しかし、この文脈での算術演算は正確には何ですか?その加算、乗算、そしておそらく減算だと思います。しかし、除算、整数除算、剰余などはどうですか?そして、ビット単位の操作についてはどうでしょうか-これらはどのようにこの設定に適合しますか? 最後に、最近、BSSマシンを計算モデルとして使用する記事を発見しました。しかし、これは私にとっても少し奇妙に思えます。たとえば、整数行列の場合、整数除算などの操作を禁止することはあまり意味がありません。 これらを整理するのを手伝ってくれるだれでもに感謝します。

2
オートマトンはπ計算に相当しますか?
チューリングマシンがオートマトンと同等の場合 λλ\lambda 微積分、オートマトンに相当するものは何ですか ππ\pi微積分?それは、チューリングマシンに似たある種のオートマトンであると思いますが、通信チャネルまたは特定のタイプの信号をサポートしていますが、確信が持てず、方向性を高く評価します。

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