挿入/削除の存在下でDAGの接続情報を効率的に維持するためのアルゴリズムは存在しますか?


17

有向非巡回グラフ与えられた場合、次の操作を効率的にサポートできますか?G(V,E)

  • にパスが存在するかどうかを判断: Gノードから Aノードへ bはisConnected(G,a,b)Gab
  • :追加からエッジまでのBのグラフで Glink(G,a,b)abG
  • :からエッジを削除する B Gunlink(G,a,b)abG
  • :Gに頂点を追加しますadd(G,a)
  • :Gから頂点を削除しますremove(G,a)

いくつかのメモ:

  • を許可しない場合、互いに素な型のデータ構造を使用して接続情報を維持するのは簡単だと思われます。unlink
  • 明らかに、グラフの素朴なポインタベースの表現を使用して、深さまたは幅優先の検索を使用して、を実装できます。しかし、これは非効率的です。isConnected

3つの操作すべてについて、償却された一定時間または対数時間を期待しています。これは可能ですか?


3
関連:無向グラフのバージョンは以前に尋ねられました。 変化する無向グラフのコンポーネントを追跡するオンラインアルゴリズムはありますか?
伊藤剛

1
素集合型のデータ構造を使用して、単純なケース(リンク解除なし)を解決する方法を説明できますか?
jbapple

@Tsuyoshi-その質問のリンクはおもしろそうに見えます。私は今それらを見ています。
ジャスティンキルパトリック

(1)グラフがDAGであるという制限付きで、有向到達可能性の動的グラフアルゴリズムを探しています。誤解しない限り、動的な有向到達可能性は無向の対応よりもはるかに困難ですが、ここではDAGプロパティが役立つ場合があります。(2)remove入射エッジも除去しますか?もしそうなら、その操作をO(log n)時間とすることを期待するのは多すぎるかもしれません…。
伊藤剛

回答:


19

説明した問題は、完全に動的なDAGの到達可能性(DAG上の完全に動的な推移的閉包とも呼ばれます)です。完全に動的と呼ばれるのは、削除のみが可能なバージョン(その後、漸進的到達可能性と呼ばれる)と挿入のみが可能なバージョン(漸進的到達可能性と呼ばれる)も研究しているためです。

更新時間とクエリ時間の間には、いくつかのトレードオフがあります。ましょエッジの数とすることn個の頂点の数。DAGの場合、DemetrescuとItaliano(FOCS'00)は、O(n 1.58)時間の更新(エッジの挿入または削除)とO(n 0.58)時間の到達可能性クエリをサポートするランダム化されたデータ構造を提供しました(ノードの挿入/削除もサポートされます) 、O(1)時間で); この結果は、一般的な有向グラフで機能するようにSankowski(FOCS'04)によって拡張されました。また、DAGについて、ロディッティ(SODA'03)は、総時間O(m n + I n 2 + D Iで推移閉包行列を維持できることを示しましたmnn1.58n0.58mn+I·n2+D)で。Iは挿入数、は削除数、そしてもちろんクエリ時間はO(1)です。D1

一般的な有向グラフの場合、次の(更新、クエリ)時間は既知です:(O()、O(1))(Demetrescu and Italiano FOCS'00(amortized)、Sankowski FOCS'04(最悪の場合))、( O(M n2)、Omn))(Roditty、Zwick FOCS'02)、(O(m+nlogn)、O(n))(Roditty、Zwick STOC'04)、(O(n 1.58)、O(n 0.58))および(O(n 1.495)、O(n 1.495O(nm+nlognnn1.58n0.58n1.495n1.495))by Sankowski(FOCS'04)

更新時間をあまり長くせずに多対数クエリ時間を取得することは、DAGにとっても大きな未解決の問題です。


1
ご回答ありがとうございます。私はそれらの限界がいかに貧弱であるかに失望していると言わざるを得ませんが。:(
ジャスティンキルパトリック

1
関連する質問:DAGのより単純な問題、漸進的到達可能性、および漸進的到達可能性に関する参考文献を教えてください。
ジャスティンキルパトリック

これは、単純なdfsアプローチ(O(1),O(n^2))または(O(m),O(n+m))
トーマスエール

4

これまでの最良の結果は、「完全に動的な推移的閉包のための動的行列の保持」で説明されていると思います。その論文では、クエリ時間とO n 1.58更新時間を使用したランダム化アルゴリズムについて説明しています。O(n0.58)O(n1.58)

(これはのみで、あなたの質問の最初のバージョンをカバーlinkしてunlinkますがなしaddremove。)


ただし、境界はStrassenのアルゴリズムに基づいているため、定数は膨大です。
トーマス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.