[論文レビュー] Optimal Preprocessing for Answering On-Line Product Queries
論文は半群におけるオンライン線形および木積クエリへ答えるための前処理時間/空間の厳密な境界を導出し、問い合わせ時間を高速化(inverse Ackermann 関数/関連関数を用いる)し、CREW/CRCW PRAM 上で最適な並列アルゴリズムを実現する。
We examine the amount of preprocessing needed for answering certain on-line queries as fast as possible. We start with the following basic problem. Suppose we are given a semigroup $(S,\circ )$. Let $s_1 ,\ldots, s_n$ be elements of $S$. We want to answer on-line queries of the form, ``What is the product $s_i \circ s_{i+1} \circ \cdots \circ s_{j-1} \circ s_j$?'' for any given $1\le i\le j\le n$. We show that a preprocessing of $Θ(n λ(k,n))$ time and space is both necessary and sufficient to answer each such query in at most $k$ steps, for any fixed $k$. The function $λ(k,\cdot)$ is the inverse of a certain function at the $\lfloor {k/2} floor$-th level of the primitive recursive hierarchy. In case linear preprocessing is desired, we show that one can answer each such query in $O( α(n))$ steps and that this is best possible. The function $α(n)$ is the inverse Ackermann function. We also consider the following extended problem. Let $T$ be a tree with an element of $S$ associated with each of its vertices. We want to answer on-line queries of the form, ``What is the product of the elements associated with the vertices along the path from $u$ to $v$?'' for any pair of vertices $u$ and $v$ in $T$. We derive results that are similar to the above, for the preprocessing needed for answering such queries. All our sequential preprocessing algorithms can be parallelized efficiently to give optimal parallel algorithms which run in $O(\log n)$ time on a CREW PRAM. These parallel algorithms are optimal in both running time and total number of operations. Our algorithms, especially for the semigroup of the real numbers with the minimum or maximum operations, have various applications in certain graph algorithms, in the utilization of communication networks and in Database retrieval.
研究の動機と目的
- 固定 k に対して Linear Product クエリを少なくとも k ステップで答えるために必要かつ十分な前処理時間と空間を決定する。
- 固定 k に対して 2k ステップで Tree Product クエリを答えるために必要かつ十分な前処理時間と空間を決定する。
- 現実的な計算モデルの下でクエリ時間と前処理の努力の間のトレードオフを特定する。
- 線形前処置により近似的に定数時間に近いクエリを可能にする(inverse Ackermann を介して)ことを示し、それに対応する下界を証明する。
- CREW/CRCW PRAM 上で最適な時間とプロセサ利用を達成する並列アルゴリズムへ結果を拡張する。
提案手法
- 半群上の Linear Product クエリと Tree Product クエリ を定義する。
- k ステップの Linear Product に対して O(n lambda(k,n)) 時間/空間を達成する再帰的・分割統治的前処理スキームを開発する。
- lambda(k,n) を原始再帰階層の階層的関数 A および B の逆関数として導入し、用いる。
- Linear Product クエリの線形時間で、O(alpha(n)) ステップの前処理法を導く。
- 木をセパレータで分割し、多段階で拡張構造を構築することで Tree Product クエリへ適用する。
- k ステップのクエリ回答には Omega(n lambda(k,n)) の前処理が必要であることを下界として示す。
実験結果
リサーチクエスチョン
- RQ1Linear Product クエリを少なくとも k ステップで答えるために必要かつ十分な前処理は何か。
- RQ2Tree Product クエリを少なくとも 2k ステップで答えるために必要かつ十分な前処理は何か。
- RQ3線形時間の前処理とサブ対数時間のクエリを目指す場合、これらの界はどのように比較されるのか。
- RQ4逐次的な前処理スキームを効率的に CREW/CRCW PRAM アルゴリズムへ並列化できるか。
- RQ5実世界の半群(例えばグラフ/ネットワーク問題における min/max)への実用的含意は何か。
主な発見
- 固定 k の場合 Linear Product クエリを少なくとも k ステップで答えるには Theta(n lambda(k,n)) 時間と空間の前処理が必要かつ十分である。
- 線形時間の前処理スキームにより Linear Product クエリを O(alpha(n)) ステップで回答でき、alpha(n) は Ackermann の反演函数である。
- Tree Product クエリの場合、前処理 Theta(n lambda(k,n)) で少なくとも 2k ステップで答えることができ、線形前処理により各クエリが O(alpha(n)) となる。
- 線形前処理は定数因子まで最適であり、O(alpha(n)) のクエリ時間を達成するには Omega(alpha(n)) の下界が適用される。
- 並列アルゴリズムは Linear Product クエリのために CREW PRAM 上で n lambda(k,n)/log n 個のプロセッサを使い O(log n) 時間を達成し、特定のケース(例:max/min)では CRCW PRAM において同様の最適性がある。
- 結果は min/max による実数などの半群にも適用可能で、グラフアルゴリズム、ネットワーク、データベース検索などの実用的応用を持つ。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。