|
|
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
maytonМалыхин Сергей, для данный способ не работает для вещественных координат точек до тех пор пока мы не определимся с шагом сетки. Вопрос определения этого шага пока остался за кадром. При чем тут шаг? точки сортируются по одной из координат после этого перебираются по очереди http://blog.ivank.net/fortunes-algorithm-and-implementation.html описание и реализация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 00:42 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
ДохтаР Я не вижу необходимости применения универсального алгоритма kd дерева для данной задачи. Задача решается проще. Если бы задачу нужно было бы решить для одной точки, тогда, да, проще. Это предложение ключевое в постановке задачи, как я понял ДохтаР Да , я говорил о необходисоти иметь свой индекс по каждой размерности пространства. В этом основная суть идеи. В этом основная суть идеи многомерного дерева ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 02:05 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
автор топикаА вот потом пойдет неслабый поток случайных точек, которым надо найти ближайшую то о чём я и говорил. Мы могли бы и за линейное время задачу решить, если бы нам нужна была информация только для одной точки. С трудом представляю вариант быстрее классического упорядочивания, только в данном случае, данное упорядочивание будет происходить по нескольким индексам. Один из примеров многомерное дерево. Выше были таблицы с линейным временем по некоторым алгоритмам, что достаточно странно. Ещё раз, основное то, что нужно, фактически, найти для каждой точки ближайшую. Таким образом необходимо рассчитать асимптотику тех самых предварительных вычислений о которых писал автор, и учесть время доступа для каждого значения(время поиска в организованной структуре) при работе с потоком точек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 02:12 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
mayton Версия 2.0 МетодСложностькомментарииПолный переборo(n)Тривиально и долгоДиаграмма Вороного (триангуляция Делоне?)?В обсужденииОбход Змейкой by maytono(n)Быстрее но линейное время остаётся в формулеK-D дерево?В обсужденииДихотомический метод ДохтарА и Димы-Т?В обсуждении подытожим МетодСложность построенияСложность поискакомментарииПолный перебор0o(n)Тривиально и долгоДиаграмма Вороного (триангуляция Делоне?)o(n) - o(n*ln(n))o(Sqrt(n))Построить можно только для двумерного случая, применим только для численных значенийОбход Змейкой by mayton0o(n)Быстрее но линейное время остаётся в формулеK-D деревостремится к o(n^2)o(h*ln(h)), где h~ln(n)алгоритм в википедии Дихотомический метод ДохтарА и Димы-Т??В обсуждении ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 06:52 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)mayton Версия 2.0 МетодСложностькомментарииПолный переборo(n)Тривиально и долгоДиаграмма Вороного (триангуляция Делоне?)?В обсужденииОбход Змейкой by maytono(n)Быстрее но линейное время остаётся в формулеK-D дерево?В обсужденииДихотомический метод ДохтарА и Димы-Т?В обсуждении подытожим МетодСложность построенияСложность поискакомментарииПолный перебор0o(n)Тривиально и долгоДиаграмма Вороного (триангуляция Делоне?)o(n) - o(n*ln(n))o(Sqrt(n))Построить можно только для двумерного случая, применим только для численных значенийОбход Змейкой by mayton0o(n)Быстрее но линейное время остаётся в формулеK-D деревостремится к o(n^2)o(h*ln(h)), где h~ln(n)алгоритм в википедии Дихотомический метод ДохтарА и Димы-ТO(n*2*S)в иделале s*O(С)+O(8)В обсуждении расшифровка: O(n*2*S) - нужно 2 сканирования точек на каждое имерение пространства. 1. набор статистики и инициализация хеш слотов по каждому изменению. 2. загрузка в сортированный hash_set. в иделале s*O(С)+O(8) - поиск по hash_set - O(С) умноженная на количество измерений пространства S. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 12:44 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
ДохтаР1. набор статистики и инициализация хеш слотов по каждому изменению. В этом случае появляется зависимость реализации ( кода ) от аппаратной платформы(Endianness). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 12:58 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
SashaMercuryДохтаР Я не вижу необходимости применения универсального алгоритма kd дерева для данной задачи. Задача решается проще. Если бы задачу нужно было бы решить для одной точки, тогда, да, проще. Это предложение ключевое в постановке задачи, как я понял KD дерево оперирует прямоугольниками , а для решения задачи проще использовать 4 угольники получая напрямую из индекса координат. Единственное преймущество использования KD дерева , готовые библиотеки. Учитывая пришедшую мне мысль использовать динамическое хеш распределение путем сбора статистки сложением битовых масок координат , и равномерного разбрасывания точек по хеш слотам, можно предполагать выход на константное время поиска , после того как индексы массива точек будет подготовлены. KD дерево было бы полезным, если бы множество точек подвергалось изменению в процессе работы алгоритма. Если множестово точкек константно в процессе работы , то грех не использовать это обстоятельство для оптимизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 13:18 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
ДохтаРKD дерево оперирует прямоугольниками , а для решения задачи проще использовать 4 угольники получая напрямую из индекса координат. Единственное преимущество использования KD дерева , готовые библиотеки. мне кажется проще всё же прямоугольниками, потому что даже с треугольниками не всё так просто (да и прямоугольники в дереве неявные агрегаты)ДохтаРУчитывая пришедшую мне мысль использовать динамическое хеш распределение путем сбора статистки сложением битовых масок координат , и равномерного разбрасывания точек по хеш слотам, можно предполагать выход на константное время поиска , после того как индексы массива точек будет подготовлены. чем это лучше индексирования пространства на сетку?ДохтаРKD дерево было бы полезным, если бы множество точек подвергалось изменению в процессе работы алгоритма. Если множестово точкек константно в процессе работы , то грех не использовать это обстоятельство для оптимизации. к сожалению пока не придумали адекватного алгоритма авто-балансировки k-d дерева близкого к o(ln(n)) даже для двумерного случая:-( PS: o(const) равноценно o(1), соответственно o(const * n) равноценно o(n) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 14:03 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
Малыхин СергейmaytonМалыхин Сергей, для данный способ не работает для вещественных координат точек до тех пор пока мы не определимся с шагом сетки. Вопрос определения этого шага пока остался за кадром. При чем тут шаг? точки сортируются по одной из координат после этого перебираются по очереди http://blog.ivank.net/fortunes-algorithm-and-implementation.html описание и реализация Просто демка так была показана как будто мы работаем с методом сеток или чем-то численным. Надо было другое видео приаттачить где хм... больше аналитики штоль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 14:30 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
ДохтаРmaytonДля целочисленной плоскости в диапазоне short можно весь универсум проиндексировать. Каждому пикселу сопоставить ссылку на ближайший объект точки. Это нормальная цена решения? Думаю что нет, потому что алгоритмика решения в такой постановке не масштабируется на 3D. Он одинаково хреново масштабируется или не-масштабируется для 2D и 3D. Но прежде чем решать задачу старым дедовским научным методом я обычно предлагаю тривиальные, хардкорные и табличные решения. В дополнение к "сопоставить ссылку" - раскрасить многоугольники Вороного-Делоне (от 1 до 256) каждый в свой цвет. В какой цвет попали - та и точка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 14:40 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
maytonДохтаРпропущено... Думаю что нет, потому что алгоритмика решения в такой постановке не масштабируется на 3D. Он одинаково хреново масштабируется или не-масштабируется для 2D и 3D. Но прежде чем решать задачу старым дедовским научным методом я обычно предлагаю тривиальные, хардкорные и табличные решения. В дополнение к "сопоставить ссылку" - раскрасить многоугольники Вороного-Делоне (от 1 до 256) каждый в свой цвет. В какой цвет попали - та и точка. О!!!, это уже похоже на хеш...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 14:50 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
ДохтаР, это лучше чем хэш. Док. Это блджад O(1) без промахов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 15:02 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)ДохтаРKD дерево оперирует прямоугольниками , а для решения задачи проще использовать 4 угольники получая напрямую из индекса координат. Единственное преимущество использования KD дерева , готовые библиотеки. мне кажется проще всё же прямоугольниками, потому что даже с треугольниками не всё так просто (да и прямоугольники в дереве неявные агрегаты) чем это лучше индексирования пространства на сетку? Сетка это лишняя сущьность, которую вы вносите реализацию. Если бы в постановке задачи были не точки, а обьекты круги( шары) треугольники ( пирамиды), до которых нужно было считать растояние , то нужна была бы сетка. Если у нас только точки , сетка не нужна. kealon(Ruslan)PS: o(const) равноценно o(1), соответственно o(const * n) равноценно o(n) Нет, О(С) - сложность не зависит от количества элементов множества , которым оперирует алгоритм. намомню используя терминологию О(n,ln(n), С) мы переходим от оперирования значениями, в жонглирование теорией пределов из матана. Там другая сетка :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 15:11 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
maytonДохтаР, это лучше чем хэш. Док. Это блджад O(1) без промахов. Посчитай сколько в среднем вершин попадет фигуру одного цвета, я думаю, что около 6-и, твоя раскраска стремится к О(n/6). Вспомни , это базисту на пальцах обьясняли , когда он нес пургу о хешах в #стебельке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 15:21 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
ДохтаРПосчитай сколько в среднем вершин попадет фигуру одного цвета, я думаю, что около 6-и, твоя раскраска стремится к О(n/6). Вообще не понял суть твоего пассажа! Что куда стремиться? Я предложил целочисленно - точное решение. Как раскрасил - так и будет. И причём тут базист с хешами? Я про хеши вообще ничего не сказал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 15:44 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
maytonДохтаРПосчитай сколько в среднем вершин попадет фигуру одного цвета, я думаю, что около 6-и, твоя раскраска стремится к О(n/6). Вообще не понял суть твоего пассажа! Что куда стремиться? Я предложил целочисленно - точное решение. Как раскрасил - так и будет. И причём тут базист с хешами? Я про хеши вообще ничего не сказал. Если мы оперируем терминами О(n,ln(n), С) , то мы оперируем теорией пределов, а именно отношением стремления количества элементов в множестве обрабатываемым алгоритмом к тактам процессора к нулю или безконечности. Давайте будем использовать одинаковую терминологию либо целочисленную, либо О(n,ln(n), С) что бы не путаться, потому что у них принципиально разные попугаи влияющие на кост, я например не понимаю , в каких попугаях кто что считает и имеет ввиду. В таблице пишем одно , когда что то аргументируем используем другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 16:13 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
maytonДохтаРПосчитай сколько в среднем вершин попадет фигуру одного цвета, я думаю, что около 6-и, твоя раскраска стремится к О(n/6). Вообще не понял суть твоего пассажа! Что куда стремиться? Я предложил целочисленно - точное решение. Как раскрасил - так и будет. И причём тут базист с хешами? Я про хеши вообще ничего не сказал. Алгоритм твоей раскарски есть хеш функция , она может быть не оптимальной относительно статистики распределения точек в пространстве, или супер оптимальной для другого распределения. Поэтому хотелось бы услвшать об алгоритме, как зависит количество цветов от количества точек. И как ты планируешь искать конкретный цвет среди 10 млн цветов и 100 000 000 млн точек. Сколко по твоему должно быть цветов в палитре при 1000 точек при 100 000 точек и при 100 000 000 точек . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 16:20 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
ДохтаР, да никак не планирую. Я предложил тупой маргинальный табличный алгоритм. С кучей ограничений на memory и разрядность цвета. Да и нет никакого цвета. Просто метафора. Но он (алгоритм) имеет место в нашей дискуссии как отправная точка для СРАВНЕНИЯ алгоритмов. А если у тебя дискретное поле 10 на 10 и точек штук 20 - так это и будет самая лучшая имплеметнация. Я гарантирую это (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 16:33 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
maytonДохтаР, да никак не планирую. Я предложил тупой маргинальный табличный алгоритм. С кучей ограничений на memory и разрядность цвета. Да и нет никакого цвета. Просто метафора. Но он (алгоритм) имеет место в нашей дискуссии как отправная точка для СРАВНЕНИЯ алгоритмов. А если у тебя дискретное поле 10 на 10 и точек штук 20 - так это и будет самая лучшая имплеметнация. Я гарантирую это (с) Для простых случаев 100 на 100 я согласен, но тут уже начали оперировать порядками и сеткой стремящими к бесконечности исполюзуя O(ln(n)). Надо бы у ТС спросить о каких подяках идет речь , о десятках точек или о сотнях миллионов. С точки зрения интелектуальных трудозатрат на кодинг это имет огромное значение. В большенсве практических случаев нет смысла экономить на спичках и забивать свою голову и ломать копья вокруг теории пределов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 16:44 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
Еще зависит от гистограммы. К примеру взять Quad-Tree. При некоторых раскладах оно работает хуже простого разбиения пространства на одинаковые сегменты. Тоесть мы можем найти наихудший случай при котором дерево теряет смысл и вырождается в "матрицу с уровнями". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 17:34 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
МетодСложность построенияСложность поискакомментарииПолный перебор0o(n)Тривиально и долгоДиаграмма Вороного (триангуляция Делоне?)o(n) - o(n*ln(n))o(Sqrt(n))Построить можно только для двумерного случая, применим только для численных значенийОбход Змейкой by mayton0o(n)Быстрее но линейное время остаётся в формулеK-D деревостремится к o(n^2)o(h*ln(h)), где h~ln(n)алгоритм в википедии Дихотомический метод ДохтарА и Димы-Т??В обсужденииДиаграмма Вороного (триангуляция Делоне?) + раскраска Мейтонаo(n) - o(n*ln(n))o(1)Жрёт память. Целочисленные координаты. Зависит от разрядности координат. Зависит разрядности цвета 8/16/24/32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 18:10 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
ДохтаР kealon(Ruslan)PS: o(const) равноценно o(1), соответственно o(const * n) равноценно o(n) Нет, О(С) - сложность не зависит от количества элементов множества , которым оперирует алгоритм. потому o(const) и равноценно o(1), что не зависит от N (N никак не константа для алгоритма), просто функции "o" разные в каждом случае, но индекс мы опускаем пределы из матана тут ни при чём, это принятая o-нотация сложности вычислений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 20:42 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
Ребята. Док. Дима. Руслан. Саша. Я думал о тестовых данных. И вот к чему пришёл. У нас есть минимум 5 измерений по классам алгоритмов. Но у нас нет представления о том как наши 5 алгоритмов соотносятся с различными наборами входных данных. Поэтому беру на себя обязательство нагенерировать наборы. 1) 1% равномерное заполнение (очень мало точек) 2) 3% равномерное заполнение (мало точек) 3) 50% шум (много точек) 4) Один кластер точек с ярко выраженным центром (по Гауссу). Трёхсигмовая зона - не выходит за пределы картинки. 5) Два кластера точек. Центры - разнесены на расстояние. 6) Три кластера точек (с неодинаковым количеством точек в кластерах). Распределение - аналогично п (4) и (5). 7) Точки с ярко-выраженной географической составляющей (линия берега). 8) Точки с ярко-выраженной исскусственной географией (линии домов, кварталов, дорог). Для пунктов (4) (5) (6) количество точек я определю чуть позже. Главное требование - чтобы в центре не было наложения точки на точку. Пункты (7) и (8) я постараюсь взять из реальных фотоснимков местности. Наборы будут сохранены в виде 1) Ч.Б картинок с размером 256x256 где точки - черный цвет. 2) В виде CSV-файлов с координатами. Для простоты - целочисленными. Итого - 8 файлов с картинками + 8 csv файлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 22:43 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
Да. Если есть пожелания по добавлению новых наборов - пишите. Учту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 22:45 |
|
||
|
Диаграмма Вороного, поиск ближайшей точки
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)ДохтаРпропущено... Нет, О(С) - сложность не зависит от количества элементов множества , которым оперирует алгоритм. потому o(const) и равноценно o(1), что не зависит от N (N никак не константа для алгоритма), просто функции "o" разные в каждом случае, но индекс мы опускаем пределы из матана тут ни при чём , это принятая o-нотация сложности вычислений кем принятая ? извините, понятие нотация ( виртуальная в вакуме) мне не понятна, у нее должны быть логический и физический смыслы. Так же как есть физический смысл в килограмах(кг) , метрах(м) , метрах в секунду(s/t) или метрах в секунду в квадрате(s/t 2 ). будьте добры, сформулируейте смысл O нотации в вашем понимании, аналогично как я его софрмулировал тут 18568636 для теории пределов из матана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 22:48 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39129803&tid=1340722]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 438ms |

| 0 / 0 |
