Skip to main content
QUICK REVIEW

[論文レビュー] Improved Algorithms for Maintaining DFS Tree in Undirected Graphs.

Lijie Chen, Ran Duan|arXiv (Cornell University)|Jul 17, 2016
Algorithms and Data Compression参考文献 16被引用数 6
ひとこと要約

本稿では、動的更新(増分的、耐障害性、完全動的)の下で無向グラフにおける深さ優先探索(DFS)木を維持するための改善されたアルゴリズムを提示する。木分割補題と分数カスケーディングを活用することで、増分的更新では最適な $O(n)$ の最悪ケース更新時間、他の設定では $O(\mathrm{polylog}\ n)$ の更新時間(操作あたり)を達成し、従来の境界を顕著に改善した。

ABSTRACT

Depth first search (DFS) tree is one of the most well-known data structures for designing efficient graph algorithms. Given an undirected graph $G=(V,E)$ with $n$ vertices and $m$ edges, the textbook algorithm takes $O(n+m)$ time to construct a DFS tree. In this paper, we study the problem of maintaining a DFS tree when the graph is undergoing updates. Formally, we show the following results. Incremental DFS tree: Given any arbitrary online sequence of edge or vertex insertions, we can report a DFS tree in $O(n)$ worst case time per operation, and $O\left(\min\{m \log n + n \log^2 n, n^2\} ight)$ preprocessing time. Fault tolerant DFS tree: There exists a data structure of size $O(m \log n)$, such that given any set $\mathcal{F}$ of failed vertices or edges, it can report a DFS tree of the graph $G \setminus \mathcal{F}$ in $O(n|\mathcal{F}|\log^2 n)$ time. Fully dynamic DFS tree: Given any arbitrary online sequence of edge or vertex updates, we can report a DFS tree in $O(\sqrt{nm}\log^{1.5} n)$ worst case time per operation. Our result for incremental DFS tree improves the previous $O(n \log^3 n)$ worst case update time by Baswana et al., and matches the trivial $\Omega(n)$ lower bound when it is required to explicitly output the DFS tree. Our other results also improve the corresponding state-of-the-art results by Baswana et al. as well. Our work builds on the framework of the breakthrough work by Baswana et al., together with a novel use of a tree-partition lemma by Duan and Zhang, and the celebrated fractional cascading technique by Chazelle and Guibas.

研究の動機と目的

  • 頂点および辺の更新の下で、無向グラフにおけるDFS木を効率的に動的維持するためのアルゴリズムの設計。
  • Baswanaらによる $O(n / \log^3 n)$ の境界に起因する、従来の作業における高い更新時間の克服。
  • 明示的にDFS木構造を報告する条件下で、近似的最適または最適な最悪ケース更新時間の達成。
  • 頂点または辺の障害後に効率的にDFS木を回復することで、耐障害性をサポート。

提案手法

  • Baswanaらのフレームワークに基づくが、DuanとZhangによる木分割補題の新しい応用により、DFS木をより小さな管理可能なコンポーネントに分解する。
  • 分数カスケーディングを用いて、動的更新中のバックエッジの探索を高速化し、必要な木の辺を特定・再計算する時間を短縮する。
  • 故障耐性クエリをサポートするため、サイズ $O(m \log n)$ のデータ構造を構築し、$\mathcal{F}$ 個の障害後にも速やかにDFS木を再構築可能にする。
  • 増分的アルゴリズムでは、動的木データ構造を用いて親および祖先関係を効率的に維持することで、各更新ごとに $O(n)$ の最悪ケース時間内に保証する。
  • 完全動的更新の設定では、木分割と分数カスケーディングの組み合わせにより、操作あたり $O(\sqrt{nm} \log^{1.5} n)$ の最悪ケース更新時間の達成。
  • 前処理段階は $O(\min\{m \log n + n \log^2 n, n^2\})$ 時間で実行され、以降の更新の高速初期化を可能にする。

実験結果

リサーチクエスチョン

  • RQ1増分的DFS木維持において、明示的出力のための自明な下界に一致する $O(n)$ の最悪ケース更新時間は達成可能か?
  • RQ2頂点または辺の障害後に、DFS木維持において効率的な耐障害性をどのように実現できるか?
  • RQ3完全動的DFS木維持における最良の可能な最悪ケース更新時間は何か?
  • RQ4増分的更新において、従来の $O(n \log^3 n)$ の更新時間より改善できるか?
  • RQ5頂点および辺の両方の更新を扱える動的DFS構造を設計でき、操作あたり多項式対数時間(polylogarithmic)または近似線形時間で動作するか?

主な発見

  • 増分的DFS木アルゴリズムは、明示的出力のための $\Omega(n)$ の下界に一致する最適な $O(n)$ の最悪ケース更新時間(操作あたり)を達成する。
  • 耐障害性を持つDFS木データ構造は $O(m \log n)$ の空間を用い、$\mathcal{F}$ 個の障害後には $O(n|\mathcal{F}|\log^2 n)$ 時間で有効なDFS木を報告する。
  • 完全動的DFS木アルゴリズムは、頂点および辺の任意のオンライン更新シーケンスをサポートし、操作あたり $O(\sqrt{nm} \log^{1.5} n)$ の最悪ケース更新時間を持つ。
  • 前処理時間は $O(\min\{m \log n + n \log^2 n, n^2\})$ であり、スパarsなグラフおよび密なグラフの両方で効率的である。
  • Baswanaらの最先端の結果に比べ、すべての提案アルゴリズムが、特に最悪ケース更新時間と空間効率性において優れている。
  • 木分割補題と分数カスケーディングの使用により、特に動的設定において、従来のアプローチに比べ顕著な性能向上が達成された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。