[论文解读] Optimal Preprocessing for Answering On-Line Product Queries
论文推导出在半群中回答在线线性与树乘积查询的紧密预处理时间/空间界限,实现快速查询时间(使用反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下,确定在最多k步内回答线性乘积查询所需的预处理时间和空间。
- 固定k下,确定在最多2k步内回答树乘积查询所需的预处理时间和空间。
- 在现实计算模型下,识别查询时间与预处理量之间的权衡。
- 证明线性预处理使查询时间接近常数时间(通过反 Ackermann 函数),并给出相应的下界。
- 将结果扩展到在CREW/CRCW PRAM上实现最优时间和处理器使用的并行算法。
提出的方法
- 在半群上定义线性乘积查询和树乘积查询。
- 开发基于递归、分治的预处理方案,在线性乘积的k步内实现O(n lambda(k,n))的时间/空间。
- 引入并使用 lambda(k,n) 作为原始递归层级中层次函数 A 和 B 的反函数。
- 推导出线性时间、O(alpha(n)) 步的线性乘积查询预处理方法。
- 通过以分隔符分割树并在多层构建增强结构,将该方法适用于树乘积查询。
- 证明下界,表明在回答k步查询时,需要Ω(n lambda(k,n))的预处理。
实验结果
研究问题
- RQ1在最多k步内回答线性乘积查询,需要哪些预处理,哪些是充分必要的?
- RQ2在最多2k步内回答树乘积查询,需要哪些预处理,哪些是充分必要的?
- RQ3在追求线性时间预处理和亚对数时间查询时,这些界限如何比较?
- RQ4这些顺序预处理方案能否有效并行化为CREW/CRCW PRAM下的最优算法?
- RQ5对于在图/网络问题中使用最小/最大等半群(如实数)的实际含义是什么?
主要发现
- 在固定k下,回答线性乘积查询在Θ(n lambda(k,n))时间和空间上的预处理是必要且充分的。
- 线性时间预处理方案使线性乘积查询可在O(alpha(n))步内回答,其中 alpha(n) 为反Ackermann函数。
- 对于树乘积查询,预处理Θ(n lambda(k,n))足以在最多2k步内回答,且线性预处理使每次查询为O(alpha(n))。
- 线性预处理在常数因子内是最优的;对于达到线性预处理和O(alpha(n))查询时间,存在Ω(alpha(n))的下界。
- 并行算法在CREW PRAM上使用n lambda(k,n)/log n个处理器实现O(log n)时间用于线性乘积查询,对于某些情况(如最大/最小)在CRCW PRAM上也达到类似的最优性。
- 结果适用于诸如在最小/最大下的实数等半群,在图算法、网络与数据库检索等方面具有实际应用。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。