3次元の最近傍の高速でスペース効率の良いデータ構造?


7

私は合理的にスペース効率が良い(つまり、最大で使用される)3Dの最近傍クエリに答えるためのデータ構造を探しています O(n1+ϵ) スペース)と高速(O(nϵ) または O(logk(n)) 最悪の場合のクエリ時間)。

私がすでに知っていることの要約として:

  • 1Dは簡単です(ポイントを並べ替えてバイナリ検索を使用するだけです)。

  • 2Dは少しトリッキーですが、ポイント位置データ構造+ボロノイ図を使用すると、 O(n) スペースと O(log(n)) クエリ時間。

  • 3D以上では、一連の点のボロノイ図は O(nfloor(d/2))

私はkdツリーまたはグリッドベースの方法に基づくおおよその手法を知っていますが、これらは点の均一な分布または最近傍への距離について何かを仮定することに依存しており、すべてのケースでそれほどうまく機能しません。私はこれらのランダム化または近似解には興味がありません-最悪の場合、どのデータセットでも機能するものが欲しいです。これを行うものはありますか、またはこのアイデアを水から吹き飛ばす下限がありますか?

回答:


1

Drostの階層ボクセルハッシングが好きです。平均時間の複雑さはO(log(log(|D|)))、 どこ |D|データクラウド内のポイントの数です。作成は少し面倒ですが、検索ははるかに速くなります。

この方法は、このリンクの下にあるジャーナルバージョンにも拡張されています。


0

kdツリーでの正確な最近隣クエリは完全に実現可能です。ベントレーの最初の論文はアルゴリズムを提供しましたが、より良いアルゴリズムはフォローアップ論文にありました。これは技術レポートバージョンです。

フリードマン、ベントレー、およびフィンケル、対数予想時間最良の一致を見つけるためのアルゴリズム、SLAC-PUB-1549、1976年7月。

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