コンピュータサイエンス

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

1
検索と並べ替えアルゴリズムの基本操作の複雑さ[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 Wikiには優れたチートシートがありますが、これは含まれていません。比較またはスワップの。(ただし、通常、スワップ数はその複雑さを決定します)。そこで、以下を作成しました。次の情報は正しいですか?エラーがある場合はお知らせください。修正します。 挿入ソート: 平均ケース/最悪ケース: ; 入力がすでに降順でソートされている場合に発生しますΘ(n2)Θ(n2)\Theta(n^2) ベストケース: ; 入力がすでにソートされている場合Θ(n)Θ(n)\Theta(n) 比較の数:、最悪の場合&にΘ (N )最良の場合にΘ(n2)Θ(n2)\Theta(n^2)Θ(n)Θ(n)\Theta(n) スワップ数:最悪/平均ケース&Θ(n2)Θ(n2)\Theta(n^2)が最良の場合000 選択ソート: 平均ケース/最悪ケース/最良ケース:Θ(n2)Θ(n2)\Theta(n^2) 比較数:Θ(n2)Θ(n2)\Theta(n^2) スワップ数:最悪/平均ケース&0Θ(n)Θ(n)\Theta(n)000最良のケースの中で最もにおいて、アルゴリズムは、あなたが所定の位置に要素を入れ替えたら、あなたは再びそれに触れることはありません、Nスワップが必要です。 マージソート: 平均ケース/最悪ケース/最良ケース:。入力がソートされているかどうかはまったく関係ありませんΘ(nlgn)Θ(nlgn)\Theta(nlgn) 比較数:最悪の場合は&最良の場合はΘ (n )。サイズn&mの2つの配列をマージしていると仮定します。ここでn &lt;Θ(n+m)Θ(n+m)\Theta(n+m)Θ(n)Θ(n)\Theta(n)n&lt;mn&lt;mn<m スワップ数:スワップなし![ただし、インプレースソートではなく追加のメモリが必要] クイックソート: 最悪の場合:Θ(n2)Θ(n2)\Theta(n^2) ; 入力はすでにソートされています ベストケース: ; ピボットが配列をちょうど半分に分割するときΘ(nlogn)Θ(nlogn)\Theta(nlogn) 比較数:最悪の場合&Θ (n l o g nΘ(n2)Θ(n2)\Theta(n^2)最良の場合にΘ(nlogn)Θ(nlogn)\Theta(nlogn) スワップ数:最悪の場合&0Θ(n2)Θ(n2)\Theta(n^2)000、最良の場合は バブルソート: 最悪の場合:Θ(n2)Θ(n2)\Theta(n^2) ベストケース:Θ(n)Θ(n)\Theta(n) ; ソート済み 比較数:Θ(n2)Θ(n2)\Theta(n^2)最悪の場合と最良の場合の スワップ数:最悪の場合&0Θ(n2)Θ(n2)\Theta(n^2)000、最良の場合は 線形検索: 最悪の場合:Θ(n)Θ(n)\Theta(n) ; …

1
補足がワンカウンターである、厳密に非決定的なワンカウンター言語はありますか?
してみましょう A={L∣Lis one-counter and L¯ is also one-counter}A={L∣Lis one-counter and L¯ is also one-counter}A= \{L \mid L \;\text{is one-counter and \(\bar{L}\) is also one-counter} \} 明らかに、Deterministic one-counter⊆ADeterministic one-counter⊆A\text{Deterministic one-counter} \subseteq A その場合であるA=Deterministic one-counterA=Deterministic one-counter A = \text{Deterministic one-counter}? 文脈自由言語の場合、アナログはそうではないことを知っています。たとえば、P={wwr}P={wwr}P =\{ ww^r\}ます。その後、両方のPPPとP¯P¯\bar{P}文脈自由ですが、PPP確定的ではありません。したがって、AAAは文脈自由言語の(厳密な)サブセットを定義します。 問題は、同じことが当てはまる同様の1カウンターの例を構築できるかどうかです。

1
数独パズルの変種はどれほど難しいですか?
数独はNP完全であることが知られているよく知られたパズルで、ラテン方格として知られているより一般的な問題の特殊なケースです。正方形の正しい解は、すべての行と列に数字が回だけ現れるという条件下で、すべての行とすべての列をからまでの数字で埋めることで構成されます。1 NN×NN×NN \times N111NNN 新しい問題を定義します。入力はN×NN×NN \times N数独パズル(より一般的にはラテン方格問題)の正しい解です。行と列に連続するトリプルが含まれないように、行の置換と列の置換があるかどうかを判断したいと思います。 連続トリプルのない行の例は9 5 6 2 3 8 4 7 1です。連続トリプルのある行の例は8 9 5 2 3 4 7 6 1です。トリプルは2 3 4です。 問題はNP困難であると思いますが、削減を見つけることができませんでした。 この数独パズルの変種を解くのはどれほど難しいですか?それはNP完全ですか? 編集:明確にするために、列と行に同じ順列を適用する必要があります。

2
ニューラルネットワークの重みから何を学ぶことができますか?
私はニューラルネットワークに非常に慣れていないため、いくつかのことを理解しようとしています。したがって、100個の入力、200個のノードを持つ非表示層、および32個の出力を持つニューラルネットワークに遭遇したとします。また、ニューラルネットワークのこの特定のインスタンスの「発見者」であるあなたが、個々のニューロンの重みを読み取ることができるとしましょう。その機能について何を理解できますか? 1)ニューラルネットワーク内に含まれているアルゴリズムまたはロジックを特定できますか?すべての可能な入力をフィードし、それが生成する出力を調査する以外は。 2)ニューラルネットワークの接続に関する情報が提供された場合(ネットワークが完全に接続されていない可能性があります)、上記の質問を解決する方が簡単でしょうか?

