Mam n (około 10^5) punktów na hipersferze o wymiarze m (między 10^4 a 10^6).Najbliższy punkt do innego punktu na hipersferze
Mam zamiar zrobić kilka pytań w formularzu "dany punkt p, znajdź najbliższy n punktów do p". Wykonam około n tych zapytań.
(nie wiem, czy fakt hypersphere pomaga w ogóle.)
Prosty algorytm naiwny, aby rozwiązać ten problem jest dla każdego zapytania, aby porównać p do wszystkich innych punktów n. Wykonanie tego n razy kończy się runtime O (n^2 m), który jest o wiele za duży, abym mógł obliczyć.
Czy istnieje skuteczniejszy algorytm, którego mogę użyć? Gdybym mógł dostać to do O (nm) z pewnymi czynnikami logującymi, które byłyby świetne.
To podejście sprawdza się znakomicie w 2-3 wymiarach. Ale nie tak dobrze w 10.000, ponieważ szanse są takie, że każdy punkt kończy się w nieporównywalnej hipersześcianie, a ty i tak musisz spojrzeć na każdy punkt na końcu. – btilly