powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Диаграмма Вороного, поиск ближайшей точки
25 сообщений из 216, страница 4 из 9
Диаграмма Вороного, поиск ближайшей точки
    #39129275
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМалыхин Сергей, для данный способ не работает для вещественных координат
точек до тех пор пока мы не определимся с шагом сетки.

Вопрос определения этого шага пока остался за кадром.

При чем тут шаг?
точки сортируются по одной из координат после этого перебираются по очереди

http://blog.ivank.net/fortunes-algorithm-and-implementation.html описание и реализация
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129295
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР
Я не вижу необходимости применения универсального алгоритма kd дерева
для данной задачи. Задача решается проще.

Если бы задачу нужно было бы решить для одной точки, тогда, да, проще. Это предложение ключевое в постановке задачи, как я понял


ДохтаР Да , я говорил о необходисоти иметь свой индекс по каждой размерности пространства.
В этом основная суть идеи.

В этом основная суть идеи многомерного дерева
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129297
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор топикаА вот потом пойдет неслабый поток случайных точек, которым надо найти ближайшую

то о чём я и говорил. Мы могли бы и за линейное время задачу решить, если бы нам нужна была информация только для одной точки.

С трудом представляю вариант быстрее классического упорядочивания, только в данном случае, данное упорядочивание будет происходить по нескольким индексам. Один из примеров многомерное дерево.

Выше были таблицы с линейным временем по некоторым алгоритмам, что достаточно странно. Ещё раз, основное то, что нужно, фактически, найти для каждой точки ближайшую. Таким образом необходимо рассчитать асимптотику тех самых предварительных вычислений о которых писал автор, и учесть время доступа для каждого значения(время поиска в организованной структуре) при работе с потоком точек
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129314
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)алгоритм в википедии Дихотомический метод ДохтарА и Димы-Т??В обсуждении
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129632
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129654
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР1. набор статистики и инициализация хеш слотов по каждому изменению.


В этом случае появляется зависимость
реализации ( кода ) от аппаратной платформы(Endianness).
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129692
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryДохтаР
Я не вижу необходимости применения универсального алгоритма kd дерева
для данной задачи. Задача решается проще.

Если бы задачу нужно было бы решить для одной точки, тогда, да, проще. Это предложение ключевое в постановке задачи, как я понял


KD дерево оперирует прямоугольниками , а для решения задачи
проще использовать 4 угольники получая напрямую из индекса координат.
Единственное преймущество использования KD дерева , готовые библиотеки.

Учитывая пришедшую мне мысль использовать динамическое хеш распределение
путем сбора статистки сложением битовых масок координат ,
и равномерного разбрасывания точек по хеш слотам, можно
предполагать выход на константное время поиска , после того
как индексы массива точек будет подготовлены.

KD дерево было бы полезным, если бы множество точек подвергалось
изменению в процессе работы алгоритма.
Если множестово точкек константно в процессе работы , то грех не использовать
это обстоятельство для оптимизации.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129764
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРKD дерево оперирует прямоугольниками , а для решения задачи
проще использовать 4 угольники получая напрямую из индекса координат.
Единственное преимущество использования KD дерева , готовые библиотеки.