6
有限状態機械の実用化
DFA、NFA、ムーア、ミーリーマシンなどの有限状態マシンの実用的なアプリケーションを探しています... Linuxカーネルの例を誰かが指摘すると、役に立ちます。KMPアルゴリズムのような文字列照合でDFAが使用されていることを知っています。 NFA、ムーア、ミーリーのマシンの重要性は何ですか?

2
分散方式でのツリーの6色分け
ツリー6の分散アルゴリズムを理解するのにいくつかの困難があり時間でのカラーリング。O(log∗n)O(log∗⁡n)O(\log^*n) 詳細な説明は、次のペーパーにあります:スパースグラフの並列対称性の破れ。ゴールドバーグ、プロトキン、シャノン。 つまり、アイデアは... プロセッサID者によって与えられた有効な着色から出発し、手順を繰り返し、各非ルートノードrecoloringによって色記述のビット数を減少するビットのインデックス連結することによって得られた色で異なっておよびこのビットの値。ルート を連結と、新しい色を形成します。vvvCvCvC_vCparent(v)Cparent(v)C_{parent}(v)rrr000Cr[0]Cr[0]C_r[0] アルゴリズムは回の反復後に終了します。O(log∗n)O(log∗⁡n)O(\log^*n) 回の繰り返しで実際に終了する理由を直感的に理解できません。最後の反復に関する論文で言及されているように、2つのビット文字列が異なる最小のインデックスは最大3です。したがって、0番目のビットと1番目のビットは同じで、である可能性があるため、この2つのビットは4を与えます。色+異なる3番目のビット用の別の2色、および紙のように6色ではなく合計8色、および2ビットで先に進むことができない理由、異なるビットを見つけて分離することはまだ可能です。O(log∗n)O(log∗⁡n)O(\log^*n)22=422=42^2=4 論文よりもアルゴリズムを少し深く分析していただければ幸いです。

1
C / C ++と競合する高品質のLISP / Schemeコンパイラ
理論的に言えば、コンパイルされたCと競合できるコードを生成できるLisp / Schemeコンパイラを使用することは可能でしょうか。 私のテストでは、現在のコンパイラ(Bigloo、SBCL、Gambit、Chickenなど)が同等のCコードより20〜50倍遅いことがわかりました。 のみ外れ値スターリンコンパイラです。単純なプログラムの場合は、Cと同等のバイナリが生成されます。しかし、疑わしいのは、他のプロジェクト(Bigloo、Chicken、Clozureなど)が、スターリンが使用するトリック(「プログラム全体の最適化」)の実装を試みていないことです。等)。 私は90年代半ばからLISPの大ファンで、C / C ++ /。NET / etcを使用して通常の半分の時間でプロジェクトを実行できるようにしたいのですが...パフォーマンス問題は大きな障害です。 質の高いLISPコンパイラが不足しているのは、深刻な時間とお金がこのテーマに費やされていないためか、コンパイラテクノロジの現状を考えると、これは単に実行可能なタスクではないのでしょうか。

4
並べ替えられた配列のリストの中央値を見つける
入力:(数値の)配列 セット。 各配列内の要素は並べ替えられていますが、配列のセットは必ずしも並べ替えられていません。配列は必ずしも同じサイズである必要はありません。要素の総数はです。A I Nℓℓ\ellAiあ私A_inんn 出力:入力のすべての要素のうち最小番目の要素。kkk この問題の最も効率的なアルゴリズムは何ですか? たとえば、実行時間を達成することは可能ですか?O(ℓ+logn)O(ℓ+ログ⁡ん)O(\ell + \log n)

