Skip to main content
QUICK REVIEW

[論文レビュー] Space-Efficient DFS and Applications: Simpler, Leaner, Faster

Torben Hagerup|arXiv (Cornell University)|May 30, 2018
Algorithms and Data Compression参考文献 2被引用数 3
ひとこと要約

本稿では、n + ∑_{v∈V≥3} ⌈log₂(dᵥ−1)⌉ + O(log n) ビットの空間で、O(n + m) 時間で実行される、簡素化され、空間効率の良い深さ優先探索(DFS)アルゴリズムを提示する。ここで dᵥ は頂点 v の次数を表す。この手法は、グレイ頂点と非ツリー辺を追跡するための補助データ構造を用いた、新規のスタック圧縮技術を採用しており、最適な空間使用量を達成するとともに、双連結成分、ブリッジ、関節点の効率的な計算を可能にする。

ABSTRACT

The problem of space-efficient depth-first search (DFS) is reconsidered. A particularly simple and fast algorithm is presented that, on a directed or undirected input graph $G=(V,E)$ with $n$ vertices and $m$ edges, carries out a DFS in $O(n+m)$ time with $n+\sum_{v\in V_{\ge 3}}\lceil{\log_2(d_v-1)} ceil +O(\log n)\le n+m+O(\log n)$ bits of working memory, where $d_v$ is the (total) degree of $v$, for each $v\in V$, and $V_{\ge 3}=\{v\in V\mid d_v\ge 3\}$. A slightly more complicated variant of the algorithm works in the same time with at most $n+({4/5})m+O(\log n)$ bits. It is also shown that a DFS can be carried out in a graph with $n$ vertices and $m$ edges in $O(n+m\log^*\! n)$ time with $O(n)$ bits or in $O(n+m)$ time with either $O(n\log\log(4+{m/n}))$ bits or, for arbitrary integer $k\ge 1$, $O(n\log^{(k)}\! n)$ bits. These results among them subsume or improve most earlier results on space-efficient DFS. Some of the new time and space bounds are shown to extend to applications of DFS such as the computation of cut vertices, bridges, biconnected components and 2-edge-connected components in undirected graphs.

研究の動機と目的

  • 有向および無向グラフの両方に対して、より単純で高速かつ空間効率の良い DFS アルゴリズムを設計すること。
  • 線形時間計算量を維持したまま、作業メモリ使用量を O(n log n) ビット未満に削減すること。
  • 空間効率の良い DFS を、双連結成分、ブリッジ、関節点の計算といった応用に拡張すること。
  • 次数依存の空間割り当てとスタック圧縮技術を活用することで、先行研究の空間境界を改善すること。

提案手法

  • アルゴリズムは、頂点の次数に基づいて空間使用量を削減する、主要スタック S′ にのみ重要な頂点を格納する圧縮スタック表現を用いる。
  • 補助スタック Sᵤ は、グレイパスの「ストライプ」を表す頂点を維持し、それらの子が非ツリー辺によってカバーされているかどうかを追跡する。
  • スタックセグメントの即時回復を採用:セグメントが回復されると、R値が伝搬され、関連する頂点が Sᵤ に再挿入されて正しさが保たれる。
  • S′ 上の頂点の位置情報は、静的領域割り当てまたはランク・セレクト構造によって維持され、合計で O(n) 空間、初期化に O(n/log n) 時間を要する。
  • 非ツリー辺の処理は、祖先関係に基づいて Sᵤ からのスタックポップを引き起こし、R および R̄ の状態を更新して部分木のカバー状態を反映する。
  • ハイブリッド手法を採用:必要なスタックエントリのみを格納し、次数に応じたビット数を用いて空間を最小限に抑え、ほぼ最適な境界を達成する。

実験結果

リサーチクエスチョン

  • RQ1頂点の次数に依存する空間使用量で、O(n + m) 時間で実行可能な DFS を実装できるか?
  • RQ2スタック回復を最適化することで、時間効率を損なわずに空間使用量を削減できるか?
  • RQ3空間効率の良い DFS を、双連結成分、ブリッジ、関節点の計算に拡張可能か? その際、同じ時間・空間境界を維持できるか?
  • RQ4特にスパarsなグラフに対して、m に関して非線形空間(sublinear space)で O(n + m) 時間を達成できるか?

主な発見

  • アルゴリズムは、O(n + m) 時間計算量を達成し、空間使用量が n + ∑_{v∈V≥3} ⌈log₂(dᵥ−1)⌉ + O(log n) ビットに抑えられ、従来の O(n log n) の境界よりも著しくタイトである。
  • アルゴリズムの変種では、n + (4/5)m + O(log n) ビットまで空間使用量を抑えることができ、密なグラフにおいても空間効率が向上する。
  • 双連結成分、ブリッジ、関節点の計算が、DFS 自体と同一の時間・空間境界で可能である。
  • m = O(n) の場合、空間境界は O(n) に低下し、密度に依存しない既存の最良境界と一致する。
  • スタック圧縮と即時回復の組み合わせにより、過去の研究を改善し、スタックの完全再構築を避けることで効率が向上する。
  • 時間・空間境界は、2辺連結成分および強連結成分の計算にも拡張可能であり、広範な適用可能性を示している。

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

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

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

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