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

3
対数空間でパリンドロームを認識する時間はどれくらいですか?
パリンドロームはテープチューリングマシンでは線形時間で認識できますが、シングルテープチューリングマシンでは認識できないことはよく知られています(この場合、必要な時間は2次です)。線形時間アルゴリズムは入力のコピーを使用するため、線形空間も使用します。222 対数空間のみを使用して、マルチテープチューリングマシンの線形時間でパリンドロームを認識できますか?より一般的には、パリンドロームではどのような時空トレードオフが知られていますか?

1
準線形空間で距離を編集する
入力のサイズが線形でない作業スペースを使用して、同じ長さの2つの文字列間の正確な編集距離を計算するための最もよく知られている複雑さは何ですか?入力は何らかの読み取り専用形式で保存されていると思います。これは以前に研究された問題ですか? 質問をもう少し具体的にするために、スペース。nは各入力文字列の長さです。Θ(n−−√)Θ(n)\Theta(\sqrt{n})nnn 編集。David Eppsteinの答えに続いて、編集時間を多項式時間とスペース。下限も興味深いでしょう。Θ(n−−√)Θ(n)\Theta(\sqrt{n})

3
効率的なログスペースアルゴリズム
決定論的対数空間()で決定可能な問題は、せいぜい多項式時間()で実行されることがわかります。多くの既知のログスペースアルゴリズム(たとえば、無向st-connectivity、平面グラフ同型)は、で実行されます。ここで、はめちゃくちゃ大きいです。LLLPPPO (nk)O(nk)O(n^k)kkk 私は決定論的対数空間と時間で同時に解けることが知られている自然問題の例を探しています。ここでです。10に関して特別なことは何もありません。現在知られているログスペースアルゴリズムを見ると、は十分興味深いと思います。O (nk)O(nk)O(n^k)K ≤ 10k≤10k \leq 10K ≤ 10k≤10k \leq 10 アレリウナス等。無向st-connectivityが(ランダム化ログスペース)にあることを示しました。それらのアルゴリズムの実行時間はです。と線形時間(または)線形時間、つまり時間で同時に解決できる自然な問題はありますか?R LRLRLO (n3)O(n3)O(n^3)R LRLRLO (n ログ私n)O(nログ私n)O(n{\log}^i{n}) 編集:物事をより面白くするために、少なくとも -hard である問題を見てみましょう。NC1NC1NC^1

1
簡潔なデータ構造アルゴリズムの概要が必要
(すでにメインサイトで尋ねられましたが、ここでもより良い報道を求めています、申し訳ありません) 私は簡潔なデータ構造について知っていたので、私はその分野での最新の開発の良い概観を切望しています。 私はグーグルで検索して、頭からのリクエストに関するグーグルの検索結果の上部に表示される多くの記事を読みました。私はここで重要な何かを見逃したとまだ疑っています。 私にとって特に興味深いトピックは次のとおりです。 親、左/右の子、サブツリー内の要素数を取得する効率的な操作を使用した、バイナリツリーの簡潔なエンコード。 ここでの主な質問は次のとおりです。私が知っているすべてのアプローチは、このノードの呼吸優先順で列挙されたツリーノードを仮定します私の仕事に適しているようです。深さ優先レイアウトで指定された巨大なバイナリツリーを処理し、深さ優先ノードインデックスは他のノードプロパティのキーであるため、ツリーレイアウトを変更するにはコストを最小限に抑える必要があります。したがって、BFツリーレイアウト以外を考慮した作品への参照を取得することに関心があります。 外部メモリ内の大きな可変長アイテム配列。配列は不変です。アイテムを追加/削除/編集する必要はありません。唯一の要件は、O(1)要素のアクセス時間と可能な限り低いオーバーヘッドであり、単純なオフセットとサイズのアプローチよりも優れています。ここに、タスクの一般的なデータについて収集した統計をいくつか示します。 典型的なアイテムの数-数億、最大数千ミリアード; アイテムの約30%の長さは1 ビット以下です。 40%-60%のアイテムの長さは8ビット未満です。 32〜255ビットの長さを持つアイテムの数パーセントのみ(255ビットが制限です) 平均アイテム長〜4ビット+/- 1ビット。 アイテムの長さのその他の分布は理論的には可能ですが、実際に興味深いケースはすべて上記に近い統計値を持っています。 複雑な記事へのリンク、不明瞭なチュートリアル、文書化されたC / C ++ライブラリなど-似たようなタスクで役立つもの、または経験に基づいた推測でそのように見えるもの-すべてが感謝されます。 更新:質問1に追加するのを忘れました:扱っているバイナリツリーは不変です。それらを変更する必要はありません。ノードから子または親に常に移動するさまざまな方法でそれらを移動するだけで、そのような操作の平均コストはO(1)でした。 また、典型的なツリーには数千ノードのノードがあり、RAMに完全に保存するべきではありません。

