Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Dmitriy Goldobin                     2:5020/400     22 Jul 2003  11:16:04
 To : Anatoly Saveliev
 Subject : Re: Поиск ближайшей точки  (сабж слетел)
 -------------------------------------------------------------------------------- 
 
 Hi!
 
 > > ... и они распределены равномерно по плоскости. Hо в этом случае гораздо
 > > эффективнее регулярная сетка.
 >
 > лучше вложенная, она же квадродерево - о чем ниже; и лучше не
 > регулярная, а делить по медиане на прямоугольники для баланса
 
 регулярная позволяет единственной операцией list =
 array[round(x/K)][round(y/K)] получить сразу список допустим 2-3 точек из
 миллиона, которые могут быть ближайшей к искомой, если она лежит в данной
 ячейке. А нерегулярные подразумевают несколько итераций спуска по дереву.
 Для случая именно равномерного распределения регулярная получается лучше.
 
 > > > Точно так же сортируются (по левому краю) и проекции
 >
 > > а вот в более сложных случаях, чем описано выше, это может привести к
 > > затратам большим, чем даже простой перебор. Как мы будем искать при
 
 такой
 
 > > сортировке? Ищем бинарным поиском ближайшую по X точку к искомой,
 
 вычисляем
 
 >
 > неверно, просто ищем дихотомией левую границу в сортированном массиве
 > проекций на X (с некоторым epsilon), после чего линейный перебор до
 > правой границы. поскольку в epsilon окрестности искомой точки ожидается
 > 2*epsilon/Range(x)*N точек, а скорость поиска O(log(N)), то процесс идет
 
 во-первых откуда брать эпсилон? мы же ищем не примерно ближайшую, а
 ближайшую. И что зачит быстро? допустим равномерно распределены N точек в
 квадрате MxM, среднее расстояние между точками что-то в районе sqr(N)/M, то
 есть брать эпсилон нужно в районе sqr(N) и перебирать тогда придется порядка
 тысячи значений для миллиона точек? В случае же вот этих всяких сложных
 алгоритмов с деревьями - около двадцати (logN). Разница существенная.
 
 > быстро, а приведенный ниже пример к данному методу контрпримером не
 > является, поскольку му переберем примерно 3 точки - центральную, над
 > ней, и под ней.
 
 как это? ближайшая находится допустим слева, в центре точки нет, около
 центра (чуть левее) та, к которой мы ищем ближайшую.
 
 > округления, после чего оставил только QSort, но будучи университетским
 > человеком изучил реальные характеристики поиска при реальных данных - и
 > с удивлением обнаружил, что матожтдание числа перебираемых точек
 > примерно 6, а максимум обычно не превышает 200, поэтому с практической
 > точки зрения скорость можно считать линейной.
 
 6 из скольки? из 100000? не верю :) так может получиться если только точки
 распределить равномерно в вытянутом вдоль X узком прямоугольнике. ты уверен,
 что ищешь именно "ближайшую", а не "любую из точек в заданном
 квадрате/окружности/etc"?
 
 Bye.
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   09 Jul 2003 00:18:35 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   09 Jul 2003 13:55:26 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   09 Jul 2003 14:41:48 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   09 Jul 2003 15:57:04 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   09 Jul 2003 16:06:28 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   09 Jul 2003 19:28:00 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   10 Jul 2003 12:18:29 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   10 Jul 2003 12:54:35 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Serge Pashkov   09 Jul 2003 16:08:20 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   09 Jul 2003 17:12:43 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Serge Pashkov   10 Jul 2003 09:54:06 
 Перетаскивание ребер и вершин. Может попроще сначала задачку?   Serge Nozhenko   10 Jul 2003 03:47:22 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   10 Jul 2003 12:25:43 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Goldobin   10 Jul 2003 12:52:03 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   10 Jul 2003 14:56:37 
 Перетаскивание ребер и вершин. Может попроще сначала задачку?   Andrey Tarasevich   19 Jul 2003 05:08:06 
 Re: оЕПЕРЮЯЙХБЮМХЕ ПЕАЕП Х БЕПЬХМ. лHФЕР ОHОПHЫЕ ЯМЮВЮКЮ ГЮДЮВЙС?   Anatoly Saveliev   21 Jul 2003 09:26:08 
 Поиск ближайшей точки (сабж слетел)   Dmitriy Goldobin   21 Jul 2003 19:46:22 
 Re: Поиск ближайшей точки (сабж слетел)   Anatoly Saveliev   22 Jul 2003 07:57:07 
 Re: Поиск ближайшей точки (сабж слетел)   Dmitriy Goldobin   22 Jul 2003 11:16:04 
 Re: Поиск ближайшей точки (сабж слетел),   Anatoly Saveliev   22 Jul 2003 13:48:17 
 Re: Поиск ближайшей точки (сабж слетел),   Dmitriy Goldobin   22 Jul 2003 14:12:25 
 Re: Поиск ближайшей точки (сабж слетел)   Anatoly Saveliev   23 Jul 2003 07:58:24 
 Перетаскивание ребер и вершин. Может попроще сначала задачку?   Eugene Kurbatov   10 Jul 2003 01:10:41 
 Re: Перетаскивание ребер и вершин. Может попроще сначала задачку?   Dmitriy Iassenev   11 Jul 2003 12:00:22 
Архивное /ru.algorithms/657738f4f631.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional