タグ付けされた質問 「time-complexity」

入力サイズで表された問題を解決するために必要な時間リソース(アトミック操作またはマシンステップの数)。アルゴリズム分析に関する質問の場合は、代わりに[runtime-analysis]タグを使用してください。計算が*常に*終了するかどうかに関する質問の場合は、代わりに[computability]タグを使用してください。時間の複雑性は、おそらく複雑性理論の最も重要なサブトピックです。

3
CLRSのd-aryヒープ問題
次の問題(質問1〜3)を解決しているときに混乱しました。 質問 D進ヒープは、バイナリヒープ似ているが、(一つの可能な例外を除いて)は、非リーフノードが有するD子供の代わりに、2人の子供。 配列のd- aryヒープをどのように表現しますか? n要素とd要素のd- aryヒープの高さは、nとdで何ですか? d -ary max-heap でのEXTRACT-MAXの効率的な実装を提供します。実行時間をdおよびnで分析します。 d -ary max-heap でのINSERTの効率的な実装を提供します。実行時間をdおよびnで分析します。 INCREASE-KEY(A、i、k)の効率的な実装を提供します。これは、k <A [i] = kの場合にエラーにフラグを立て、d進行列のヒープ構造を適切に更新します。実行時間をdおよびnで分析します。 私の解決策 配列A [ a1。。aん]あ[a1。。aん]A[a_1 .. a_n] ルートレベル1レベル2レベルk:a1:a2… a2 + d− 1:a2 + d… a2 + d+ d2− 1⋮:a2 + ∑i = 1k − 1d私… a2 + ∑i = 1kd私− 1ルート:a1レベル1:a2…a2+d−1レベル2:a2+d…a2+d+d2−1⋮レベルk:a2+Σ私=1k−1d私…a2+Σ私=1kd私−1\qquad …

1
これはNP完全問題ですか?
次の問題ステートメントを検討してください。 最初の数が与えられると、あなたとあなたの友人は交代でそれから完全な四角形を引きます。ゼロに勝つ最初のものは勝利します。例えば: 初期状態:37 Player1は16を減算します。状態:21 Player2は8を減算します。状態:13 Player1は4を減算します。状態:9 Player2は9を減算します。状態:0 Player2が勝利! 初期状態が与えられ、最適な動き、つまりゲームの勝利につながることが保証されている動きを返すプログラムを記述します。可能な動きがあなたを勝利状態に導くことができないなら、-1を返します。 この問題は、動的プログラミングを使用して疑似多項式時間で解決できます。アイデアは、長さn(nは初期状態)の配列を下から上に最適な移動で埋めるか、または移動が勝てない場合は-1です。これは、O(n * sqrt(n))を必要とします。これは、すべての数値について、それよりも小さい可能性のあるそれぞれの完全な二乗を減算することを考慮する必要があるためです(それらの〜sqrt(n)があります)。ただし、これは疑似多項式のランタイムの複雑さです。これは、ランタイムがバイナリの入力サイズ(数値を表すために使用されるビット数)に関連して実際に指数関数的にスケーリングされるためです。 誰でもこの問題を解決するための多項式アルゴリズムを考えることができますか?そうでない場合、それはNP-Completeでしょうか?どうして?

3
場合、その証明
次のことを証明するために、本当にあなたの助けをお願いします。 場合、次にP = N Pを。NTime(n100)⊆DTime(n1000)NTime(n100)⊆DTime(n1000)\mathrm{NTime}(n^{100}) \subseteq \mathrm{DTime}(n^{1000})P=NPP=NP\mathrm{P}=\mathrm{NP} ここで、はすべての言語のクラスであり、O (n 100)の多項式時間で非決定性チューリングマシンによって決定でき、D T i m e(n 1000) はすべての言語のクラスです。これは、O (n 1000)の多項式時間で決定論的チューリングマシンによって決定できます。NTime(n100)NTime(n100)\mathrm{NTime}(n^{100})O(n100)O(n100)O(n^{100})DTime(n1000)DTime(n1000)\mathrm{DTime}(n^{1000})O(n1000)O(n1000)O(n^{1000}) ヘルプ/提案はありますか?