мне кажется проще всё же прямоугольниками, потому что даже с треугольниками не всё так просто
(да и прямоугольники в дереве неявные агрегаты)ДохтаРУчитывая пришедшую мне мысль использовать динамическое хеш распределение
путем сбора статистки сложением битовых масок координат ,
и равномерного разбрасывания точек по хеш слотам, можно
предполагать выход на константное время поиска , после того
как индексы массива точек будет подготовлены.
чем это лучше индексирования пространства на сетку?ДохтаРKD дерево было бы полезным, если бы множество точек подвергалось
изменению в процессе работы алгоритма.
Если множестово точкек константно в процессе работы , то грех не использовать
это обстоятельство для оптимизации.
к сожалению пока не придумали адекватного алгоритма авто-балансировки k-d дерева близкого к o(ln(n)) даже для двумерного случая:-(

PS: o(const) равноценно o(1), соответственно o(const * n) равноценно o(n)
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129803
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малыхин СергейmaytonМалыхин Сергей, для данный способ не работает для вещественных координат
точек до тех пор пока мы не определимся с шагом сетки.

Вопрос определения этого шага пока остался за кадром.

При чем тут шаг?
точки сортируются по одной из координат после этого перебираются по очереди

http://blog.ivank.net/fortunes-algorithm-and-implementation.html описание и реализация
Просто демка так была показана как будто мы работаем с методом сеток
или чем-то численным. Надо было другое видео приаттачить где
хм... больше аналитики штоль.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129819
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРmaytonДля целочисленной плоскости в диапазоне short можно весь универсум
проиндексировать. Каждому пикселу сопоставить ссылку на ближайший
объект точки.


Это нормальная цена решения?

Думаю что нет, потому что алгоритмика решения в такой постановке
не масштабируется на 3D.
Он одинаково хреново масштабируется или не-масштабируется для 2D и 3D.
Но прежде чем решать задачу старым дедовским научным методом
я обычно предлагаю тривиальные, хардкорные и табличные решения.

В дополнение к "сопоставить ссылку" - раскрасить многоугольники Вороного-Делоне
(от 1 до 256) каждый в свой цвет. В какой цвет попали - та и точка.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129834
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДохтаРпропущено...


Думаю что нет, потому что алгоритмика решения в такой постановке
не масштабируется на 3D.
Он одинаково хреново масштабируется или не-масштабируется для 2D и 3D.
Но прежде чем решать задачу старым дедовским научным методом
я обычно предлагаю тривиальные, хардкорные и табличные решения.

В дополнение к "сопоставить ссылку" - раскрасить многоугольники Вороного-Делоне
(от 1 до 256) каждый в свой цвет. В какой цвет попали - та и точка.

О!!!, это уже похоже на хеш......
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129843
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР, это лучше чем хэш. Док. Это блджад O(1) без промахов.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129858
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)ДохтаРKD дерево оперирует прямоугольниками , а для решения задачи
проще использовать 4 угольники получая напрямую из индекса координат.
Единственное преимущество использования KD дерева , готовые библиотеки.

мне кажется проще всё же прямоугольниками, потому что даже с треугольниками не всё так просто
(да и прямоугольники в дереве неявные агрегаты)

чем это лучше индексирования пространства на сетку?


Сетка это лишняя сущьность, которую вы вносите реализацию.
Если бы в постановке задачи были не точки,
а обьекты круги( шары) треугольники ( пирамиды),
до которых нужно было считать растояние , то нужна была бы сетка.
Если у нас только точки , сетка не нужна.



kealon(Ruslan)PS: o(const) равноценно o(1), соответственно o(const * n) равноценно o(n)


Нет,
О(С) - сложность не зависит от количества
элементов множества , которым оперирует алгоритм.

намомню используя терминологию О(n,ln(n), С) мы переходим
от оперирования значениями, в жонглирование теорией пределов из матана.
Там другая сетка :)
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129864
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДохтаР, это лучше чем хэш. Док. Это блджад O(1) без промахов.


Посчитай сколько в среднем вершин попадет фигуру одного цвета,
я думаю, что около 6-и, твоя раскраска стремится к О(n/6).



Вспомни , это базисту на пальцах обьясняли ,
когда он нес пургу о хешах в #стебельке.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129894
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРПосчитай сколько в среднем вершин попадет фигуру одного цвета,
я думаю, что около 6-и, твоя раскраска стремится к О(n/6).

Вообще не понял суть твоего пассажа! Что куда стремиться?

Я предложил целочисленно - точное решение. Как раскрасил - так и будет.

И причём тут базист с хешами? Я про хеши вообще ничего не сказал.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129932
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДохтаРПосчитай сколько в среднем вершин попадет фигуру одного цвета,
я думаю, что около 6-и, твоя раскраска стремится к О(n/6).

Вообще не понял суть твоего пассажа! Что куда стремиться?

Я предложил целочисленно - точное решение. Как раскрасил - так и будет.

И причём тут базист с хешами? Я про хеши вообще ничего не сказал.

Если мы оперируем терминами О(n,ln(n), С) , то мы оперируем теорией пределов,
а именно отношением стремления
количества элементов в множестве обрабатываемым алгоритмом
к тактам процессора к нулю или безконечности.

Давайте будем использовать одинаковую терминологию
либо целочисленную, либо О(n,ln(n), С) что бы не путаться,
потому что у них принципиально разные попугаи влияющие на кост,
я например не понимаю , в каких попугаях кто что считает и имеет ввиду.

