点を含む最小の軸揃えボックス


11

入力:一連の点でR 3、および整数K ≤ N。nR3k≤n

出力:これらのn個のポイントのうち少なくともを含む、最小のボリューム軸に沿った境界ボックス。kn

この問題に対してアルゴリズムが知られているかどうか疑問に思っています。私が考えることができる最高の時間は、時間で、大まかに次のとおりです。3次元のうちの2つの上限と下限のすべてに対するブルートフォース。これらのO (n 4)の可能性のそれぞれについて、スライディングウィンドウアルゴリズムを使用して、O (n )時間の問題の対応する1次元バージョンを解くことができます。O(n5)O(n4)1O(n)


我々は、サイズの表計算できないポイントの数をPとP 。x < x 、p 。y < y 、p 。z < z?ポイント数とボリュームの計算は、const number of operationsで実行できます。サイズk n 3のテーブルで動的プログラミングを使用でき、O (k n 3)アルゴリズムを取得できるはずです。n3pp.x<x,p.y<y,p.z<zkn3O(kn3)
— カベ

OK。この場合、、n 5よりも良い結果を期待することはできません。なぜなら、n 6個の異なるボックスがあり、引数をランダムに(kのランダムな値で) 計算すると、正確にk個のポイントを含むn 5個のボックスがあるからです。...あなたは何とか何とか探索空間をsmallifyにボリュームブツを使用することができますが、それは何らかの形で楽観思わない限りk=Θ(n)n5n6n5
— サリエルのHar-Peledは、

ところで、あなたのケースでは、あなたが入っている箱を得ることができますの点を、それが含む最適なボックスよりも小さいk個の点をO (((N / K )/ ε 2対数N )O (1 ))時間。以下のために、K = Θ (N )これは、本質的にpolylog時間で、..(1−ϵ)kkO(((n/k)/ϵ2log⁡n)O(1))k=Θ(n)
— サリエルのHar-Peled

回答:


11

以下のため点があるO (N 3)空のボックスは、この紙の導入参照http://www.cs.uwm.edu/faculty/ad/maximal.pdfを。おおよそ今回はこれらのボックスを計算できます(refについてはイントロをご覧ください)。nO(n3)

あなたの問題のために、すべての点が確率選ばれる点のランダムなサンプルを取ります。このようなランダムサンプルのサイズは(予想して)n / kです(矛盾を避けるために、それを仮定します)。あるO ((N / K )3)からの点を有する空のボックスR上記によりそれらの側面には、。そのような各ボックスに対して、直交範囲検索データ構造を使用して、正確に含まれるポイントの数を計算します。このプロセスを繰り返しますO (k 6 log n )1/kn/kO((n/k)3)RO(k6log⁡n)回。高い確率で、試したボックスの1つが目的のボックスです。

全体として、この実行時間はです。O((n/k)3∗k6∗polylogn)=O(n3k3logO(1)⁡n)

これが機能する理由を確認するには、最適なボックスを検討してください。境界にPの6点があります。ランダムサンプルがこれらの6つのポイントを選択し、ボックス内のポイントが少なくとも1つではない確率1k6(1−1/k)k−6≈1/k6=pO((1/p)log⁡n)

Θ(n3)

O(n3log2⁡n)


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