2016-05-24 4 views
2

У меня есть группа из 100 точек в двумерной плоскости с известными координатами x-y. Я хочу нарисовать 25 кругов таким образом, чтобы в каждом круге присутствовало ровно 4 точки. Каждая точка должна быть ровно в одном круге. Можете ли вы предоставить базовый алгоритм, как действовать.Кластеризация набора точек с кругами

Примечание: Я рассматривал некоторые алгоритмы, которые включают в себя k-средства, но никто не имел именно то, что я хочу. Я знаю python/go/matlab/c, если на этом языке есть некоторые конкретные модули, которые могут быть полезны.

+1

Кластеризация - это неправильный инструмент. К сожалению, вы смотрите на ** комплектную проблему с крышкой **, к сожалению, NP-hard. Вероятно, вы не можете использовать k-средства или любой другой алгоритм кластеризации. –

ответ

2

Я думаю, что есть некоторые конфигурации, которые не имели бы решения.

Impossible example with 20 points

Любой алгоритм пониженная может застрять в локальном максимуме.

Вы можете перечислить все комбинации из 4-х точечных групп и попытаться установить круги вокруг каждой из групп, но даже тогда самые крутые круги могут не привести к решению, когда может быть круглая круглая окружность. И комбинаторный взрыв может сделать этот метод неосуществимым.

Смежные вопросы