タグ付けされた質問 「ds.algorithms」

タスクを完了するための明確に定義された指示、および時間/メモリ/その他に関する関連分析に関する質問。

2
NPの完全な問題はありますか?
その中紙(P 503)Gareyとジョンソンの発言: ... NPの完全な問題が存在する可能性がありますが、これは強い意味でNPが完全ではなく、擬似多項式時間アルゴリズムによっても解決できません... 上記のプロパティに関する問題の候補を誰か知っていますか? この質問に対する可能な答えは、疑似多項式アルゴリズムが知られていないような、通常の意味でのNP完全問題のリストになる可能性があると思います。

1
線形プログラムのおおよその解決のための最良の可能な時間/エラーのトレードオフは何ですか?
具体的には、各プレーヤーがアクションを持つ2人のプレーヤーのゼロサムゲームを解決するためのLPを検討してください。ペイオフマトリックスAの各エントリの絶対値が最大1であるとします。簡単にするために、スパース性を仮定しません。nnnAAA このゲームの価値を概算するためにランタイムが利用できるとします。TTT この値を近似するための1つの手法は、乗法的更新法です(このコンテキストでは後悔のない学習として知られています)。これは、エラーの与え、ここで、〜Oの皮は、因子をログ。O~(n/T−−−−√)O~(n/T)\tilde O(\sqrt{n/T})O~O~\tilde O 最もよく知られている内点法のエラーランドスケープがどのようなものか正確にはわかりませんが、エラーはようなものだと推測しています。O (exp(− T/ n3))O(exp⁡(−T/n3))O(\exp(-T/n^3)) 乗法更新法は逆多項式であるエラーを与えます。内点法は、Tで指数関数的に小さいエラーを与えます。したがって、2つの最良のエラーは、内部ポイントが追いつくまでしばらくの間徐々に減少し、その後、エラーは突然崖から落ちます。私の本能は、このように振る舞う可能な限り最良の時間/エラーのトレードオフに反しています。TTTTTT 私の質問: 時間/エラーのトレードオフ曲線の角を滑らかにする近似線形計画法のアルゴリズムはありますか?つまり、利用可能な時間パラメータの任意の値に対して少なくとも2つのうちの最高の機能を実行し、時間とエラーのトレードオフが比較的スムーズなアルゴリズムです。内点法と乗法更新法を組み合わせるよりインテリジェントな方法は、2つのうちのどちらかを採用するよりも、このようなアルゴリズムを取得する方法の1つです。 参考文献: 一般的な乗法的更新: http://www.cs.princeton.edu/~arora/pubs/MWsurvey.pdf ゼロサムゲームの乗法更新: http://dx.doi.org/10.1016/0167-6377(95)00032-0 LPをカバー/パッキングするための乗法的更新: http://arxiv.org/PS_cache/arxiv/pdf/0801/0801.1987v1.pdf オリジナルのインテリアポイントペーパー: http://math.stanford.edu/~lekheng/courses/302/classics/karmarkar.pdf 適用された数学の観点からの内点: Bertsekasの非線形計画法、セクション4.1.1。

2
最も頻繁に発生する「k」個のアルゴリズム
私は、データストリームで最も頻繁に発生する「k」個の要素をいつでも通知する最も効率的な(ストリーミング??)アルゴリズムを探してきました。この投稿:「分割統治」データストリームアルゴリズムに興味を持ちました。 たとえば、数字があると仮定します:(4,3,5,1,6,2,4,3,3,8,9,1)そして、最も頻繁に発生する3つの数字(たとえば)をクエリした後、答えとして(3,4,1)を取得します。 オンラインで検索しようとしましたが、アプローチを提供し、それが最良であると言う場所を見つけることができませんでした。些細な解決策は、ヒープまたはバランスの取れたバイナリツリーを使用することですが、より良い方法があると思い、それがどこかに文書化されているかどうかを知りたかったのです。 編集:私は、何らかの方法でデータの分布に依存する承認アルゴリズム(多くが検索結果にポップアップする)とは対照的に、常に正しい答えを与えるアルゴリズムを探しています

