2

床のさまざまな場所にさまざまなセンサーが配置されている床があります。送信デバイスごとに、センサーその読み取り値を検出する場合があります。1 つのフロアに 6 ~ 7 個のセンサーを配置することができ、特定の読み取り値が一部のセンサーでは検出されず、他のセンサーでは検出される可能性があります。

取得したすべての測定値について、床でのその測定値の位置を特定したいと思います。床を論理的にタイル (5 x 5 フィートの領域) に分割し、各センサー デバイスによって検出された各タイルでの理想的な読み取り値を見つけます (伝送パスロスの式に基づいて)。

各タイルの「N」センサー デバイスから事前に計算された読み取り値を、N 次元空間の点として使用しています。実際の読み取り値を取得すると、この読み取り値に最も近い値を見つけて、この読み取り値をその場所に割り当てます。

ディメンションが考慮から削除される可能性がある、K 最近傍のバリアントがあるかどうかを知りたいです。これは、特定のセンサーが読み取り値を報告していない場合に特に役立ちます。kd-tree や R ツリーなどのアルゴリズムでは、ディメンションに重みを付けることは不可能であることを理解しています。ただし、最近傍を計算するときに次元を破棄できるかどうかを知りたいです。そのようなアルゴリズムはありますか?

編集:

私が知りたいのは、同じ R/kd ツリーを、各クエリの次元の重みが異なる場合に、異なるクエリで k 最も近い検索に使用できるかどうかです。次元の異なる重みごとに別のkdツリーを構築したくありません。

編集2:

カスタム距離関数を指定し、k 個の最近傍を検索できる Python のライブラリはありますか? 基本的に、クエリごとに異なるカスタム距離関数を使用したいと考えています。

4

2 に答える 2

0

R ツリーと kd ツリーの両方で、重み付きミンコフスキー ノルムを使用するのは簡単です。重みを距離方程式に入れるだけです!

ユーリッドのポイントから長方形への最小距離に重みを配置するのは簡単です。正規の式を見て、必要に応じて重みを差し込むだけです。

ツリーの構築時には距離は使用されないため、クエリ時に必要に応じて重みを変更できます。

于 2013-12-23T11:50:02.230 に答える