すべての線形時間アルゴリズムはストリーミングアルゴリズムですか?


14

時が経つにつれて反転カウントについて、この質問、私は紙見つけ下のすべての(正確な)のためのスペースの複雑さにバインド証明ストリーミングアルゴリズムを。私は、この限界がすべての線形時間アルゴリズムに及ぶと主張しました。一般的に、線形時間アルゴリズムは自由に飛び回ることができるため(ランダムアクセス)、ストリーミングアルゴリズムではできないため、これは少し大胆です。要素を順番に調査する必要があります。複数のパスを実行できますが、常に多くのパスを実行します(線形ランタイムの場合)。

したがって、私の質問:

すべての線形時間アルゴリズムは、常に多くのパスを持つストリーミングアルゴリズムとして表現できますか?

ランダムアクセスは、(単純な)構造が肯定的な答えを提供することを妨げるように見えますが、反例も思いつきません。

マシンモデルによっては、実行時のランダムアクセスも問題にならない場合があります。これらのモデルの答えに興味があります:

  • チューリングマシン、フラット入力
  • RAM、配列として入力
  • RAM、リンクリストとして入力

答えからわかるように、「ストリーミングアルゴリズム」はしばしば小さな(ポリログスペース)を意味します。しかし、あなたの動機を考えれば、ワークスペースワードを使用するすべての線形時間アルゴリズムをワードスペースを使用するストリーミングアルゴリズムに変換できますか。反例は、一定のパスストリーミングアルゴリズムがスペースを必要とするのに対し、ランダムアクセスでスペースで解決できる問題です。答えはまだそのような例を与えていませんO s o n Ω n sO(s)o(n)Ω(n)
サショニコロフ

@SashoNikolov:実際には、スペース全体の問題は接線方向です。私の質問は主にランタイムに関するものです。答えが「はい」の場合、論文で証明された下限(空間の複雑さに関する)は、すべての線形時間アルゴリズムに適用されます。下限が空間上にあることは偶発的ですが、質問自体の焦点では​​ありません。
ラファエル

わかりません。線形時間アルゴリズムを無制限のスペースで「ワンパスストリーミング」にするのは簡単です。あなたの質問は、「複雑さの尺度をほぼ維持しながら、線形時間ランダムアクセスアルゴリズムを一定のパスストリーミングにすることができる」という形式の場合にのみ意味があります。したがって、複雑さの尺度を選択する必要があります。これは意味がありません。μ
サショニコロフ

@SashoNikolov:「ストリーミングアルゴリズム」にそのような定義上の問題があることを知りませんでした。ストリーミングアルゴリズムの下限が線形空間であることを考えると、定義の中心は空間ではないと想定しました。しかし、それを「ストリーミングアルゴリズムはありません...」に変換できると思います。ただし、この定義についてはどうでしょうか:「ストリーミングアルゴリズムは、入力(リスト)を一度に1つの要素に与えるアルゴリズムです。新しい要素ごとに、計算を実行できます。 、追加の時間後に回答を出力する必要があります。」o n o(n)o(n)
ラファエル

@SashoNikolov:それは概念から「入力をコピーして何でもする」アルゴリズムを除外しますが、時間に制限します。それは通常示されているクラスに適合していますか?そうでない場合、「ストリーミング」は時間や空間の複雑さを超えて有用に定義できるとは思わない それはむしろ貪欲や分割統治によく似た戦略です。o(n2)
ラファエル

回答:


15

ストリーミングアルゴリズムを意味のあるものにするには、入力自体よりも大幅に少ない作業スペースで作業する必要があります。たとえば、入力と同じ量のワークスペースを許可する場合、最初にシングルパスでワークスペースに入力をコピーし、次にワークのみを使用する「シングルパスストリーミングアルゴリズム」として、アルゴリズムを自明に述べることができますスペース。

ストリーミングアルゴリズムについて話すときは、入力サイズがせいぜい多対数に作業スペースを制限するのが一般的だと思います。この仮定では、Munro and Paterson [MP80]の結果による中央値選択にはO(1)-passストリーミングアルゴリズムはありません。N要素の中央値選択用のP -passストリーミングアルゴリズムはΩ(N 1 / P)要素。一方、中央値選択には、よく知られた決定論的線形時間アルゴリズム[BFPRT73]があります。

