Дано n-мерное векторное пространство. В пространстве имеются вектора напр.
[ 0.02182626 -0.03014402 -0.06414173 -0.01990378 0.00629869...]
Как найти некоторое заданное число ближайших векторов(точек) к выбранному при большом количестве векторов(1кк+) и n>1000.
Банальнейшим решением является перебор расстояний до всех векторов, по формуле расстояния между точками, и нахождение минимального значения. Формула для расстояния между точками в n-мерном пространстве:
sqrt((a1 - b1)2 + (a2 - b2)2 + ... + (an - bn)2), где sqrt - квадратный корень, a и b - координаты точек, 2 -ка после скобок- возведение в квадрат
Такое решение, вероятно, является медленным. Возможно кто то подскажет решение на одном из указанных языков. Важна, именно, скорость нахождения ближайших соседей.
Есть ли теорема указывающая на путь нахождения ближайших точек быстрее всего(с наименьшими затратами ресурсов)?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости