Eu tenho um conjunto de dados 2D em que desejo encontrar os centros de um número especificado de centros de círculos ( ) que maximizam o número total de pontos dentro de uma distância especificada ( ).R
por exemplo, eu tenho 10.000 pontos de dados e quero encontrar os centros de círculos que capturam o máximo de pontos possível dentro de um raio de . Os 5 centros e o raio de 10 são dados previamente, não derivados dos dados.N = 5 R = 10
A presença de um ponto de dados dentro de um círculo é uma proposição binária ou / ou. Se , não há diferença de valor para um ponto a 11 unidades de distância vs. 100 unidades de distância, pois ambos são> 10. Da mesma forma, por estar dentro do círculo, não há valor extra em estar perto do centro vs. . Um ponto de dados está em um dos círculos ou sai.
Existe um bom algoritmo que pode ser usado para resolver esse problema? Isso parece relacionado às técnicas de agrupamento, mas, em vez de minimizar a distância média, a função "distance" é 0 se o ponto estiver dentro de de qualquer um dos pontos e 1 caso contrário.N
Minha preferência seria encontrar uma maneira de fazer isso em R, mas qualquer abordagem seria apreciada.