1
時空のトレードオフに関する特定の結果の初期の歴史?
汎用時空トレードオフに関する公開された結果の初期の歴史に興味があります。特に、データフローグラフの深さ(幅ではなく)に比例するスペース(およびサイズ入力の)グラフの単純な深さ優先評価を行うことによって。さらに詳細に: データフローグラフをG =(V、E)とします。Vは計算頂点のセット(O(1)サイズのデータ​​値)、Eはエッジのセット(v_p、v_s)です。頂点v_s \ in Vは、直前の頂点v_p \ in Vの値にすぐに依存します。v_fを、計算の最終結果を表す後続のない頂点とします。i \ in Iの場合、その値x(i)が与えられているので、私は標準的な順序の入力頂点のセット(前任者なし)とします。Sの他の頂点vの場合、それらの値はx(v)= F_v(x(P(v)))によって定義されます。ここで、P(v)はvの先行の正規順序リストで、x(P(v))は対応する値のリスト。F_vは頂点の関数であり、その値をその先行の値のリストの関数として決定します。 この設定を考えると、問題のアルゴリズムはかなり明白であり、簡単です。 def eval(v): (v can be any vertex in the graph) let P := P(v), the list of v's predecessors (has O(1) elements by assumption) let val[] := uninitialized array of |P| data values for each predecessor …

2
時空のトレードオフと最適なアルゴリズム
次のような言語考えてみましょう。LLL L∈DTIME(O(f(n)))∩DSPACE(O(g(n)))L∈DTIME(O(f(n)))∩DSPACE(O(g(n)))L \in DTIME(O(f(n))) \cap DSPACE(O(g(n))) そしてそのように L∉DTIME(o(f(n)))∪DSPACE(o(g(n)))L∉DTIME(o(f(n)))∪DSPACE(o(g(n)))L \not\in DTIME(o(f(n))) \cup DSPACE(o(g(n))) 換言すれば、最速の機械計算Lを時間にO (F (N ))であり、最も空間効率の良い機械M '算出Lを空間用いながらO (G (nは))。MMMLLLO(f(n))O(f(n))O(f(n))M′M′M'LLLO(g(n))O(g(n))O(g(n)) Mの空間効率またはM 'の時間効率について何が言えますか?またはより正確に、場合すべてのマシンの設定されていることを計算LでO (F (N ))その後、我々が最もスペース効率のよいマシンについて何を言うことができるM T?明らかなスペースバージョンのM Sについても同様です。MTMT\mathbb{M}_TLLLO(f(n))O(f(n))O(f(n))MTMT\mathbb{M}_TMSMS\mathbb{M}_S あるいは、とg (n )を使用して、いくつかの適切な時空トレードオフを定義できますか?どのような条件がある下でT S ∈ O (F (N )gは(nが))またはより一般的にはいくつかの時間と空間のトレードオフのための時間(T 、S )どのような条件の下で、H (T 、S )∈ H (O (F (n ))f(n)f(n)f(n)g(n)g(n)g(n)TS∈o(f(n)g(n))TS∈o(f(n)g(n))TS \in o(f(n)g(n))h(T,S)h(T,S)h(T,S)。h(T,S)∈h(o(f(n)),o(g(n)))h(T,S)∈h(o(f(n)),o(g(n)))h(T,S) \in h(o(f(n)),o(g(n)))

1
時空のトレードオフの下限
3SAT [ 1 ]の下限に関する議論に続いて、時空のトレードオフとして定式化された主な下限の結果は何だろうと思っています。たとえば、サヴィッチの定理などの結果を除外しています。適切なエントリは、単一の問題とその境界に焦点を合わせます。例は次のとおりです。 「TとSをSATアルゴリズムの実行時間と空間に設定します。その後、T⋅S≥n2cos(π/ 7)−o(1)を無限に頻繁に持つ必要があります。」(ライアン・ウィリアムズによる[ 1 ]で与えられた。) または 「SATは、一般的なランダムアクセス非決定性チューリングマシンのn > 1 + 0(1)時間とε> 0のn1 -ε空間で同時に解くことができません。」(10.1109 / CCC.1997.612300のランスフォートノウ) さらに、自然時空トレードオフ複雑度クラス(回路クラスを除く)の定義を含めています。

