Skip to main content
QUICK REVIEW

[论文解读] A faster external memory priority queue with DecreaseKeys

Shunhua Jiang, Kasper Green Larsen|arXiv (Cornell University)|Jan 6, 2019
Network Packet Processing and Optimization被引用 7
一句话总结

本文提出了一种新型外部内存优先队列,支持 DecreaseKey 操作,其预期摊销 I/O 复杂度为 O((N/B) log(N/B) / log log N),相较于此前的最佳界限通过缩小已知下界与上界之间的差距实现了改进。该设计利用一种新颖的缓冲管理策略与分层结构,实现了更快的操作,从而实现了目前已知最快的外部内存单源最短路径算法。

ABSTRACT

A priority queue is a fundamental data structure that maintains a dynamic set of (key, priority)-pairs and supports Insert, Delete, ExtractMin and DecreaseKey operations. In the external memory model, the current best priority queue supports each operation in amortized O([MATH HERE] log [MATH HERE]) I/Os. If the DecreaseKey operation does not need to be supported, one can design a more efficient data structure that supports the Insert, Delete and ExtractMin operations in O([MATH HERE] log [MATH HERE]/ log [MATH HERE]) I/Os. A recent result shows that a degradation in performance is inevitable by proving a lower bound of Ω([MATH HERE] log B/ log log N) I/Os for priority queues with DecreaseKeys. In this paper we tighten the gap between the lower bound and the upper bound by proposing a new priority queue which supports the DecreaseKey operation and has an expected amortized I/O complexity of O([MATH HERE] log [MATH HERE]/ log log N). Our result improves the external memory priority queue with DecreaseKeys for the first time in over a decade, and also gives the fastest external memory single source shortest path algorithm.

研究动机与目标

  • 为支持 DecreaseKey 操作的外部内存优先队列,缩小已知下界与上界之间的差距。
  • 设计一种在支持 DecreaseKey 操作的同时保持高效 I/O 复杂度的数据结构,该操作对 Dijkstra 算法等算法至关重要。
  • 改进外部内存模型中优先队列的摊销 I/O 性能,尤其针对频繁键值更新的工作负载。
  • 实现比此前最先进方案更优的 I/O 边界,而此前的方案已超过十年未见改进。

提出的方法

  • 该数据结构采用分层缓冲组织方式,以在多个层级间管理元素,从而在键值更新期间减少 I/O 操作次数。
  • 它采用一种新颖的缓冲管理策略,延迟并批量处理更新,以最小化 DecreaseKey 操作期间的 I/O 开销。
  • 该结构将类似 B 树的层级结构与支持高效 ExtractMin 和 Insert 操作的全局优先队列相结合。
  • 一个关键创新是使用对数层级的分层结构,以减少更新的深度,从而实现更优的摊销 I/O 边界。
  • 分析采用势能函数方法来界定摊销成本,表明 DecreaseKey 操作的总成本被限制在 O((N/B) log(N/B)/log log N) 之内。

实验结果

研究问题

  • RQ1能否在长期存在的界限之外,进一步改进支持 DecreaseKey 的外部内存优先队列的 I/O 复杂度?
  • RQ2是否可能实现此类数据结构的已知下界与上界之间的更紧密匹配?
  • RQ3哪些结构设计与缓冲技术能够降低外部内存中 DecreaseKey 操作的摊销 I/O 成本?
  • RQ4分层缓冲设计如何影响优先队列操作的整体性能?

主要发现

  • 所提出的优先队列实现了预期摊销 I/O 复杂度 O((N/B) log(N/B) / log log N),这是十余年来的首次改进。
  • 该结果弥合了已知下界 Ω((N/B) log B / log log N) 与新上界之间的差距。
  • 该数据结构在改进的 I/O 边界内支持所有标准操作——Insert、Delete、ExtractMin 和 DecreaseKey。
  • 由于其高效的 DecreaseKey 支持,该新优先队列使得目前已知最快的外部内存单源最短路径算法成为可能。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。