1
PとP / polyはどうして同じではないのですか?
Pの定義は、多項式時間アルゴリズムによって決定できる言語です。P / polyの定義は、多項式サイズの回路によって決定できる言語を意味すると解釈できます(http://pages.cs.wisc.edu/~jyc/02-810notes/lecture09.pdfを参照)。さて、なぜ多項式サイズの回路を多項式時間でシミュレーションできないのでしょうか?

2
ランクなしのパス圧縮を使用したunion-findの複雑さ
ウィキペディアはパス圧縮なしのランク別組合はの償却時間複雑与え言い、そしてランクとパス圧縮することにより、両方の労働組合は、の償却時間複雑与えることをO (α (N ))(αはの逆であるがアッカーマン関数)。ただし、ユニオンランクなしのパス圧縮の実行時間については触れていません。これは、私が通常自分で実装するものです。O(logn)O(log⁡n)O(\log n)O(α(n))O(α(n))O(\alpha(n))αα\alpha パス圧縮最適化を使用して、ランク最適化による結合を使用しない場合のunion-findの償却時間の複雑さはどのくらいですか?

2
スピアマンの順位相関係数計算の複雑さは何ですか?
スピアマンの順位相関係数を研究してきました 。ρ = ∑私(x私− x¯)(y私− y¯)Σ私(x私− x¯)2Σ私(y私− y¯)2−−−−−−−−−−−−−−−−−−−√ρ=Σ私(バツ私−バツ¯)(y私−y¯)Σ私(バツ私−バツ¯)2Σ私(y私−y¯)2\qquad \displaystyle \rho = \frac{\sum_i(x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\sum_i (x_i-\bar{x})^2 \sum_i(y_i-\bar{y})^2}} 2つのリストおよびy 1、… 、y nの場合。アルゴリズムの複雑さは何ですか?バツ1、… 、xんバツ1、…、バツんx_1, \dots, x_ny1、… 、yんy1、…、yんy_1, \dots, y_n アルゴリズムは減算を計算するだけなので、O (n )になることは可能ですか?んんnO (n )O(ん)O(n)

6
Big-O-Notationの通常のランタイムのバリエーションはありますか?
やなど、複数の表記があります。やなど、実際にそれらのバリエーションがあるのか​​、それとも数学的に正しくないのかと思いました。OOOO (n )O(n)O(n)O (n2)O(n2)O(n^2)O (2 n2)O(2n2)O(2n^2)O (ログん2)O(log⁡n2)O(\log n^2) それとも、をに改善できると言うのは正しいことでしょうか?私はまだランタイムを理解することはできませんし、必要もありませんし、何も改善する必要はありませんが、これが実際の関数の記述方法かどうかを知る必要があります。O (5 n2)O(5n2)O(5n^2)O (3 n2)O(3n2)O(3n^2)

2
「O(1)-complete」問題はありますか?
多くの複雑なクラスには「完全な」問題があります。時間で解決できる問題の複雑さのクラスに完全な問題が存在しますか?O (1 )O(1)O(1) 複雑なのは、このクラスが計算モデルに依存していることです。「合理的」とは通常、チューリングマシンとの多項式時間の等価性を意味するので、問題は、ある合理的な計算モデルでは時間で解決できますが、別のモデルでは解決できません。ただし、特定の合理的なモデルについては引き続き問題が解決する可能性があります。O (1 )O(1)O(1) 一定時間の多元削減を見るのが最も理にかなっていると思います。ただし、それらに関する文献があれば、他の賢明な削減を検討することもできます。 このようなものは存在しますか、それとも計算のモデルに対して研究されましたか?

1
離散対数問題の複雑さを測定する方法は?
暗号スタック交換に関するこの質問への回答は、基本的に、対数問題の複雑さを測定するには、グループのサイズを表す数値の長さを考慮する必要があると述べています。それは恣意的なようですが、なぜグループのサイズを引数として選択しないのでしょうか。選択する引数を知るための基準はありますか?実際、グループのサイズによって複雑さが大きく変わるため、私は重要なことを見落としていたことを知っています。


3
最大要素をピボットとして選択した場合、Quicksortには常に2次ランタイムがありますか?
クイックソートアルゴリズムがあり、常に最小(または最大)の要素をピボットとして選択する場合。すでにソートされたデータセットを提供すると、「すでにソートされた」リストが昇順か降順かに関係なく、常に最悪のパフォーマンスが得られると私は思いますか? 私の考えでは、ピボットの最小要素を常に選択する場合、ピボットに対してソートするように選択されたサブセットは常に同じサイズ?

1
結合は並列化できますか?
述語で2つの関係を結合したいとします。これはNCですか? NCにないことの証明はであることの証明になると私は理解しているので、それが未解決の問題であるという証拠を答えとして受け入れます。P≠ NCP≠NCP\not=NC 一般的なケースだけでなく、特定のケースにも興味があります(たとえば、並列化できる特定のデータ構造がある場合)。 編集:コメントからこの投稿にいくつかの明確化をもたらすために: 等結合検討できます。X = B 。y。シングルプロセッサでは、ハッシュベースのアルゴリズムはO (| A | + | B |)で実行され、これは各セットを読み取る必要があるため、私たちができる最善の方法です。A 。X = B 。yA.x=B.yA.x = B.yO (| A | + | B |)O(|A|+|B|)O(|A|+|B|) 述語が各ペアをチェックする必要がある「ブラックボックス」である場合、ペアであり、それぞれが中にあるかどうかにかかわらず、2 a b可能性があります。各ペアをチェックすると、可能性が半分に分割されます。そのため、私たちにできる最善のことはO (a b )です。| A | ⋅ | B ||A|⋅|B||A|\cdot|B|2a b2ab2^{ab}O (a b )O(ab)O(ab) logknlogk⁡n\log^k n

1
セルオートマトンの次元が複雑性クラスに及ぼす影響
例として3d→2d削減を考えてみましょう:2dセルオートマトンによって3dセルオートマトンをシミュレートするコストはどのくらいですか? より具体的な質問がいくつかあります: どのようなアルゴリズムで時間の複雑さがどの程度変化しますか? エンコーディングの基本的なアイデアは何でしょうか。3Dグリッドを2Dグリッドに効率的に(または効率的に…)マッピングするにはどうすればよいですか?(課題は、もともと3dグリッドに隣接しているが、2dグリッドにはもはや隣接していない2つのセル間の通信を達成するようです)。 特に、私は指数複雑度アルゴリズムの複雑さのドリフトに興味があります(これは、次元が何であっても指数関数のままであると思いますが、そうですか?) 注:選択したI / Oメソッドが複雑度に影響を与える複雑度の低いクラスには興味がありません。(おそらく最良の方法は、I / Oメソッドが無次元であると想定することです。タイムステップの量が変化する間に、特定のセルでローカルに行われます。) いくつかのコンテキスト:並列ローカルグラフの書き換えに興味がありますが、これらのグラフは2dグリッドよりも3d(または多分ωd…)グリッドに近いので、2次元のハードウェア実装に何が期待できるか知りたいのですがシリコンチップ。

1
アルゴリズムの時間/空間の複雑さを最適化するためのアルゴリズムはありますか?
1950年代に、ブール関数の回路を最小化するための多くの方法が発明されました。アルゴリズムの時間または空間の複雑さを最適化するために、これらのメソッドの拡張または同様のものはありますか? たとえば、このようなアルゴリズムの入力としてバブルソートを実装すると、時間の複雑さが近いソートアルゴリズムの実装が生成され。O(nlogn)O(んログ⁡ん)O(n\log n)

2
遺伝的アルゴリズムの時間の複雑さ
遺伝的アルゴリズムの時間の複雑さをどのように決定しますか(一般的に)?可能なら。 私はこれについて多くのことを考えていました。私が持っていたすべての教えは、本質的に確率論的ではない問題の時間の複雑さを決定することに関連しています。

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