コンピュータサイエンス

コンピュータサイエンスの学生、研究者、実務家のためのQ&A

1
チューリングマシンの補完を描画する方法?
何かをチューリングマシンに変える方法について、今ではかなり自信があります。今私の質問は、TMをチューリングマシンの補完物にどのように変換するかです。私が有限オートマトンで覚えていることから、それを補完すると、開始状態を終了状態に変えるだけで、終了状態がある場合は、開始状態にすることができます。チューリングマシンをどのように補完しますか? たとえば、ここに私は回文の単純なTMがあり、回文が欲しいと思っています '

1
の意味
回路の複雑性には次のような基本的な結果があります。 サイズ回路では解決できない言語が存在します。o(2nn)o(2nn)o(\frac{2^n}{n}) 引数は、ブール関数の数と個別の回路の数に関する単純なカウント引数です。たとえば、これらの講義ノートを参照してください。 この限界が厳しいかどうかは不明です。つまり、次の説明が正しいかどうかはわかりません。 すべての言語は、サイズ回路で解決できます。O(2nn)O(2nn)O(\frac{2^n}{n}) このステートメントが真実である場合、複雑性理論に興味深い影響がありますか?

2
既約多項式を法として多項式を減らすIntelのアルゴリズムを理解する
キャリーレス乗算に関するこのIntelホワイトペーパーを読んでいます。の多項式の乗算について説明し。高レベルでは、これは2つのステップで実行されます:(1)上の多項式の乗算、および(2)既約多項式を法として結果を削減します。多項式の「標準」ビット文字列表現、つまります。GF (2ん)GF(2ん)\text{GF}(2^n)GF (2 )GF(2)\text{GF}(2)バツ3+ x + 1 = [ 1011 ]バツ3+バツ+1=[1011]x^3+x+1 = [1011] この論文では、アルゴリズム3の16ページの剰余多項式の計算アルゴリズムを示しています。しかし、16〜17ページの削減アルゴリズム(アルゴリズム4)を理解できません。基本的に、私たちの結果または部分的な結果が128ビットに適合しない場合、より大きなフィールドにはアルゴリズム4が必要だと思います。の2つの多項式の乗算の例を示し。GF (2128)GF(2128)\text{GF}(2^{128}) 右シフトの「マジック定数」63、62、57と、左シフトの「マジック定数」1、2、7はどこから来るのですか? たとえば、\ text {GF}(2 ^ {32})のように、より小さなフィールドのアルゴリズムを一般化するにはどうすればよいGF (232)GF(232)\text{GF}(2^{32})ですか?次に、対応するシフト値は15、14、9および1、2、7になりますか? 最後のステップ4で、アルゴリズムは「XOR [E1:E0][E1:E0][E_1:E_0]、[F1:F0][F1:F0][F_1:F_0]、および[G1:G0][G1:G0][G_1:G_0]と[X_3:D]との相互関係[バツ3:D ][バツ3:D][X_3:D]」を示します。 なぜこれを行うのですか?私の知る限り、このXOR演算の結果はどこにも保存されず、どこでも使用されません。[H_1:H_0]の計算に何らかの形で使用されてい[H1:H0][H1:H0][H_1 : H_0]ますか?

1
サブグラフとしてを保証するために必要なエッジの数
私は与えられた問題を解決しようとしています:グラフがステップでサイズ3のクリークを持つかどうかを決定するアルゴリズムを見つけます。与えられたヒントは、そのです。これを解決するために、私は推測を思いつきました:場合、グラフにはサブグラフとしてがあります。これは、予想が正しい場合、問題を簡単に解決します。O(n2.81)O(n2.81)O(n^{2.81})2.81>log72.81>log⁡72.81 > \log 7m>nlog7m>nlog⁡7m > n^{\log 7}K3K3K_3 私は矛盾して議論しようとしています:とし、サブグラフが存在しないと仮定します。次に、3つの頂点の任意のセットについて、それらを接続する方法として正確に7つの選択肢があります。しかし、ここからどうやって進むのか悩んでいます。m>nlog7m>nlog⁡7m > n^{\log 7}K3K3K_3 誰かがこれを証明する方法を知っているか、あるいは推測が真実であるかどうか。また、推測が拡張できるかどうか、つまり場合にサブグラフが存在するかどうます。m>nlog2k−1)m>nlog⁡2k−1)m > n^{\log 2^k -1})KkKkK_k

1
REGEXPはプログラミング言語でどのように実装されていますか?
変数の有無にかかわらず、パターンマッチング用のプログラミング言語でのREGEXPの解釈またはコンパイルに関する優れた一般的な論文はありますか?私はDFAの構築について簡単な説明を求めているのではなく、プログラミング言語の実装で実際にそれがどのように行われるか、そして単純または難しいと考えられるものについての実際の論文を求めています。言語間の違いに影響があると思います。REGEXPの実装方法に関する正式な論文も役に立ちます:-)

2
現実のコンピュータはチューリングマシンメカニズムを使用していますか?
私は12年生の高校生です。私は高レベルのプログラミングと基本的なコンピュータサイエンスについて少し勉強します。 最近、チューリングマシンとは何かを理解し始めました。聞きたかった: チューリングマシンは、計算のメカニズムを説明するために使用される架空のデバイスであることを理解しています。 しかし、チューリングマシンは、概念的にはコンピューターの実際の基盤ですか?(最も基本的なレベルで)。または、現実のコンピューティングメカニズムとチューリングマシンメカニズム(計算方法)の共通点はほとんどありませんか?