22
実際に最も頻繁に使用されるアルゴリズムはどれですか?
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 どのアルゴリズムが最も頻繁に使用されますか? 回答ごとに1つのアルゴリズムを記述し、回答を短くしてください(1行または2行)。


5
高速ツリー幅アルゴリズム
グラフのツリー幅を計算したいと思います。サブグラフ同型のVF2など、他のNPハードグラフの問題には、たとえばigraphで使用可能なコードを使用して、本当に優れたヒューリスティックがあります。グラフで試してみましたが、データに対して非常に高速に動作します。 同様の方法でツリー幅を計算するための高速なアルゴリズムはありますか?

11
最もよく知られているアルゴリズムが実行時間問題はありますか
ログを分母に持つアルゴリズムを見たことはありませんが、この形式で実際に有用なアルゴリズムがあるかどうか疑問に思っていますか? 実行時にログファクターが増加する原因となる可能性のあるもの(ソートやツリーベースのアルゴリズムなど)を理解していますが、ログファクターで割り切れる原因は何ですか?

3
ランダム性はP内で何かを購入しますか?
ましょうの時間で実行されているアルゴリズムを無作為有界両面エラーを有する決定問題のクラスである。O (f (n ))B P T I M E(f(n ))BPTIME(f(n))\mathsf{BPTIME}(f(n))O(f(n))O(f(n))O(f(n)) がなどの問題を知っていますか?存在しないことが証明されていますか? Q ∈ B P T I M E(N 、K)Q ∉ D T I M E(N 、K)Q∈PQ∈PQ \in \mathsf{P}Q∈BPTIME(nk)Q∈BPTIME(nk)Q \in \mathsf{BPTIME}(n^k)Q∉DTIME(nk)Q∉DTIME(nk)Q \not \in \mathsf{DTIME}(n^k) この質問はcs.SEでここに尋ねられましたが、満足のいく答えは得られませんでした。

