Алгоритм ближайшего соседа Рабина (ближайшая пара точек)? - PullRequest
4 голосов
/ 15 февраля 2011

Поэтому я пытаюсь найти подробности об алгоритме Майкла Рабина, который находит ближайшего соседа по заданному набору точек в 2D за O (n) времени.По какой-то причине поиск в Google полностью провалился.Лучшее (и единственное) описание, которое я нашел, здесь: http://rjlipton.wordpress.com/2009/03/01/rabin-flips-a-coin/.

Если кто-нибудь что-нибудь знает об этом или знает, где найти книгу или статью по этому вопросу (желательно онлайн!)Я бы очень признателен вам за взвешивание.

Ответы [ 2 ]

3 голосов
/ 16 февраля 2011

«Ближайший сосед» - дерьмовое имя.Она более известна как «проблема ближайшей пары точек», например, http://en.wikipedia.org/wiki/Closest_pair_of_points_problem,, которая цитирует это упрощение по Куллеру и Матиасу: http://www.cs.umd.edu/~samir/grant/cp.pdf

3 голосов
/ 16 февраля 2011

Я думаю, что одна из причин, по которой у вас могут возникнуть проблемы с поиском бумаги, заключается в том, что в этом ответном документе Хопкрофта и Фортуны упоминаются некоторые проблемы с ним.В частности, алгоритм Рабина направлен на использование рандомизации для нахождения ближайших точек за O (n) времени, и хотя он правильно делает это, настоящая причина ускорения заключается в способности преобразовывать постоянные по времени из произвольных действительных чисел в их целые этажи.Исходя из этого предположения, Хопкрофт и Фортуна предлагают детерминированный алгоритм O (n lg lg n) для нахождения ближайших точек на плоскости.

Я не знаю, является ли это удовлетворительным ответом на ваш вопрос, но напо крайней мере, приведенная выше ссылка - крутой алгоритм!

...