ポイントの最も近い単一の近傍を求めて Kd ツリーをトラバースする関数の作成に成功しました。
ただし、この関数を切り替えて、単一の隣人ではなく K 最近隣人を見つけるようにしています。これは、私が最初に想像したよりもはるかに困難な作業であることが証明されており、助けが必要であることがわかりました...
kDツリーに関するウィキペディアの記事には、次のように書かれています。
このアルゴリズムは、単純な変更によっていくつかの方法で拡張できます。1 つだけではなく k 個の現在のベストを維持することにより、ポイントに k 最近傍を提供できます。ブランチは、k 個の現在のベストのいずれよりも近いポイントを持つことができない場合にのみ削除されます。
…が、初期の現在のベストを取得する方法については何も述べていません。最初の「ベスト」を見つけるのは簡単ですが、以前のベストを削除して最初からやり直すことなく、残りのk-currentベストを見つける方法がわかりません...これは基本的に、アルゴリズムが速いため、k 回 (私の場合は 17 回) 実行する必要があります。
17 の最初の「ベスト」のリストが入力されている場合、アルゴリズムは正しいポイントを見つけると思います。
これが曖昧な場合は申し訳ありません。コード サンプルが必要な場合は、喜んで提供します。この問題について簡単な説明があれば、おそらく投稿する必要はないので、最初は投稿しません。
前もって感謝します!