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

アルゴリズムの実行に必要なスペースの漸近分析。

2
欠落要素の問題に対する時間と空間のトレードオフ
これはよく知られた問題です。 正の整数の配列が与えられた場合、配列にない最小の正の整数を出力します。A[1…n]A[1…n]A[1\dots n] この問題は、空間と時間で解決できます。配列を読み取り、発生したかどうかを空間で追跡し、最小要素をスキャンします。O(n)O(n)O(n)O(n)O(n)O(n)1,2,…,n+11,2,…,n+11,2,\dots,n+1 スペースを時間と交換できることに気付きました。あなたが持っている場合はのみメモリを、あなたはそれを行うことができますラウンドと時間を得る。特別な場合には、明らかに一定空間の二次時間アルゴリズムがあります。O(nk)O(nk)O(\frac{n}{k})kkkO(kn)O(kn)O(k n) 私の質問は: これは最適なトレードオフですか、つまりですか?一般に、そのようなタイプの境界をどのように証明しますか?time⋅space=Ω(n2)time⋅space=Ω(n2)\operatorname{time} \cdot \operatorname{space} = \Omega(n^2) O(1)の配列への境界演算とランダムアクセスを備えたRAMモデルを想定します。 この問題のインスピレーション:ワンテープモデルのパリンドロームの時間と空間のトレードオフ(たとえば、こちらを参照)。

1
からへの直接削減
私たちは、知っているであるでImmerman-Szelepcsényi定理定理とするのであるしたがって、は還元可能な多対数のログスペースです。しかし、チューリングマシンの構成グラフを通過しない直接/組み合わせの削減はありますか?N Lst-non-connectivityst-non-connectivityst\text{-}non\text{-}connectivityNLNL\mathsf{NL}N L - h a r d s t - n o n - c o n n e c t i v i t y s t - c o n n e c t i v i t y N Ls t - c o n n …


7
O(1)追加スペースを使用して、2つの文字列が互いの順列であるかどうかを確認する方法は?
2つの文字列が与えられた場合、O(1)スペースを使用して、それらが互いの順列であるかどうかをどのように確認できますか 文字列を変更することは一切許可されていません。 注:文字列の長さとアルファベットのサイズの両方に関連するO(1)スペース。

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
選択アルゴリズムのスペースに制限はありますか?
整数の配列で番目に大きい要素を見つけるためのよく知られた最悪の場合の選択アルゴリズムがあります。それは中央値中央値アプローチを使用して十分なピボットを見つけ、入力配列を所定の位置に分割し、再帰的に番目に大きい要素の検索を続けます。O(n)O(n)O(n) kkkkkk 入力配列に触れることが許可されなかった場合、時間で番目に大きい要素を見つけるためにどのくらい余分なスペースが必要になりますか?余分なスペースで番目に大きい要素を見つけても、実行時の維持できますか?たとえば、最大または最小の要素を見つけるには、時間とスペースが必要です。 kkkO(n)O(n)O(n)kkkO(1)O(1)O(1)O(n)O(n)O(n)O(n)O(n)O(n)O(1)O(1)O(1) 直感的に、空間よりも優れているとは思えませんが、その証拠はありますか?O(n)O(n)O(n) 誰かが参照を指すか、番目の要素が時間でスペースを見つける必要がある理由を議論することができますか?⌊n/2⌋⌊n/2⌋\lfloor n/2 \rfloorO(n)O(n)O(n)O(n)O(n)O(n)

1
セットのパーティションを表すコンパクトな方法は何ですか?
セットパーティションを表すための効率的なデータ構造が存在します。これらのデータ構造は、UnionやFindなどの操作には時間的に複雑ですが、スペース効率は特に高くありません。 セットのパーティションを表すスペース効率の良い方法は何ですか? 以下は、考えられる開始点の1つです。 N個の要素 を持つセットのパーティション数は、N番目のベル数であるB Nであることを知っています。したがって、N個の要素を持つセットのパーティションを表すための最適な空間の複雑さは、 log 2(B N)ビットです。そのような表現を見つけるために、(N要素のセットのパーティションのセット)と(1からB Nまでの整数のセット)の間の1対1のマッピングを探すことができます。NNNBNBNB_NNNNNNNログ2(BN)log2⁡(BN)\log_2(B_N)NNN111BNBNB_N 計算するのに効率的なそのようなマッピングはありますか?「効率的」とは、このコンパクトな表現を、またはlog 2(B N)の時間多項式で、操作が簡単な表現(リストのリストなど)との間で変換したいということです。NNNログ2(BN)log2⁡(BN)\log_2(B_N)

1
チューリングマシンにとってサブリニア空間は何を意味しますか?
入力が回文かどうかを決定する問題は、チューリングマシンでスペースを必要とすることが証明されてい。ただし、入力を格納する場合でもスペース が必要になるため、すべてのチューリングマシンにスペース必要になるわけではありませんか?Ω(logn)Ω(log⁡n)\Omega(\log n)nnnΩ(n)Ω(n)\Omega(n) もちろん、ここでは矛盾はありません。少なくとも線形空間を使用する関数は、少なくとも対数空間も使用するためです。しかし、書くと、チューリングマシンが線形スペースよりも少ないスペースを使用することが可能であることが示唆されます。結局のところ、それがまったく同じである場合、なぜ人々はすべての時間を費やして証明するのでしょうか。些細なバインドのように見えるものは何ですか?では、チューリングマシンが線形スペースよりも少ないスペースを使用することはどういう意味ですか?Ω(logn)Ω(log⁡n)\Omega(\log n)Ω(logn)Ω(log⁡n)\Omega(\log n)Ω(n)Ω(n)\Omega(n)

