平面内の線の動的上部エンベロープ


8

平面内の線の配置の上部エンベロープを計算する簡単なアルゴリズムがあります。たとえば、調査Davenport-Schinzelシーケンスとその幾何学的アプリケーションのセクション2.3を参照してください 。

同じ問題の動的バージョンの既知のアルゴリズム/データ構造はありますか?つまり、次の操作で平面内の一連の線の上部エンベロープを維持したいとします。

  • 挿入):セットに行を追加します(
  • 削除:セットから行を削除します()
  • query:上部エンベロープに座標を持つラインを返します。つまり、点から垂直方向の下向きの光線が最初に当たるセットの線を返します。x x (x)x(x,)

6
線の場合、点線双対性はこれを動的凸包に関する問題に変換する必要があります。これはよく研究されています。
誰か

2
@誰かあなたの役に立つコメントをありがとう!その推論の行に続いて、すぐに次の参照に行きました。これは、探しているデータ構造のように見えるパラメトリックヒープについて説明しています。madalgo.au.dk/~gerth/papers/focs02.pdf
Joe

3
citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.9174とその参照も参照してください。
Joe

1
@Joe:私はエチケットについてはわかりませんが、この質問の将来の読者を助けるために、答えを出してそれを受け入れる必要があると思います。
最大

回答:


5

「誰か」が正しいです。Timothy Chanの論文「ほぼ対数の償却時間での動的平面凸包演算」は、挿入/削除に償却時間がかかり、クエリにかかるの問題を解決するようです時間。彼は凸包問題の二重であるあなたの問題を解決します。O log n O(log1+ϵn) O(logn)


1
気にしないでください。あなたは私がこれに勝ると思うより最近の結果を見つけたようです。
James King

3

私が探していたデータ構造は、パラメトリックヒープと呼ばれています。つまり、各キーが固定キーではなく線形関数(線)であるヒープ。query(x)動作に相当上述find-min(x)パラメトリックヒープの動作。動的ヒープと呼ばれる関連データ構造があり、これは、パラメーターtimeが順方向にのみ進行するパラメトリックヒープです。つまり、find-min()クエリをすると、場合にのみ()を要求できます。、T 2 、T 2T 1t1find-mint2t2t1

「誰か」によって観察されるように、パラメトリックヒープの問題は、点線の双対性によって動的な平面凸包に還元できます。

この問題を解決するほとんどの論文では、半動的な「削除のみ」のデータ構造を使用し、BentleyとSaxeの動的化手法を使用して、データ構造を変換して挿入もサポートしています。(JL BentleyおよびJB Saxe、分解可能な検索の問題。I :静的から動的への変換)このタイプの変換がどのように機能するかの概要については、J ffeの講義ノートϵも参照してください。

この領域での古典的な結果は、Overmarsとvan Leeuwenによるメンテナンスであり、クエリ時間と(最悪の場合)更新時間を達成します。この問題の解決策を実装したい場合は、これがバージョンです。O log 2 n O(logn)O(log2n)

しかし、その後、古典的な結果に対していくつかの理論的な改善がありました。FOCS 99では、Chanの論文

更新のための償却時間を含むデータ構造を提供しました。O(log1+ϵn)

その後、次の著者は、(独立)に時間制限を向上させる欠失およびのためのの挿入のために。O log n log log log n O(lognloglogn)O(lognlogloglogn)

O(logn)

最近、Chanは動的な平面凸包クエリに関連する他の結果を示しました。「クエリラインと交差する凸包のエッジを見つけることができるように平面内のn点のセットを維持するための完全に動的なデータ構造」。

Θ(logn/loglogn)O(lognloglogn)O(log2n)


3
ああ。いいえ。これらの結果はすべて非常に複雑です。Overmars / Van Leuvenのオリジナルペーパー(en.wikipedia.org/wiki/Dynamic_convex_hullを参照)はまだ宝石であり、簡単に実装できます。一部の操作ではlog ^ 2です。しかし、それは最悪の場合です。
Sariel Har-Peled 2012

1
リコ・ジェイコブの論文には完全版の証明があると思いましたか?しかし、私はサリエルに同意します。オーバーマーズ/ヴァンルーヴェン
Suresh Venkat 2012

@SureshVenkatなぜ私はオーバーマーズ/ヴァン・ルーベンに固執する必要がありますか?
ジョー

それはあなたがアルゴリズムを必要とするものに依存すると思います。
Suresh Venkat

word-ramでは、クエリ時間をさらに短縮できます:people.csail.mit.edu/mip/papers/dynhull/paper.pdf
Joe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.