1
ary配列のO(1)時間範囲クエリのビット複雑度
次の問題を検討してください。 してみましょうkkk一定です。我々は、与えられた進アレイのとのが。ましょ。A d 1 × … × d k 0 1 N = ∏ k i = 1 d ikkkAd1×…×dkAd1×…×dkA_{d_1\times\ldots\times d_k}000111N=∏ki=1diN=∏i=1kdiN = \prod_{i=1}^k d_i 次のタイプのクエリ操作を実行するためにを前処理ことにより、データ構造を作成したいとします。AAA aryボックスの座標を考えると、ボックスにはがありますか? D 1kkkDDD111 aryボックスの座標を指定して、ボックス内のの位置を返します(存在する場合)。D 1kkkDDD111 操作は一定時間で実行する必要がありますO(1)O(1)O(1)。時間の複雑さは、RAMマシンで測定されます。データ構造の前処理の時間とスペースは、私たちにとって重要ではありません。 問題は、上記の操作を可能にするデータ構造を格納するために必要なスペース(ビットの複雑さ)の量です。 これらのクエリに対して配列を再構築できるため、自明な下限はNNNビットです(したがって、データ構造には少なくとも同じ量の情報が含まれている必要があります)。 自明な上限は、すべてのクエリに対する回答を格納することです。これには、ビットが必要です。ただし、これははるかに効率的に実行できると思われます。∏ki=1(di2)=Θ(N2)∏i=1k(di2)=Θ(N2)\prod_{i=1}^k {d_i \choose 2} = \Theta(N^2) たとえば、である特殊なケースを考えます。この場合、最初の問題を解決するために簡潔なRMQデータ構造を使用できます。データ構造の格納にはビットかかります。k=1k=1k=12N+o(N)2N+o(N)2N+o(N) このタスクの効率的なデータ構造は何ですか? スペースの複雑さ(ビット数)は、これらの操作(または最初の操作のみ)をサポートするためにどれだけ低くできますか? アップデート(1/15): 特殊なケースでは使用して、ビットは、実際によりよい(十分であるここで、数であるの)は、問題を先行問題に削減し、先行問題から完全に索引付け可能な辞書(FID)への削減を使用することによって。Grossi、Orlandi、Raman、およびRao(2009)による「より速く、より少ない無駄:完全に索引付け可能な辞書の冗長性を下げる」を参照してください。k=1k=1k=1N+o(N)N+o(N)N +o(N)log(Nt)+O(t)log⁡(Nt)+O(t)\log {N\choose t}+O(t)ttt111AAA 更新(6/27): 問題をRMQに減らします。YuanとAtallahによる次元のRMQ を使用して、が固定されている場合に必要なスペース量の上限を取得し。kkkO(nlogn)O(nlog⁡n)O(n\log …

3
3色問題から一般的な色問題への削減をどのように理解するのですか?
3彩色問題は、3SAT グラフ彩色(3SATから)からの削減を利用して、NP完全であることが証明できます。結果として、4つのカラーリングの問題は、3つのカラーリングからの削減を使用したNP-Completeです。 3-Coloringインスタンスからの削減:3-Coloring問題のグラフに頂点を追加し、それをすべての元の頂点に隣接させます。 同じ理由で、5-Coloring、6-Coloring、さらには一般的な -Coloringの問題でさえ、NP-Completeを簡単に証明できます。ただし、私の問題は、基礎となる数学的帰納法で発生します。kkk 私の問題:誘導が -Coloringおよび -Coloringの問題(はグラフ内の頂点の数)に進んだはどうなりますか?カラーリングの問題は簡単に解決できることは確かです。それで、推論に何か問題がありますか?3色問題から一般的な色問題への削減を理解するにはどうすればよいですか?n−1n−1n-1nnnnnnnnnkkk

1
循環リスト内の類似インデックスの合計
次の問題を検討してください。 してみましょう -wheelのインデックス化循環的にリンクされたリストとして定義される整数。例えば…kkkkkk {3、4、9、-1、6} …5輪で、位置0に3、位置1に4と続きます。ホイールは回転の操作をサポートするため、1ステップの回転で上記のホイールが… {6、3、4、9、-1} …今度は位置0に6、位置1に3と続きます。LETの順序付き集合である異なる -wheels。いくつかのといくつかの整数、次のような一連の回転を見つけます…WNkWNkW_{N_k}NNNkkkWNkWNkW_{N_k}ttt ∀ 0 ≤ I &lt; K 、Σ N∈ WN私= t∀ 0≤私&lt;k、ΣN∈WN私=t\forall\ 0 \leq i < k, \sum_{N \in W} N_i = t つまり、ホイールを行列としてレイアウトした場合、すべての列の合計はます。は、解がすべての要素の回転まで一意になるように構築されていると想定します(つまり、1つの解を取得し、すべてのホイールを同じステップ数だけ回転させることで構成される正確に一意の解があります)。tttWNkWNkW_{N_k}kkkWWW この問題の簡単な解決策は、考えられるすべての回転を単にチェックすることです。そのための擬似コードを以下に示します。 function solve(wheels, index) if wheels are solved: return true if index &gt;= wheels.num_wheels: return false for each position …

3
連続するXOR値の最大値と最小値を見つける
整数配列(最大サイズ50000)指定された、Iは最小値と最大見つけなければならない例えば一部について、と。X = P ⊕ P + 1 ⊕ ⋯ ⊕ A Q P Q P ≤ QXXXX=ap⊕ap+1⊕⋯⊕aqX=ap⊕ap+1⊕⋯⊕aqX = a_p \oplus a_{p+1} \oplus \dots \oplus a_qpppqqqp≤qp≤qp \leq q 私はこのプロセスを試しました: for all。私はそれをで事前に計算し、次にいくつかの、の値を計算しては次のようになり:。したがって: I O (N )X P Q (P ≤ Q )X = 和Q ⊕ 和P - 1sumi=a0⊕a1⊕⋯⊕aisumi=a0⊕a1⊕⋯⊕ai\text{sum}_i = a_0 \oplus a_1 …

1
証明または反駁:BPP(0.90,0.95)= BPP
:私は本当にあなたの証明のヘルプまたは以下の請求反論たいBPP(0.90,0.95)=BPPBPP(0.90,0.95)=BPPBPP(0.90,0.95)=BPP。計算の複雑さの理論では、有界誤差確率多項式時間を表すBPP は、多項式時間の確率的チューリングマシンで解ける決定問題のクラスであり、最大1のエラー確率を持ちます。1313\frac{1}{3}すべてのインスタンスで 3。。BPP=BPP(13,23)BPP=BPP(13,23)BPP=BPP(\frac{1}{3},\frac{2}{3}) エラーの確率がより小さい場合ので、セットのいずれかが、他のサブセットであることは、即時ではないそれよりも小さくする必要はない、それがより大きい場合はより大きい必要はありません。0.90.90.91313\frac{1}{3} 0.9052323\frac{2}{3}0.9050.9050.905 私は主張を証明するためにチェルノフの不等式を使おうとしていますが、正確な方法はわかりません。私は本当にあなたの助けをお願いします。私が使用できるこれらの関係に関する一般的な主張はありますか?

1
一般的な(四面体ではない)細胞複合体のデータ構造
2Dポリゴンメッシュの場合、QuadEdgeおよびHalfEdgeのデータ構造表現は、すべてのトポロジー情報と発生率情報の効率的なクエリを格納および有効化するのに十分です。3D多面体メッシュのコンパクトで効率的なデータ構造はありますか?最近では、たとえばSOTなどの四面体メッシュのコンパクトな表現に関する作業がいくつか行われています。これらが構造化されていない非四面体メッシュに一般化されるかどうかを知るには、これらについて十分に知りません。 ハーフエッジは、関連するハーフエッジを持つハーフフェースに一般化される可能性があると想像できますが、それは格納する大量のデータのようであり、よりコンパクトな表現があるかもしれません。私は本当にファセット情報(どのファセットが境界上にあるか、どのファセットが特定のセルに属しているかなど)を取得することだけに関心があることを付け加えておきます。エッジ発生率の情報はそれほど役に立ちません。

1
グラフ内のすべての2ホップ近傍リストを見つけるアルゴリズム
グラフ場合、| V | = n。Vのすべてのノードのすべての2ホップ近傍リストのコレクションを生成するための高速アルゴリズムとは何ですか。G = (V、E)G=(V,E)G = (V,E)| V| =n|V|=n|V| = nVVV 簡単に言えば、でそれを行うことができます。行列のべき乗では、Strassenアルゴリズムを使用してO (n 2.8)でそれを行うことができます。別の行列乗算アルゴリズムを使用すると、これよりも優れた処理を行うことができます。より良い方法はありますか?ラスベガスのアルゴリズムはありますか?O (n3)O(n3)O(n^3)O (n2.8)O(n2.8)O(n^{2.8})

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