3
ワトソン・クリックの回文を認識するスペースの複雑さ
次のアルゴリズムの問​​題があります。 Watson-Crickの回文であるDNA文字列を認識する複雑な空間チューリングを決定します。 Watson-Crickパリンドロームは、元のストリングが逆補数のストリングです。補体は、 DNAに触発、文字ごとに定義される:AはTの補数であり、Cは、ACGT WC-ドロームためG. Aの単純な例の補数です。 これを解決するには2つの方法があります。 1つはスペースを必要とします。O(n)O(n)\mathcal{O}(n) 機械が完了したら、入力を読み取ります。入力テープは、逆の順序でワークテープにコピーする必要があります。 次に、マシンは入力とワークテープを左から読み取り、各エントリを比較して、ワークテープのセルが入力のセルの補数であることを確認します。これにはスペースが必要です。O(n)O(n)\mathcal{O}(n) もう1つにはスペースが必要です。O(logn)O(log⁡n)\mathcal{O}(\log n) 入力の読み取り中。入力テープのエントリ数をカウントします。 入力テープが読み終わったら 文字の補数を作業テープにコピーします 文字Lを作業テープの最後にコピーします (ループポイント)カウンター= 0の場合、ワークテープをクリアして「yes」と書き込み、停止します 入力テープがLを読み取る場合 カウンターで示された回数だけ入力ヘッドを左に移動します(2番目のカウンターが必要)。 入力テープがRを読み取る場合 カウンターで示された回数だけ入力ヘッドを右に移動します(2番目のカウンターが必要)。 ワークテープの値を保持するセルが入力テープの現在のセルと一致する場合 カウンターを2減分する RまたはLがそれぞれワークテープにあるかどうかに応じて、1つを左または右に移動します。 LまたはRの補数を現在のLまたはRの代わりにワークテープにコピーする ループを続ける 値が一致しない場合は、ワークテープをクリアして「いいえ」と書き込み、停止します 2logn+22log⁡n+22\log n+2 私の問題 最初のものは線形時間と空間の両方を必要とします。2番目にはが必要ですn22n22\frac{n^2}{2}lognlog⁡n\log n 私が混乱している理由 2番目の方法は時間の点で優れているので、2番目の方法が最良の選択肢であると思う傾向がありますが、その答えは私が幸運になってアルゴリズムを考え出すことによってのみ得られます。スペースに複雑さを与えたいのであれば、正しいアルゴリズムを思いつくのに運は必要ないようです。何か不足していますか?スペースの複雑さを解決するための問題の解決策を考え出す必要さえありますか?

4
NSPACE(O(n))の言語で、DSPACE(O(n))にはない可能性が高い
実際、状況依存言語のセット(受け入れ言語)は(通常の言語)ほど広く議論されていないことがわかりましたまたは(コンテキストフリー言語)。また、未解決の問題は、「類似の」問題ほど有名ではありません: " "。= N S P A C E (O (n ))= L B A R E G C F L D S P A C E (O (n ))= ?N S P A C E (O (n ))P = ?N PC S LCSL\mathbf{CSL}= N S P A C E …

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)

2
少ないメモリフットプリントでセット実装を探す
セットデータタイプの実装を探しています。つまり、 サイズuのユニバースU = \ {0、1、2、3、\ dots、u – 1 \}からの動的サブセットSSS(サイズnnn)を維持します。U={0,1,2,3,…,u–1}U={0,1,2,3,…,u–1}U = \{0, 1, 2, 3, \dots , u – 1\}uuu 操作insert(x)(要素xをSに追加SSS)およびfind(x)(要素xがSのメンバーかどうかをチェックSSS) 他の操作は気にしません。オリエンテーションについては、私が使用しているアプリケーションでu≈1010u≈1010u \approx 10^{10}ます。 時間O(1)O(1)O(1)で両方の操作を提供する実装を知っているので、主にデータ構造のサイズを心配します。何十億ものエントリを期待していますが、できるだけスワッピングを避けたいです。 必要に応じて、ランタイムを犠牲にしてもかまいません。O(\ log n)の償却実行時間O(logn)O(log⁡n)O(\log n)は、私が認めることができるものです。予想されるランタイムまたは\ omega(\ log n)のランタイムω(logn)ω(log⁡n)\omega(\log n)は許可されません。 私の考えの1つは、SSSを範囲の和集合として表すことができれば[xmin, xmax]、パフォーマンスがいくらか低下する代わりに、ストレージサイズを節約できるということです。また、など、他のいくつかのデータパターンも可能[0, 2, 4, 6]です。 そのようなことを行うことができるデータ構造を私に教えてもらえますか?


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

2
サビッチの定理で、なぜ空間構成性がしばしば必要なのですか?
サビッチの有名な定理が述べられているとき、S(n)S(n)S(n)が空間構築可能であるという要件がよく見られます(興味深いことに、Wikipediaでは省略されています)。私の簡単な質問は、次のとおりです。なぜこれが必要なのですか。がにあるという要件を理解しています。これは証明から明らかです。しかし、これまでにが空間構築可能であることを明示的に使用している証拠はありません。S(n)S(n)S(n)Ω(logn)Ω(log⁡n)\Omega(\log n)S(n)S(n)S(n) 私の説明:プロシージャREACH(またはPATHまたはそれを呼び出すもの)を呼び出すには、最後のパラメーターを「スペルアウト」する必要があり、1回の呼び出しでS(n)のスペース境界を残さないようにする必要があります。 、それを書き留めるために以上のスペースを必要としてはなりません。S(n)S(n)S(n)

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