0

50,000 を超えるポイントのデータベースがあります。各ポイントには 3 つの次元があります。それらにラベルを付けましょう [i,j,k]

他の点よりも優れている点を別の方法で探したいと思います。

たとえば、オブジェクト A [10 10 3]、オブジェクト B[1 1 4]、オブジェクト C[1 1 1]、オブジェクト D[1 1 10]

次に、望ましい出力はAとDになります(Cはそれらすべてよりも悪く、Bは次元[k]でAを打ち負かしますが、Dは次元[k]でBを打ちます)

データベースのサイズを削減したときに機能するいくつかの基本的な比較アルゴリズム (つまり if else ステートメント) を試しました。しかし、50,000 では、目的の出力を見つけるのに 10 分以上かかります。もちろん、これは良い解決策ではありません。

誰かがこれを可能な限り最速の方法で行うための方法を1つか2つ勧めてもらえますか?

ありがとう

編集:

ありがとう わかった気がする

4

3 に答える 3

1

「より良い」の定義を知らなければ、ここで具体的な提案をするのは少し難しい. ただし、空間データを扱っているように見えることに注意してください。空間データを操作するときによく使用されるデータ構造は、R ツリー ( http://en.wikipedia.org/wiki/R-tree ) です。これにより、多次元情報の効率的なインデックスが提供されます。

おそらく、boost::geometry ライブラリには、役立つツールがいくつかあります

于 2013-04-12T07:27:57.277 に答える