I/O高效的平面范围天际线和属性优先级队列
I/O-Efficient Planar Range Skyline and Attrition Priority Queues
摘要:
在平面范围天际线报告问题中,我们将n个2D点的集合P存储在一个结构中,使得给定查询矩形Q = [a_1,a_2] x [b_1,b_2],skyline)的数据。如果Q的边接地,则查询是3边的,从而产生两个变体:顶开(b_2 = \infty)和左开(a_1 = - \infty)查询。我们所有的结果都在外部存储器中,在O(n/B)空间预算下,对于静态和动态设置:* 对于静态P,我们给出了在O中回答top-open查询的结构(log_B n + k/B),O(loglog_B U + k/B),当宇宙为R^2,一个U × U网格,一个秩空间网格[O(n)]^2时,I/O为O(1 + k/B),(其中k是报告点的数量)。查询复杂度在所有情况下都是最优的。* 我们证明了左开的情况更难,使得任何线性大小的结构必须为查询招致Ω((n/B)^e + k/B)I/O。我们证明了这种情况与一般的4边查询一样困难,为此我们给出了一个静态结构,其最优查询成本为O((n/B)^e + k/B)。* 我们给出了一个动态结构,支持在O(log_2B^e(n/B)+ k/B^1-e)的I/O的顶开查询,和O(log_2B^e(n/B))的I/O的更新,任何e满足0 \le e \le 1。这导致了4边查询的动态结构,其最优查询成本为O((n/B)^e + k/B),摊销更新成本为O(log(n/B))。作为一个独立的利益的贡献,我们提出了一个I/O有效的版本的基本结构优先级队列与磨损(PQA)。我们的PQA支持FindMin、DeleteMin和InsertAndAttrite,每个操作的最坏情况I/O为O(1),分摊I/O为O(1/B)。我们还添加了新的CatenateAndAttrite操作,该操作在O(1)最坏情况和O(1/B)摊销I/O中连接两个PQA。该操作是对Sundar经典PQA的非平凡扩展,即使在内部内存中。
英文摘要:
In the planar range skyline reporting problem, we store a set P of n 2D points in a structure such that, given a query rectangle Q = [a_1, a_2] x [b_1, b_2], the maxima (a.k.a. skyline) of P \cap Q can be reported efficiently. The query is 3-sided if an edge of Q is grounded, giving rise to two variants: top-open (b_2 = \infty) and left-open (a_1 = -\infty) queries. All our results are in external memory under the O(n/B) space budget, for both the static and dynamic settings: * For static P, we give structures that answer top-open queries in O(log_B n + k/B), O(loglog_B U + k/B), and O(1 + k/B) I/Os when the universe is R^2, a U x U grid, and a rank space grid [O(n)]^2, respectively (where k is the number of reported points). The query complexity is optimal in all cases. * We show that the left-open case is harder, such that any linear-size structure must incur Ω((n/B)^e + k/B) I/Os for a query. We show that this case is as difficult as the general 4-sided queries, for which we give a static structure with the optimal query cost O((n/B)^e + k/B). * We give a dynamic structure that supports top-open queries in O(log_2B^e (n/B) + k/B^1-e) I/Os, and updates in O(log_2B^e (n/B)) I/Os, for any e satisfying 0 \le e \le 1. This leads to a dynamic structure for 4-sided queries with optimal query cost O((n/B)^e + k/B), and amortized update cost O(log (n/B)). As a contribution of independent interest, we propose an I/O-efficient version of the fundamental structure priority queue with attrition (PQA). Our PQA supports FindMin, DeleteMin, and InsertAndAttrite all in O(1) worst case I/Os, and O(1/B) amortized I/Os per operation. We also add the new CatenateAndAttrite operation that catenates two PQAs in O(1) worst case and O(1/B) amortized I/Os. This operation is a non-trivial extension to the classic PQA of Sundar, even in internal memory.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。