J'ai un ensemble de données 2D où je veux trouver les centres d'un nombre spécifié de centres de cercles ( ) qui maximisent le nombre total de points dans une distance spécifiée ( ).
Par exemple, j'ai 10 000 points de données et je veux trouver les centres de cercles qui capturent autant de points que possible dans un rayon de . Les 5 centres et le rayon de 10 sont donnés à l'avance, non dérivés des données.
La présence d'un point de données dans un cercle est une proposition binaire soit / ou. Si , il n'y a pas de différence de valeur avec un point à 11 unités de distance contre 100 unités de distance, car ils sont tous les deux> 10. De même pour être dans le cercle, il n'y a pas de valeur supplémentaire à être près du centre vs près du bord . Un point de données se trouve dans l'un des cercles ou à l'extérieur.
Existe-t-il un bon algorithme qui peut être utilisé pour résoudre ce problème? Celles-ci semblent liées aux techniques de regroupement, mais plutôt que de minimiser la distance moyenne, la fonction "distance" est 0 si le point est à l'intérieur de de l'un des points, et 1 sinon.
Ma préférence serait de trouver un moyen de le faire en R, mais toute approche serait appréciée.