lookup — быстрый поиск векторов Stack Overflow

Есть ли более быстрый способ поиска векторов в C ++, чем сходство методом грубой силы?

Я пытаюсь найти ближайший вектор к v (размер 1х4) в наборе векторов (размер 100000×4). Я заинтересован в поиске более быстрого способа поиска / поиска. В настоящее время я делаю все расчеты косинусного сходства за за каждый новый v.

Кроме того, под вектором я имею в виду математический вектор, а не std::vector,

Одна вещь, которую я уже пробовал, заключается в уменьшении размера поиска с 4D до 1D. Для этого я сначала вычислил косинус угла между всеми векторами в моем поисковом наборе и некоторым опорным вектором. Затем для каждого вектора для поиска я вычисляю косинус угла между ним и тем же опорным вектором, а затем выполняю поиск по всему косинусу углов (через бинарный поиск). Кажется, что это должно работать хорошо, но по какой-то причине он работает хуже, чем поиск методом перебора.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]