2
無料の昼食の定理とは何ですか?
私は無料ランチの定理について読んでいますが、それが何であるかはよくわかりません。この定理が「汎用のユニバーサルオプティマイザは存在しない」という主張として他の場所で説明されているのを聞いたことがあります。一方、ウィキペディアの記事では、「1つずつ評価される」「候補ソリューション」について説明しています。特定の形式のアルゴリズムのみを検討すると、それははるかに限定的な主張になります。 この定理が実際に主張していることを誰かが説明できますか?

2
有限表現とプログラミング言語
私はオートマトン理論と有限表現に関するいくつかの前提条件の数学について説明します。 私は以下を読みました: ∑が有限のアルファベットの場合、アルファベット(over *)上のすべての文字列のセットは無限に無限です。 アルファベットのすべての可能な言語のセットは、数え切れないほど無限です∑ 。 どのようにΣから可能な言語のセットをすることができ非可算無限、まだ言語へのアルファベットの可能なアプリケーションは、可能可算無限? 私は数学の専門家ではないので、あまり複雑な表記を使用しないように返信する人に質問できますか?

2
サブリストがかなりのメモリを占有しているのに、なぜクイックソートが「インプレース」と記述されるのですか?確かにバブルソートのようなものだけが配置されていますか?
クイックソートは「インプレース」と説明されていますが、次のような実装を使用しています。 def sort(array): less = [] equal = [] greater = [] if len(array) > 1: pivot = array[0] for x in array: if x < pivot: less.append(x) if x == pivot: equal.append(x) if x > pivot: greater.append(x) return sort(less) + equal + sort(greater) else: return array 再帰ごとにリストのコピーを作成する必要があります。最初の戻りまでに、メモリには次のようになります。 アレイ 大きい+等しい+小さい …

2
スパイキングニューラルネットワークとディープラーニングの主な違いは何ですか
人工ニューラルネットワークで最も人気のある分野の1つであるディープラーニングは、データセットの精度の点で大きな期待を示しています。スパイキングニューラルネットワークと比較してどうですか。最近クアルコムがSNNでその0番目のプロセッサを発表したので、代わりにディープラーニングを使用する場合に違いがあるかどうか考えていました。

2
サイズNのSAT(ブール充足可能性)問題のインスタンスの数?
SAT問題のインスタンスのサイズは、(ブール)変数の数によって測定されると思います。サイズNのSAT問題のインスタンスの総数はいくつですか? これは、CNFやDNFなどの正規形を使用して、N個のブール変数によって形成できる「明確な」数式の数を数えることになると思います。 更新:この質問は、3SATケースについて部分的に回答されています:https ://cstheory.stackexchange.com/q/2168/15553 別個の句の数は次のとおりです。 C=2N×2(N−1)×2(N−2)/3!=4N(N−1)(N−2)/3C=2N×2(N−1)×2(N−2)/3!=4N(N−1)(N−2)/3 C = 2N \times 2(N-1) \times 2(N -2) / 3! = 4 N(N-1)(N-2)/3

1
GPUはどのように正弦を計算しますか?
最近、GPUが正弦と余弦をどのように計算するのか疑問に思っています。Googleは正確な答えを見つけるのに役立ちませんでした。 最初は、計算をできるだけ速くするために、GPUがなんらかのルックアップテーブルを使用すると考えていました。しかし、私は、[0、2 * pi]の間のdoubleの範囲のテーブルにすべての罪の値を格納することは、膨大なものになるため、有効なオプションではないことに気付きました。 テーブルの解像度が低下する可能性があり、ルックアップの欠損値を許容できるようになります。ただし、これは、計算を複数回実行するときに、より大きくて許容できないエラーに波及する可能性のあるエラーをもたらします。 私の最後の考えは、それらがテイラー近似を使用している可能性があるということですが、これにはかなりの算術が含まれ、GPUには遅すぎる可能性があります。では、問題は、GPUが正弦を計算するために何を使用するかということです。それはルックアップテーブル、近似、または両方のハイブリッドですか?そして、可能であれば、sqrt()のような他の計算にも同じメソッドを使用しますか?

4
チップに多くのトランジスタが必要なのはなぜですか、またそれらはどのように管理されますか?
私が持っているすべては視覚的な図などなので、私の知識は非常にあいまいですが、メモリアドレスとレジスタがあり、ALUが中心にあるようです(明らかに)。シングルコアCPUは一度に1つの命令を処理します。AFAIKとマルチコアはある程度の並列性を備えています。それで、何百万ものトランジスタがどこに入るのか、そして32のレジスタがどのようにすべてを管理するのか。私たちが知っているFPUは、これらが大まかに使用するトランジスタの数です。トランジスタの大部分が何をするのか、なぜもっと高速なのか、そしてレジスターがすべてを「管理」する方法についてのかなり単純なアイデアを得る方法。

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

1
一般的なプログラミング言語は、チューリングが完全でないことにどれほど近いですか?
「完全性のチューリング」という用語は、私が受けたいくつかのコンピュータサイエンスのクラスで議論されています。しかし、チューリングの完全性が実際に必要とするものを直感的に感じることはありません。私はこの質問を見つけましたが、答えは私が探しているものよりも少し数学的です。 C ++、Python、Java、Lispなどの一般的なプログラミング言語を取り上げます。これらの言語はチューリング完全ではないのですか?これらの言語には、削除するとチューリング言語が完全ではなくなる基本的な機能がありますか?または、言語のプロパティを変更して(たとえば、何かをランダムにする)、それを行うことにより、言語を完全なチューリングでなくすることができますか?

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