4

特定の条件を満たさないものを拒否する「k個の最近傍を見つける」アルゴリズムのわずかな変形があり、それを効率的に行う方法が思いつきません。

私が求めているのは、現在の視線にある k 個の最近傍を見つけることです。残念ながらscipy.spatial.cKDTree、条件付きでポイントを拒否するフィルターを使用して検索するオプションは提供されていません。

私が思い付くことができる最良のアルゴリズムは、n 個の最近傍を照会し、見通し内に k 個がない場合は、2n 個の最近傍を再度照会して繰り返すことです。残念ながら、これは最悪の場合、n 個の最近傍を繰り返し再計算することを意味します。このクエリを繰り返さなければならない回数が増えるほど、パフォーマンス ヒットは悪化します。一方、n を高く設定しすぎると、返されるポイントのほとんどが必要ない場合、無駄になる可能性があります。

視線は頻繁に変わるので、cKDTree毎回再計算することもできません。助言がありますか?

4

1 に答える 1

0

視線で隣人を探している場合、次のような方法は使用できませんでした

cKDTree.query_ball_point(自己、x、r、p、eps)

これにより、 x配列ポイントの周囲のサイズrの半径の内側にある近隣の KDTree を照会できます。私があなたの質問を誤解していない限り、視線は既知であり、このr値に相当するようです。

于 2013-08-20T15:40:56.947 に答える