Вы найдете связанный вопрос полезным.
Также взгляните на K-means_algorithm
K-means_algorithm
Если у вас есть N аннотаций и вы хотите разбить на K частей, вы можете найти центр (который будет соответствовать определенным критериямНапример, свести к минимуму сумму квадратов внутри кластера каждой из K частей с помощью K-средних-алгоритма.Как только у вас будет центр, определите расстояние между центром и аннотацией, наиболее удаленной от центра, и вы получите радиус интересующего вас региона.Существует несколько вариантов алгоритма K-means_algorithm, который вы можете выбрать в зависимости от производительности и простоты реализации.
РЕДАКТИРОВАТЬ: Я не реализовал следующее, но думаю, что определенно даст одно из решений
Если вы в порядке с диапазоном 5-10, может быть несколько решений.Поэтому мы найдем одно из решений.
1- Скажем, у вас есть (N = 100) аннотации и вы хотите, чтобы (P = 15) из них были расположены наиболее плотно.
2- Затем мы разделим N аннотаций на K = N/ P групп (здесь K = 7) случайным образом
3- Используйте алгоритм K-средних, чтобы в итоге мы получили K групп, которые можно дифференцировать как отдельные объекты.
4- Эти K группыбудет обладать свойством минимума «внутрикластерной суммы квадратов».
5 - Если вы хотите сэкономить время вычислений, вы можете ослабить определение наиболее концентрированной группы как минимальной «суммы квадратов внутри кластера», в отличие от области, ограниченной ими.
6 - выберите группу из полученной группы K, которая удовлетворяет вашим критериям.
7- Если вы хотите сохранить определение минимальной площади (наибольшая концентрация), вам потребуется много вычислений
a.Сначала определите граничные аннотации для данной группы, что само по себе является огромной проблемой.
b.Рассчитаем каждый полигон и посмотрим, какой наименьший.не сложный, но требовательный к вычислениям)
EDIT2
:
Я попробовал все, что мог, и наконец подумал, что этот вопрос принадлежит специалисту по математике.Я задал ваш вопрос здесь и из ответа вы можете получить документ, в котором обсуждается эта проблема и решение здесь .Задача, которую они обсуждают, - это N точек, найдите K точек, площадь которых выпуклая оболочка минимальна.