O(n log n)スペースとO(log n)-timeクエリを使用したDAGの到達可能性


17

有向非巡回グラフ場合、2次空間または線形時間を必要とせずに到達可能性クエリを可能にするデータ構造はありますか?理想的には、頂点ごとのO(log n)空間と対数時間のみを使用してアルゴリズムを探します。VEここで、。n=|V|+|E|

標準的なソートアルゴリズムの一般化に基づいて、このようなデータ構造が存在する必要があることは、私には直感的に明らかであるように見えました。しかし、何も見つからなかったことに驚きました。私が出会ったすべては、グラフについての仮定を立てた(例:平面性)か、2次の時間/空間でのより困難な問題を解決しました(例:グラフの変更をインターリーブしたクエリ)。

到達可能性のWikipediaのページには、唯一の一般的なアルゴリズム(フロイド・ウォーシャル)をカバー。ページの残りの部分では、グラフが平面的である(そうではない)などの仮定を含む特別なケースを扱います。

この分野で最も一般的に引用されている論文は、パス検索データ構造の償却効率であるように見えますが、これとそれが引用するすべての論文は、Oクエリでインターリーブされたグラフの更新(つまり、前処理なし)。

この質問には答えられませんでしたが、クエリでインターリーブされたエッジ挿入を許可するというより難しい問題に対処します。

この質問では、永続的な(純粋に機能的な)データ構造が求められましたが、ここでは必要ありません。「簡潔なPosets」ペーパーにはスペースが必要ですが、時間クエリを実現します。最悪の時間、より良い空間のアルゴリズムを探しています。On2O1

主にここで文献の足がかりを探しています。グラフの到達可能性に関する調査論文があり、その時間の99%を平面グラフの場合に費やしていない場合、それは役立ちます。



リンクRBをありがとう。その質問と最初の答えは空間を扱っていません(この質問が改善を求めている二次空間の境界についての簡単な言及を除く)。2番目の答えは、より簡単な問題である到達可能性(つまり{0,1}値)ではなく、距離クエリ(つまり整数値または実数値)の否定的な結果を暗示しています。でもありがとう!
user4718 14

ショートカットルーティング、または関連する質問でChristian Sommerが言及したリファレンスは、実際に機能する可能性があります。実用的なアプローチまたは理論的な下限をお探しですか?
アンドラスサラモン14

6
n2あなたはv

回答:


3

「間隔ラベリング」および「2ホップラベリング」を参照してください。これらは、実際には時間と空間の両方で非常に効率的であり、必要なものを提供します。一般に、DAGにはかなりの数の「到達可能性インデックス」スキームがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.