Учитывая две точки P, Q и дельта, я определил отношение эквивалентности ~ =, где P ~ = Q, если EuclideanDistance(P,Q)
< = delta. Теперь, учитывая набор Sn точек, в примере S = (A, B, C, D, E, F) и n = 6 (точки факта на самом деле являются конечными точками сегментов, пренебрежимо малыми), существует алгоритм, который имеет сложность лучше, чем O (n^2) в среднем случае, чтобы найти разбиение множества (представительский элемент подмножеств несуществен)?Пересечение соседних точек с учетом эвклидовой дистанции
Попытки найти теоретические определения этой проблемы пока не увенчались успехом: k-означает группировку, поиск ближайшего соседа и другие, кажется мне разные проблемы. На рисунке показано, что мне нужно сделать в моем приложении.
Подсказка? Благодаря
EDIT: в то время как актуальная проблема (кассетные вблизи точек даны какие-то инвариантным) должны быть разрешимы в более лучше, чем O (N^2) в среднем случае, есть серьезный недостаток в моей задаче определения: = ~ не отношение эквивалентности из-за простого факта, что оно не уважает транзитное свойство. Я думаю, что это основная причина, по которой эта проблема нелегко решить и нуждается в передовых техник. Скоро опубликует мое фактическое решение: должно работать, когда близкие точки все удовлетворяют заданию = ~. Может терпеть неудачу, если полюса раздельных точек не уважают отношение, но они связаны с центром тяжести кластеризованных точек. Он хорошо работает с моим пространством ввода данных, возможно, не с вашим. Кто-нибудь знает полную формальную проблему этой проблемы (с решением)?
Будут ли какие-либо конфликты, т. Е. Могут ли быть точки `G` и` H`, которые находятся в `delta`` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` – Jonas 2010-12-09 18:28:25
Не в примере, но может быть. При определенных условиях предлагаемые решения должны работать. К сожалению, проблема намного сложнее, чем я изначально думал. По сути, мне нужно группировать/классифицировать/индексировать * вблизи * точек. Как формально написать условие, которое суммирует неформальное понятие * «около точек» *? Нелегко сделать, и если это не будет сделано, я не могу думать о лучших решениях, и даже зная, что у меня нет времени на эту проблему. Тем временем вам может понравиться бесплатный код на этой странице. :) – ceztko 2010-12-09 22:55:57