有向非巡回グラフ場合、2次空間または線形時間を必要とせずに到達可能性クエリを可能にするデータ構造はありますか?理想的には、頂点ごとのO(log n)空間と対数時間のみを使用してアルゴリズムを探します。ここで、。
標準的なソートアルゴリズムの一般化に基づいて、このようなデータ構造が存在する必要があることは、私には直感的に明らかであるように見えました。しかし、何も見つからなかったことに驚きました。私が出会ったすべては、グラフについての仮定を立てた(例:平面性)か、2次の時間/空間でのより困難な問題を解決しました(例:グラフの変更をインターリーブしたクエリ)。
到達可能性のWikipediaのページには、唯一の一般的なアルゴリズム(フロイド・ウォーシャル)をカバー。ページの残りの部分では、グラフが平面的である(そうではない)などの仮定を含む特別なケースを扱います。
この分野で最も一般的に引用されている論文は、パス検索データ構造の償却効率であるように見えますが、これとそれが引用するすべての論文は、Oクエリでインターリーブされたグラフの更新(つまり、前処理なし)。
この質問には答えられませんでしたが、クエリでインターリーブされたエッジ挿入を許可するというより難しい問題に対処します。
この質問では、永続的な(純粋に機能的な)データ構造が求められましたが、ここでは必要ありません。「簡潔なPosets」ペーパーにはスペースが必要ですが、時間クエリを実現します。最悪の時間、より良い空間のアルゴリズムを探しています。
主にここで文献の足がかりを探しています。グラフの到達可能性に関する調査論文があり、その時間の99%を平面グラフの場合に費やしていない場合、それは役立ちます。