Skip to main content
QUICK REVIEW

[論文レビュー] Finding All Bounded-Length Simple Cycles in a Directed Graph

Anshul Gupta, Toyotaro Suzumura|arXiv (Cornell University)|May 21, 2021
Algorithms and Data Compression参考文献 11被引用数 12
ひとこと要約

本稿では、ほぼ均一な次数 $d$ を持つグラフにおいて、$O((c+n)(k-1)d^k)$ の時間計算量を達成するために、次数による頂点順序付けとサイクルの刈り込みを施した深さ優先探索を活用した、有向グラフ内に長さ $k$ 以下のすべての単純サイクルを求める新しい決定的アルゴリズムを提示する。この手法は実用的に非常に効率的であり、web-BerkStan や soc-pokec といった実世界のグラフにおいて数十億個のサイクルを処理することができ、大規模なアプリケーションにおける効果的な並列化を可能にしている。

ABSTRACT

A new efficient algorithm is presented for finding all simple cycles that satisfy a length constraint in a directed graph. When the number of vertices is non-trivial, most cycle-finding problems are of practical interest for sparse graphs only. We show that for a class of sparse graphs in which the vertex degrees are almost uniform, our algorithm can find all cycles of length less than or equal to $k$ in $O((c+n)(k-1)d^k)$ steps, where $n$ is the number of vertices, $c$ is the total number of cycles discovered, $d$ is the average degree of the graph's vertices, and $k > 1$. While our analysis for the running time addresses only a class of sparse graphs, we provide empirical and experimental evidence of the efficiency of the algorithm for general sparse graphs. This algorithm is a significant improvement over the only other deterministic algorithm for this problem known to us; it also lends itself to massive parallelism. Experimental results of a serial implementation on some large real-world graphs are presented.

研究の動機と目的

  • 社会的ネットワーク、金融、通信グラフ解析において一般的に求められる、大規模なスパarsely な有向グラフ内に長さ ≤k のすべての単純サイクルを効率的に発見する実用的ニーズに対処すること。
  • 既存手法を上回る、決定的でスケーラブルかつ効率的なアルゴリズムを設計すること。
  • 均一な次数仮定の下での理論的時間計算量の境界を提示し、多様な実世界のグラフ上で性能を実験的に検証すること。
  • 頂点の再順序付けと大規模並列処理のサポートを通じて、大規模グラフにおける実用的導入を可能にすること。

提案手法

  • ジョンソンのアルゴリズムにインspiredされた修正された深さ優先探索(DFS)戦略を用い、重複したサイクル探索を回避するための頂点のブロッキングとアンブロッキングを実装する。
  • パスの探索数を減らし、刈り込みの効率を高めるために、全次数の増加順に頂点を再番号化する。
  • 各頂点 $s$ に対して、頂点集合 $\{s, s+1, \dots, n\}$ に誘導される部分グラフ内でサイクル探索を実行し、最小の頂点によってのみサイクルが発見されることを保証する。
  • 探索は長さが $k$ 以下のパスに制限され、パスが開始頂点 $s$ に戻るが、他の頂点を再訪問しない場合にのみサイクルが収集される。
  • 再帰的バックトラッキングのための Blists(バックトラッキングのトレース)を維持することで、失敗したパスの再処理を回避し、正しさと効率性を確保する。
  • 独立したサイクル探索が各開始頂点ごとに可能であるため、並列化が容易であり、大規模グラフにおける大規模並列実行を可能にしている。

実験結果

リサーチクエスチョン

  • RQ1大規模なスパarsely な有向グラフ内に、長さ ≤k のすべての単純サイクルを効率的に列挙できる決定的アルゴリズムは存在するか?(サイクル数が指数的になる可能性がある。)
  • RQ2次数による頂点順序付けが、実際のサイクル列挙アルゴリズムの性能に与える影響は何か?
  • RQ3ほぼ均一な頂点次数の仮定の下で、提案されたアルゴリズムの理論的時間計算量は何か?
  • RQ4非均一な次数分布を示す実世界のグラフ(数十億の辺を含む)に対し、このアルゴリズムはどの程度スケーラブルか?
  • RQ5非常に大規模なグラフを、シリアス実行の限界を超えて処理できるように、このアルゴリズムは効果的に並列化可能か?

主な発見

  • 単一のCPUを用いて、soc-pokec グラフ内に長さ ≤6 の最大 6.11×10¹¹ 個のサイクルを検出することができ、15分未満で処理を完了した。
  • wiki-topcats グラフにおいて $k=5$ の場合、頂点を次数でソートすることで実行時間が100倍以上短縮された。これは頂点順序付けの重要性を強く示している。
  • 実験的比 $T / ((c+n)(k-1)\min(e,d^k))$ は $k$ や $c$ が増加するにつれて減少し、実際の性能が理論的境界を上回っていることを示している。
  • SNAPリポジトリの全テストグラフにおいて、アルゴリズムの実行時間は $c$ と $k$ に対して非線形的に増加しており、非均一な次数分布に対しても頑健であることが示された。
  • web-BerkStan グラフ($k=6$)では10日以上かかっても処理が中断され、これはシリアス実行における $k$ とグラフサイズの実用的上限を示している。
  • アルゴリズムの設計は自然に大規模並列処理をサポートしており、将来の分散実装においてさらに大規模なグラフへのスケーラビリティを実現できる。

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

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

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

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