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

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


Я предлагаю этот вариант

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

Для этого нужно отдельно осортировать все точки по координатам, отдельно по X
отдельно по Y, когда вы попытаетесь вставить вашу точку
в деревья индексов координат, соседние к ней точки по осям ( 2 по оиси Х 2 по оиси Y )
дадут 4 точки вершин 4-х угольника, содержащего заданную на поверхности.
Останется из 4 точек найти ближайшую.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39127971
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР,

в одномерном случае очевидным(и классическим) решением было бы упорядочивание элементов по одному ключу (nlgn), в многомерном упорядочивание по нескольким ключам, это видимо то, о чём вы написали. К сожалению вы предлагаете ссылку на википедию, потому спрошу лучше у вас. Какова асимптотика в многомерном случае?

Вопрос ко всем, вы возможно знаете как реализовать, у меня пока нет идей.
Пусть у нас есть точка x, множество точек p_i, i=1..n.
Как сделать так:
1. Точка x начинает распространять волну.
2. Как только любая из точек p_i получит сигнал, она останавливает алгоритм и говорит о том что она первая получила сигнал.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39127984
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryДохтаР,

в одномерном случае очевидным(и классическим) решением было бы упорядочивание элементов по одному ключу (nlgn), в многомерном упорядочивание по нескольким ключам, это видимо то, о чём вы написали. К сожалению вы предлагаете ссылку на википедию, потому спрошу лучше у вас. Какова асимптотика в многомерном случае?

Вопрос ко всем, вы возможно знаете как реализовать, у меня пока нет идей.
Пусть у нас есть точка x, множество точек p_i, i=1..n.
Как сделать так:
1. Точка x начинает распространять волну.
2. Как только любая из точек p_i получит сигнал, она останавливает алгоритм и говорит о том что она первая получила сигнал.
вот для этого как раз и нужно разбиение плоскости на треугольники по условию Делоне
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39127987
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР
Я предлагаю этот вариант

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

ДохтаР, вы предлагаете мой вариант, но кажется не представляете сложность построения K-d дерева. По пробуйте сделать дерево для начала или хотя бы оценить сложность его построения

Я не предлагаю чистое k-d дерево , а упрощенный вариант.

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

в kd дереве задаче сведется к 2-м прямоугольникам,
а потом по вашему алгоритму.

Что касается реализации , то когда в длинных срачах в разделе
другие СУБД я постил 2 класса которые должны хранить в себе
самобалансирующееся Р -дерево.

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

в одномерном случае очевидным(и классическим) решением было бы упорядочивание элементов по одному ключу (nlgn), в многомерном упорядочивание по нескольким ключам, это видимо то, о чём вы написали. К сожалению вы предлагаете ссылку на википедию, потому спрошу лучше у вас. Какова асимптотика в многомерном случае?


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

Многомернойсть отличается только масштабируемой реализацией.
Для многомерного случая коодинтаты точки хранятся не в переменных , а в массиве
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
enum space_dim {
    X = 0,
    Y= 1,
    Z= 2,
   space_SIZE=3
};

class point
{
int  place[space_SIZE];
......
}



приблизительно так....


SashaMercuryВопрос ко всем, вы возможно знаете как реализовать, у меня пока нет идей.
Пусть у нас есть точка x, множество точек p_i, i=1..n.
Как сделать так:
1. Точка x начинает распространять волну.
2. Как только любая из точек p_i получит сигнал, она останавливает алгоритм и говорит о том что она первая получила сигнал.

Кому говорит ?
Какая разница в скорости распостранения волны и сигнала говорения?

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

ДохтаР, вы предлагаете мой вариант, но кажется не представляете сложность построения K-d дерева. По пробуйте сделать дерево для начала или хотя бы оценить сложность его построения

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

в одномерном случае очевидным(и классическим) решением было бы упорядочивание элементов по одному ключу (nlgn), в многомерном упорядочивание по нескольким ключам, это видимо то, о чём вы написали. К сожалению вы предлагаете ссылку на википедию, потому спрошу лучше у вас. Какова асимптотика в многомерном случае?

Вопрос ко всем, вы возможно знаете как реализовать, у меня пока нет идей.
Пусть у нас есть точка x, множество точек p_i, i=1..n.
Как сделать так:
1. Точка x начинает распространять волну.
2. Как только любая из точек p_i получит сигнал, она останавливает алгоритм и говорит о том что она первая получила сигнал.
вот для этого как раз и нужно разбиение плоскости на треугольники по условию Делоне

Кстате вы правы , я вчера подумал над своим алгоритмом , в большенстве случаев ,
и в частности в этом 17691216
алгоритм будет выходить не на 4 угольник , а вырождаться в треугольник.
В данном случае совпадение точек найденных по индексам
X Y будет ближайшей точкой, но это совпадение , в результате поиска алгоритм
должен получить именно четерехугольник из 4 ближайших точек
на плоскости которого содержится заданная координата
от которой мы ищем ближайшую точку.
То есть в некоторых случаях нужно брать не только ближайшие соседние X Y
но и просматривать следующие за ними.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39128221
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryДохтаР,
о чём вы написали. К сожалению вы предлагаете ссылку на википедию, потому спрошу лучше у вас. Какова асимптотика в многомерном случае?


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