2
セパレータークエリからツリーを再構築する
仮定その構造、我々が知らない一定程度の木です。問題は、「ノードはノードからノードへのパス上にありますか?」という形式のクエリを実行して、ツリーを出力ことです。オラクルは一定の時間で各クエリに回答できると仮定します。ツリーのノード数であるの値を知っています。目的は、に関してツリーを出力するのにかかる時間を最小限にすることです。T x a b n nTTTTTTxxxaaabbbnnnnnn そこに存在して上記の問題のためのアルゴリズムを?o(n2)o(n2)o(n^2) ノードの次数は最大3 と仮定します。TTT 私が知っていること 有界直径の場合は簡単です。ツリーの直径が場合、分割統治アルゴリズムを取得できます。DDD バイナリツリーには、ツリーを1 / 3n以上のサイズのコンポーネントに分割する適切なセパレータがあります。 頂点xをピックします。それが良いセパレーターラベルである場合、それは再帰的です。 xの3つの近傍すべてを見つけます。 ノードの数が最も多い隣の方向に移動します。ネイバーでステップ2を繰り返します。 セパレータを見つけるには最大でステップかかるため、アルゴリズムを取得します。O (n D log n )DDDO (n D ログn)O(nDlog⁡n)O(nD\log n) アルゴリズムをランダム化しO (nログ2n)O(nlog2⁡n)O(n\;\log^2 n)。(以下のコメントから移動) 2つの頂点xとyをランダムに選択します。1/9の確率で、セパレーターの反対側にあります。からまでのパスの中間ノードを選択します。バイナリ検索を行わない場合、区切り文字かどうかを確認します。yバツxxyyy それは取ります、セパレータを見つけるために時間を予想しました。したがって、ランダム化アルゴリズムを取得します。O (nO (nログn)O(nlog⁡n)O(n\;\log n)O (nログ2n)O(nlog2⁡n)O(n\;\log^2 n) バックグラウンド。この問題について、確率的グラフィカルモデルで働く友人から学びました。上記の問題は、3つのランダム変数X、Y、Zが与えられ、Zの値が与えられるとXとYの間の相互情報の値を伝えることができるオラクルを使用して、ジャンクションツリーの構造を学習することにほぼ対応します。値が近い場合ゼロまで、ZがXからYへのパス上にあると仮定できます。

5
計算可能な数が有理数か整数かをテストすることはできますか?
計算可能な数が有理数か整数かをアルゴリズムでテストすることはできますか?言い換えれば、それは道具計算数字は機能を提供するために、そのライブラリは可能でしょうisIntegerかisRational? 私はそれが不可能であると推測し、これは何らかの形で2つの数値が等しいかどうかをテストすることができないという事実に関連していると推測していますが、それを証明する方法はわかりません。 編集:計算数はxxxの関数で与えられるfx(ϵ)fx(ϵ)f_x(\epsilon)の合理的な近似値を返すことができxxx高精度でϵϵ\epsilon:|x−fx(ϵ)|≤ϵ|x−fx(ϵ)|≤ϵ|x - f_x(\epsilon)| \leq \epsilonいずれについても、ϵ>0ϵ>0\epsilon > 0。このような関数を考えると、それがあれば、テストすることが可能であるx∈Qx∈Qx \in \mathrm{Q}またはx∈Zx∈Zx \in \mathrm{Z}?
18 computability  computing-over-reals  lambda-calculus  graph-theory  co.combinatorics  cc.complexity-theory  reference-request  graph-theory  proofs  np-complete  cc.complexity-theory  machine-learning  boolean-functions  combinatory-logic  boolean-formulas  reference-request  approximation-algorithms  optimization  cc.complexity-theory  co.combinatorics  permutations  cc.complexity-theory  cc.complexity-theory  ai.artificial-intel  p-vs-np  relativization  co.combinatorics  permutations  ds.algorithms  algebra  automata-theory  dfa  lo.logic  temporal-logic  linear-temporal-logic  circuit-complexity  lower-bounds  permanent  arithmetic-circuits  determinant  dc.parallel-comp  asymptotics  ds.algorithms  graph-theory  planar-graphs  physics  max-flow  max-flow-min-cut  fl.formal-languages  automata-theory  finite-model-theory  dfa  language-design  soft-question  machine-learning  linear-algebra  db.databases  arithmetic-circuits  ds.algorithms  machine-learning  ds.data-structures  tree  soft-question  security  project-topic  approximation-algorithms  linear-programming  primal-dual  reference-request  graph-theory  graph-algorithms  cr.crypto-security  quantum-computing  gr.group-theory  graph-theory  time-complexity  lower-bounds  matrices  sorting  asymptotics  approximation-algorithms  linear-algebra  matrices  max-cut  graph-theory  graph-algorithms  time-complexity  circuit-complexity  regular-language  graph-algorithms  approximation-algorithms  set-cover  clique  graph-theory  graph-algorithms  approximation-algorithms  clustering  partition-problem  time-complexity  turing-machines  term-rewriting-systems  cc.complexity-theory  time-complexity  nondeterminism 

3
mを法とする行列式
(法とする剰余環)の係数を持つ整数行列の行列式を計算するための既知の効率的なアルゴリズムは何ですか。数値は素数ではなく、複合で可能性があります(したがって、計算はフィールドではなくリングで実行されます)。 mmZmZm\mathbb{Z}_mmmmmmm 私が知る限り(以下を参照)、ほとんどのアルゴリズムはガウス消去法の修正です。問題は、これらの手順の計算効率についてです。 何らかの異なるアプローチがあることが起こった場合、私はそれにも興味があります。 前もって感謝します。 更新: この質問の原因を説明しましょう。は素数であると仮定します。したがって、はフィールドです。この場合、未満の数値を使用してすべての計算を実行できるため、数値のすべての操作に優れた上限があります:加算、乗算、反転---ガウス消去法を実行するために必要なすべての操作。Z m mmmmZmZm\mathbb{Z}_mmmm 一方、が素数ない場合、一部の数値の反転を実行できません。したがって、行列式を計算するにはいくつかのトリックが必要です。mmm そして今、私は仕事をするための既知のトリックは何であり、そのようなトリックは本や論文で見つけることができるかどうかに興味があります。


3
スーパーストリングを正確に解く
最短スーパーストリング問題の正確な複雑さについて何が知られていますか?よりも速く解けるO∗(2n)O∗(2n)O^*(2^n)か?TSPに減らすことなく最短スーパーストリングを解決する既知のアルゴリズムはありますか? UPD: O∗(⋅)O∗(⋅)O^*(\cdot)は、多項式因子を抑制します。 最短スーパーストリング問題は、その答えが、ストリングの特定のセットからの各ストリングを含む最短ストリングである問題です。問題は、有名なNP困難問題Shortest Superstringの最適化拡張についてです(Garey and Johnson、p.228)。

2
離散フーリエ変換の計算の複雑さ?
n個の整数のベクトルの標準離散フーリエ変換を計算する複雑さ(標準整数RAM上)は?nnn CooleyとTukey に不適切に起因する[1] 高速フーリエ変換の古典的なアルゴリズムは、通常O (n log n )時間で実行されると説明されています。ただし、このアルゴリズムで実行される算術演算のほとんどは、(ほとんどの場合n)非合理的な単位の複雑なn番目のルートから始まるため、一定時間での正確な評価は合理的ではありません。ナイーブO (n 2)-時間アルゴリズム(団結の複雑な根のヴァンダーモンド行列を掛ける)でも同じ問題が発生します。O (n ログn )O(nlog⁡n)O(n \log n)nnnnnnO (n2)O(n2)O(n^2) DFTの出力を(有用な形式で)正確に表現する方法すら明確ではありません。つまり、DFTの計算が実際に可能かどうかは明らかではありません。 したがって、各出力値に必要な精度はビットのみであるとします。 nとbの関数としての離散フーリエ変換の計算の複雑さは何ですか? (具体的には、nが2の累乗であると仮定してください。)bbbnnnbbbnnn222 または、文献の「FFT」のすべてのインスタンスは、実際には「高速数論変換」を意味しますか?[2] ガウス消去法とユークリッド最短経路の複雑さに関する私の関連する質問を参照してください。 [1]ガウス・ルンゲ・ケーニヒ・イェイツ・スタンプ・ダニエルソン・ランチョス・クーリー・テューキーのアルゴリズムと呼ばれるべきです。 [2]もしそうなら、ほとんどの教科書が複素数アルゴリズムのみを説明しているのはなぜですか?

3
スペースを使用したCFG解析
時間で文脈自由文法を解析できる多数のアルゴリズムがあります。行列乗算を使用すると、それよりも漸近的に高速化することもできます。O (n3)O(n3)O(n^3) ただし、私が知っている任意のCFGを解析するためのすべてのアルゴリズムは、最悪の場合のスペース使用量が(ただし、確かに、その行列乗算アルゴリズムのスペース使用量はわかりません)。私は、このスペース使用量を改善するアルゴリズムがあるかどうか疑問に思っていました(時間制限は無視します)。Ω (n2)Ω(n2)\Omega(n^2) 精神的に連結した後、私の心にポップアップ質問とΩ (N 2)全てのCFG解析アルゴリズムに結合した空間知っていた。おそらく実用的な関心はありませんが、単に知りたいと思うものです。CSG = ND SPA CE(N )⊆ D SPA CE(n2)CSG=NDSPACE(n)⊆DSPACE(n2)CSG = NDSPACE(n) \subseteq DSPACE(n^2)Ω (n2)Ω(n2)\Omega(n^2)

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