中文

DAG 中的全点对 LCA:突破 $O(n^{2.5})$ 壁垒

数据结构与算法 2020-11-16 v2

摘要

G=(V,E)G=(V,E) 为一个 nn 顶点有向无环图(DAG)。两个顶点 uuvv 的最低公共祖先(LCA)是 uuvv 的一个公共祖先 ww,使得 ww 的任何后代都不具有该性质。在本文中,我们考虑计算 DAG 中所有顶点对的 LCA(若存在)的问题。该问题已知最快的算法利用快速矩阵乘法子程序,运行时间从 O(n2.687)O(n^{2.687}) [Bender et al. SODA'01] 到 O(n2.615)O(n^{2.615}) [Kowaluk and Lingas ICALP'05] 和 O(n2.569)O(n^{2.569}) [Czumaj et al. TCS'07] 不等。有些令人惊讶的是,即使矩阵乘法可以最优求解(即 ω=2\omega=2),所有这些界仍会是 Ω(n2.5)\Omega(n^{2.5})。这似乎是当前所有已知方法的一个固有壁垒,从而自然引出了能否突破该问题 O(n2.5)O(n^{2.5}) 壁垒的疑问。在本文中,我们肯定地回答了该问题:特别地,我们提出了一种 O~(n2.447)\tilde O(n^{2.447})(当 ω=2\omega=2 时为 O~(n7/3)\tilde O(n^{7/3}))的算法,用于寻找 DAG 中所有顶点对的 LCA,这是过去 13 年来该问题运行时间的首次改进。我们方法中的一个关键工具是一种快速算法,对于给定的参数 \ell,将 GG 的传递闭包的顶集划分为 O()O(\ell) 条链和 O(n/)O(n/\ell) 个反链的集合。通常,链是一条路径,而反链是一个独立集。然后,我们分别从链顶点和反链顶点中为所有顶点对寻找一个\emph{候选} LCA。第一组通过归约到最小-最大矩阵乘法获得。第二组的计算可类似于该问题的先前结果归约到布尔矩阵乘法。我们最终以谨慎(非显然)的方式将两种解结合在一起。

关键词

引用

@article{arxiv.2007.08914,
  title  = {All-Pairs LCA in DAGs: Breaking through the $O(n^{2.5})$ barrier},
  author = {Fabrizio Grandoni and Giuseppe F. Italiano and Aleksander Łukasiewicz and Nikos Parotsidis and Przemysław Uznański},
  journal= {arXiv preprint arXiv:2007.08914},
  year   = {2020}
}