[BFPRT73]マヌエル・ブルム、ロバート・W・フロイド、ヴォーン・プラット、ロナルド・L・リベスト、ロバート・E・タージャン。選択の時間制限。 Journal of Computer and System Sciences、7(4):448–461、1973年8月。DOI:10.1016 / S0022-0000(73)80033-9

[MP80] J.イアンマンローとマイクS.パターソン。限られたストレージでの選択とソート。 理論計算機科学、12(3):315–323、1980年11月。DOI:10.1016 / 0304-3975(80)90061-4


6

ストリーミングモデルでは、入力のスキャン中に定数または多対数の追加データのみを保存できます。分割統治パラダイムに
従う線形時間アルゴリズムを検討する場合は、より多くの情報を保存する必要があります。また、再帰の深さだけデータをスキャンする必要があります。

1つの例は、テキストTのサフィックス配列(RAMモデルで配列として与えられる)を構築するためのDC3アルゴリズムです。接尾辞配列を作成するには、文字をトリプレットにグループ化し、新しいスーパー文字を含むテキストを取得します。あなたはオフセットのでこれを行うことができます0 1 2、その3つの新しいテキストで結果T 1T 2T 3。あなたがの接尾辞配列があれば面白いことに、あなたは接尾辞配列を計算することができますT 1T 2線形時間では。したがって、アルゴリズムにはT0,1,2T1,T2,T3T1T2

t(n)=t(2/3n)+O(n)

時間。この再帰は、明らかに解決されます。これをストリーミングアルゴリズムに変換する方法はわかりません。t(n)=O(n)

別のよく知られた例は、古典的な線形時間選択アルゴリズムです。


別の可能な例を次に示します。ヒープの構築にはO(n)が必要で、内部で分割統治ベースのheapify()サブルーチンを使用します。
マッシモカファロ

しかし、これは証拠ではありませんか?単純なシミュレーションは機能しないと言っているだけです。しかし、時には驚くべきアルゴリズムがあります
サショニコロフ

@SashoNikolov:私が言っているのは、DC3アルゴリズムをストリーミングアルゴリズムとは見なさないということです。なぜなら、それは多くの作業メモリを必要とするからです。アルゴリズムをストリーミングアルゴリズムに変更できるかもしれませんが、結果はDC3ではありません。サフィックス配列構築のためのストリーミングアルゴリズムが存在するかどうかについては説明していません。これはまったく別の質問になります。O(n)
A.シュルツ

「このアルゴリズムは修正なしでストリーミングされていない」以外にも、私はあなたが何かを言っていると信じて作られた「私は、これは、ストリーミングアルゴリズムに変換することができますどのように表示されていない」
Sashoニコロフ

4

P

  • R(P)P
  • S(P)P

R(P)S(P)

n[1,n1]O(logn)O(1)ω(logn)

O(1/log2n)ps=Ω(n)psO(log2n)


1

「ストリーミングアルゴリズム」(ソースでインクリメンタルな反復が行われるたびに、結果の次のインクリメンタルピースが即座にわかるアルゴリズム)の最も単純な定義でさえ、そうではないいくつかの線形アルゴリズムを考えることができます。そのように振る舞います。ハッシュアルゴリズムは大きなものです。FNV-1aはソースのバイト数に対して線形ですが、ソース全体が処理されるまで最終ハッシュの一部はわかりません。

RadixSort別名BucketSortはO(N)(技術的にはO(NlogM)です。MはN個のアイテムの最大値で、小さいと見なされます)。すべてのアイテムを実行して、個々のアイテムが最終的な場所にあることを保証する必要があります。

「ストリーミング」アルゴリズムであるためには、最も単純なアルゴリズムには、次の2つのプロパティが必要です。どちらも明示的に時間制限されていません。

  • O(N)空間の複雑さよりも優れています(同様に、ソース全体を知る必要はなく、結果全体を保存する必要はありません)
  • O(N)I / O関係(アルゴリズムは、その入力に線形比例する多くの出力を生成します)

したがって、ストリーミングするアルゴリズムの主なクラスは、「投影」(1つの入力のX> 0出力への増分変換)を実行するアルゴリズムのクラスです。


O(logn)ω(1)

logNも問題ありません。ポイントは、アルゴリズムが一度に入力または出力全体の知識を必要としないことでした。
キース

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