BK Trees に関するこの投稿を読んで、次のスニペットが少しわかりにくいことがわかりました。
「しばらくの間、クエリ、検索で使用している文字列、および文字列がクエリから離れて返される最大距離の 2 つのパラメータがあるとします。任意の文字列を取得し、それをテストしてクエリと比較するとします。 . 結果の距離を d と呼びます。三角形の不等式が成り立つことがわかっているため、すべての結果は最大で d+n の距離、少なくともテストからの距離は dn でなければなりません。
検索している単語から何かがd
離れていて、エラーを許容できる場合、違いを「元に戻す」には、現在の単語からn
少なくとも距離が必要になることが直感的にわかります。d-n
同様にd+n
、違いを「逆転」させた後、さらにn個の違いを導入できるため、最大でも持つことができます。
これを得るために三角形の不等式がどのように使用されたか混乱しています。d(test, query) = d および d(query, found) <= n とすると、次の不等式によります。
d(test, query) + d(test, nextWordToSearch) >= d(query, found)
d + d(test, nextWordToSearch) >= n
どうすれば見つけることができますか
d - n <= d(test, nextWordToSearch) <= d + n