В таблице пишем одно , когда что то аргументируем используем другое.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129946
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДохтаРПосчитай сколько в среднем вершин попадет фигуру одного цвета,
я думаю, что около 6-и, твоя раскраска стремится к О(n/6).

Вообще не понял суть твоего пассажа! Что куда стремиться?

Я предложил целочисленно - точное решение. Как раскрасил - так и будет.

И причём тут базист с хешами? Я про хеши вообще ничего не сказал.

Алгоритм твоей раскарски есть хеш функция , она может быть
не оптимальной относительно статистики распределения точек в пространстве,
или супер оптимальной для другого распределения.

Поэтому хотелось бы услвшать об алгоритме,
как зависит количество цветов от количества точек.

И как ты планируешь искать конкретный цвет среди 10 млн цветов
и 100 000 000 млн точек.

Сколко по твоему должно быть цветов в палитре
при 1000 точек при 100 000 точек и при 100 000 000 точек .
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129963
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР, да никак не планирую. Я предложил тупой маргинальный табличный алгоритм.
С кучей ограничений на memory и разрядность цвета. Да и нет никакого цвета.
Просто метафора.

Но он (алгоритм) имеет место в нашей дискуссии как отправная точка для СРАВНЕНИЯ
алгоритмов. А если у тебя дискретное поле 10 на 10 и точек штук 20 - так это и будет самая
лучшая имплеметнация. Я гарантирую это (с)
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129972
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДохтаР, да никак не планирую. Я предложил тупой маргинальный табличный алгоритм.
С кучей ограничений на memory и разрядность цвета. Да и нет никакого цвета.
Просто метафора.

Но он (алгоритм) имеет место в нашей дискуссии как отправная точка для СРАВНЕНИЯ
алгоритмов. А если у тебя дискретное поле 10 на 10 и точек штук 20 - так это и будет самая
лучшая имплеметнация. Я гарантирую это (с)

Для простых случаев 100 на 100 я согласен,
но тут уже начали оперировать порядками и сеткой
стремящими к бесконечности исполюзуя O(ln(n)).

Надо бы у ТС спросить о каких подяках идет речь , о десятках точек
или о сотнях миллионов.

С точки зрения интелектуальных трудозатрат на кодинг это имет огромное значение.
В большенсве практических случаев
нет смысла экономить на спичках и забивать свою голову и ломать копья
вокруг теории пределов.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39130032
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще зависит от гистограммы. К примеру взять Quad-Tree.
При некоторых раскладах оно работает хуже простого
разбиения пространства на одинаковые сегменты. Тоесть
мы можем найти наихудший случай при котором дерево
теряет смысл и вырождается в "матрицу с уровнями".
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39130070
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МетодСложность построенияСложность поискакомментарииПолный перебор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.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39130192
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР
kealon(Ruslan)PS: o(const) равноценно o(1), соответственно o(const * n) равноценно o(n)


Нет,
О(С) - сложность не зависит от количества элементов множества , которым оперирует алгоритм.

потому o(const) и равноценно o(1), что не зависит от N (N никак не константа для алгоритма), просто функции "o" разные в каждом случае, но индекс мы опускаем
пределы из матана тут ни при чём, это принятая o-нотация сложности вычислений
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39130250
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята. Док. Дима. Руслан. Саша.

Я думал о тестовых данных. И вот к чему пришёл. У нас есть минимум 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 файлов.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39130251
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Если есть пожелания по добавлению новых наборов - пишите. Учту.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39130254
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)ДохтаРпропущено...


Нет,
О(С) - сложность не зависит от количества элементов множества , которым оперирует алгоритм.

потому o(const) и равноценно o(1), что не зависит от N (N никак не константа для алгоритма), просто функции "o" разные в каждом случае, но индекс мы опускаем
пределы из матана тут ни при чём , это принятая o-нотация сложности вычислений

кем принятая ?

извините, понятие нотация ( виртуальная в вакуме) мне не понятна,
у нее должны быть логический и физический смыслы.

Так же как есть физический смысл в килограмах(кг) , метрах(м) ,
метрах в секунду(s/t)
или метрах в секунду в квадрате(s/t 2 ).

будьте добры, сформулируейте смысл O нотации в вашем понимании,
аналогично как я его софрмулировал тут 18568636 для теории пределов из матана.
...
Рейтинг: 0 / 0
25 сообщений из 216, страница 4 из 9
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Диаграмма Вороного, поиск ближайшей точки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]