Методы поиска ближайшей точки (условно)

МетодСложностькомментарииПолный переборo(n)Тривиально и долгоДиаграмма Вороного (триангуляция Делоне?)?В обсужденииОбход Змейкой by maytono(n)Быстрее но линейное время остаётся в формулеK-D дерево?В обсужденииДихотомический метод ДохтарА?В обсужденииМетод ДохтарА на К-деревьях?В обсуждении

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

Методы поиска ближайшей точки (условно)

МетодСложностькомментарииПолный переборo(n)Тривиально и долгоДиаграмма Вороного (триангуляция Делоне?)?В обсужденииОбход Змейкой by maytono(n)Быстрее но линейное время остаётся в формулеK-D дерево?В обсужденииДихотомический метод ДохтарА?В обсужденииМетод ДохтарА на К-деревьях?В обсуждении

Можете оспаривать и дополнять. Я не против.

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


Скорость зависит от алгоритма скорости вставки
значения в дерево или сортированный список .

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

Методы поиска ближайшей точки (условно)

МетодСложностькомментарииПолный переборo(n)Тривиально и долгоДиаграмма Вороного (триангуляция Делоне?)?В обсужденииОбход Змейкой by maytono(n)Быстрее но линейное время остаётся в формулеK-D дерево?В обсужденииДихотомический метод ДохтарА?В обсужденииМетод ДохтарА на К-деревьях?В обсуждении

Можете оспаривать и дополнять. Я не против.

Все что я тут написал это развитие идеи
17691463

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


Скорость зависит от алгоритма скорости вставки
значения в дерево или сортированный список в зависимости от
реализации алгоритма поиска места вставки числа в списко.

Время работы с одним множеством умножатеся на количество
измерений пространства S + О 2,3,4*s ( как для полного перебора)

Так будет точнее универсальнее и масштабируемее.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39128561
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЯ бы так решал:
Если конечное множество фиксированное (в котором искать), то превратить его в два ассоциативных массива (или сортированных списка)
Mx[X] = Y и My[Y] = X
Например для точек (1,1), (5,3), (4,2)
Код: sql
1.
2.
3.
4.
5.
6.
Mx[1] = 1
Mx[4] = 2
Mx[5] = 3
My[1] = 1
My[2] = 4
My[3] = 5


для поиска ближайшей от (x,y) сначала проходим по массиву Mx, затем My. в обе стороны каждый. Затем из 4х выбрать ближайшую.
Например для точки (3,3) идем вверх. Следующая точка (4,2), расстояние до нее 1.4, поэтому следующую проверять не надо, т.к. (5,3) дальше.

Тут надо еще подумать как от корней избавится при расчете длины. Заменить на квадраты, т.к. умножение гораздо быстрее. И немного соптимизировать, добавить проверку для Mx => |x - xi| > |y - yi| чтобы не обсчитывать заведомо далекие точки.

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


Скорость зависит от алгоритма скорости вставки
значения в упорядоченое множество в зависимости от
реализации алгоритма поиска места для вставки .

Время работы с одним множеством умножатеся на количество
измерений пространства S + О 2,3,4*s ( как для полного перебора)

Так будет точнее универсальнее и масштабируемее.

Так ще более фундаментально получается.

зы задача интересная и точно где то пригодится ,
меня мучает мысль как это можно продать :)
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39128630
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР, есть целый сегмент ПО - это ГИС, геолокация, геопоиск. Там всё давно уже испахано
вдоль и поперёк. И имплементировано в БД, Spatial, GeoSearch requests.

Единственное где (я так думаю) есть возможность применить мозг - это геймдев и позиционирование. Там где отклики
меряются микросекундами и есть особые требования к скорости.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39128636
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия 2.0
МетодСложностькомментарииПолный переборo(n)Тривиально и долгоДиаграмма Вороного (триангуляция Делоне?)?В обсужденииОбход Змейкой by maytono(n)Быстрее но линейное время остаётся в формулеK-D дерево?В обсужденииДихотомический метод ДохтарА и Димы-Т?В обсуждении
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129140
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

сложности будет две, подготовка вспомогательной структуры и сам поиск с помощью неё
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129145
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan), ты имеешь в виду геймдев?
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129152
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)mayton,

сложности будет две, подготовка вспомогательной структуры и сам поиск с помощью неё

Позволю себе напомнить условия 17690651 :
AntipichМножество точек N фиксированное и задается в начале.
Поэтому время "подготовительной работы" не критично.
А вот потом пойдет неслабый поток случайных точек,
которым надо найти ближайшую. И как раз этот процесс и надо оптимизировать.
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129162
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для целочисленной плоскости в диапазоне short можно весь универсум
проиндексировать. Каждому пикселу сопоставить ссылку на ближайший
объект точки.

Это нормальная цена решения?
...
Рейтинг: 0 / 0
Диаграмма Вороного, поиск ближайшей точки
    #39129172
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДля целочисленной плоскости в диапазоне short можно весь универсум
проиндексировать. Каждому пикселу сопоставить ссылку на ближайший
объект точки.


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

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


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