2
レーベンシュタイン編集距離の最適な文字列配置を計算するためのスペースの複雑さ
サイズn1n1n_1とつの文字列が与えられた場合n2n2n_2、標準的なレーベンシュタイン編集距離の計算は、時間の複雑さO(n1n2)O(n1n2)O(n_1 n_2)と空間の複雑さ動的アルゴリズムによるものO(n1n2)O(n1n2)O(n_1 n_2)です。(いくつかの改善が編集距離の関数として行うことができるddd、我々はには何の仮定作るんdddO(max(n1,n2))O(max(n1,n2))O(\max(n_1, n_2)) ただし、最適な編集スクリプトの実際の編集を取得する場合、メモリ使用量よりも、実行時間を犠牲にして実行することは可能ですか?O(n1n2)O(n1n2)O(n_1 n_2)

2
推移的完了/パス存在オラクルの計算
いくつかの質問(があった1、2、3、このようなものが可能であるなら、私は考えて作られた、ここで推移完了について): 我々は、入力有向グラフ取得を前提とGGGと型のクエリに応答したいと思います「(U 、V )∈ G+(あなた、v)∈G+(u,v)\in G^+?」、グラフの推移完了に2つの頂点間のエッジが存在する場合、すなわち尋ねるGGG?(等価的に、「からパスがあなたあなたuにvvvでGGG?」)。 与えられたGGG後、時間f(n 、m )f(ん、メートル)f(n,m)前処理を実行でき、時間クエリに応答する必要があると仮定します。g(n 、m )g(ん、メートル)g(n,m) 明らかに、(つまり、前処理が許可されていない)の場合、実行できる最善の方法は、時間内にクエリに応答することです。(から DFSを実行し、パスが存在する場合はtrueを返します)。f= 0f=0f=0g(n )= Ω (n + m )g(ん)=Ω(ん+メートル)g(n)=\Omega(n+m)あなたあなたuvvv 別の些細な結果は、その場合f= Ω (M I N { N ⋅ M 、Nω} )f=Ω(メートル私ん{ん⋅メートル、んω})f=\Omega(min\{n\cdot m,n^\omega\})あなたは推移閉包を計算した後でクエリに答えることができる。O (1 )O(1)O(1) 途中の何かはどうですか?許可されている場合、たとえば前処理時間で、よりも速くクエリに回答できますか?多分それを改善しますか?f= n2f=ん2f=n^2O (m + n )O(メートル+ん)O(m+n)O (n )O(ん)O(n) もう1つのバリエーションは前処理時間があるが、スペースしかない場合、前処理を使用してよりも効率的にクエリに答えることができますか?P O LのY(n 、m )poly(ん、メートル)poly(n,m)o (n2)o(ん2)o(n^2)O (n + …

1
初期化されていないメモリと最小限のスペースにビットベクトルを格納する
初期化されていないメモリを使用して、ビットベクトルを格納するためのよく知られたトリックサイズのビットベクトルに割り当てることができたビットのすべてに設定されている0割り当てることによって(2 N + 1 )⌈ LG N ⌉メモリのビットと初期化のみ⌈ LGをN ⌉それらの。この表現は、一定時間でのビットの設定と設定解除をサポートします。nnn000(2n+1)⌈lgn⌉(2n+1)⌈lg⁡n⌉(2 n + 1)\lceil \lg n \rceil⌈lgn⌉⌈lg⁡n⌉\lceil \lg n \rceil これは、「Alfred Aho、John Hopcroft、およびJeffrey Ullmanの1974年の本、The Computer and of Analysis of Computer Algorithms。。。。Chapter 2、演習2.12」、「Jon Bentleyの1986年の本、Programming Pearls。。。.Column 1、演習8、演習にさかのぼります。第2版​​の9」、および「プレストンブリッグスとリンダトルクゾンの1993年のペーパー、「スパースセットの効率的な表現」」。 Dodisらの「スペースを失うことなく、ベースを変更する」までわずかにスペース要件をもたらしこのアルゴリズムはの事前計算が必要ですが、ビットΘ (LG nは)と定数Θ (lg n )各ビット。⌈(2n+1)lgn⌉+1⌈(2n+1)lg⁡n⌉+1\lceil (2 n + 1) \lg n \rceil + 1Θ(lgn)Θ(lg⁡n)\Theta(\lg n)Θ(lgn)Θ(lg⁡n)\Theta(\lg …

1
力のハミング重み
正の整数を考えるととE、何のハミング重み(バイナリ1の数)を求めるの空間と時間の複雑さについてはほとんど知られていたB Eを?bbbeeebebeb^e 場合ビットが利用可能であり、数は単に標準的な技術によって計算することができ、1秒がカウント。しかし、より少ないメモリを使用できる場合、どのようなテクニックが可能ですか?電子ログbeログ⁡be\log b
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.