中文

增量 DFS 算法:理论与实验研究

数据结构与算法 2017-05-09 v1

摘要

深度优先搜索(DFS)树是解决图问题的基本数据结构。具有 nn 个顶点和 mm 条边的图 GG 的 DFS 树可以在 O(m+n)O(m+n) 时间内构建。迄今为止,仅为维护增量 DFS 设计了少数几种算法。对于无向图,两种算法即 ADFS1 和 ADFS2 [ICALP14] 分别达到总计 O(n3/2m)O(n^{3/2}\sqrt{m})O(n2)O(n^2) 的时间。对于有向无环图(DAGs),唯一非平凡的算法即 FDFS [IPL97] 需要总计 O(mn)O(mn) 时间。在本文中,我们对现有增量 DFS 算法在随机图和真实图中进行了广泛的实验与理论评估,并得出如下结果。1- 对于均匀随机序列的 (n2)n \choose 2 条边的插入,ADFS1、ADFS2 和 FDFS 表现同样良好,实验发现耗时 Θ(n2)\Theta(n^2)。这相当令人惊讶,因为 ADFS1 和 FDFS 的最坏情况界分别比 Θ(n2)\Theta(n^2) 高出 m/n\sqrt{m/n}m/nm/n 的因子。我们通过这些算法的概率分析补充了该结果,证明了更新时间的 O~(n2)\tilde{O}(n^2) 界。在此,我们推导了关于随机图中 DFS 树结构的结果,其本身具有独立意义。2- 这些见解促使我们设计了一种极其简单的适用于无向图和 directed graphs(有向图)的增量 DFS 算法。该算法在理论上匹配并在实验中优于稠密随机图中的最先进水平。它也可用作随机图中增量 DFS 和强连通性的单遍半流式算法。3- 即使在真实图中,ADFS1 和 FDFS 的表现也远优于其理论界。在此我们再次提出两种用于有向和 undirected real graphs(无向真实图)增量 DFS 的简单算法。事实上,我们的有向图算法几乎总是与 FDFS 的性能相匹配。

关键词

引用

@article{arxiv.1705.02613,
  title  = {Incremental DFS algorithms: a theoretical and experimental study},
  author = {Surender Baswana and Ayush Goel and Shahbaz Khan},
  journal= {arXiv preprint arXiv:1705.02613},
  year   = {2017}
}

备注

31 pages, 14 figures