グラフ分解を用いて,動的DFS問題に対する効率的なアルゴリズムを開発した.動的DFS問題とは,初めに無向グラフ G とその全域木 T が与えられ,その後に枝の挿入削除・点の挿入削除が行われたときに深さ優先探索 (DFS) 木を更新するという問題である.この問題に対し,O(sqrt{nm} polylog(n)) 時間の更新アルゴリズムを与えた (n は点数,m は枝数).アルゴリズムの作業領域は (3m+o(m)) log n + O(m) ビットである.既存手法では O(m log^2 n) ビットを用いていたため,作業領域を大幅に削減できた. このアルゴリズムでは,DFS木をパスと部分木に分解する手法を用いている.DFS木の枝が削除された場合に,代わりにどの枝をDFS木に採用するかを決める必要があるが,その問題は2次元の領域探索問題で表現できる.領域探索問題はウェーブレット木と呼ばれるデータ構造を用いることで省空間で効率的に解くことができる. 処理時間については,枝の挿入のみが起きる場合については既存手法の方が優れているが,それ以外の場合については提案手法の方が高速である.なお,既存手法にはアルゴリズムに一部間違いがあることを発見し,その修正もしている.作業領域については,更新時間が均し時間の場合は (2m+o(m) log n + O(m) ビットに削減できる.更新時間の最悪ケースを抑えるためには (3m+o(m)) log n + O(m) ビットの領域が必要となる.
|