Clustering with maximum weight and distance conditions

I have a set of weighted 2D points (coordinates x, y and weight w for each sample).

I want to cluster these samples using minimum number of clusters, with the following conditions:

  1. Use the least number of clusters
  2. The sum of weighted distances (distance to the centroid * weight) for each point inside the cluster should not exceed a certain value w_max
  3. The maximum distance between any point in the cluster and the cluster centroid should not exceed a certain distance d_max
  4. Clusters should be circular

I tried using K-Means++, iterating k until the conditions are met, but I think there is a better solution to that.

What kind of algorithms should I look for? I would appreciate any help, thank you.

Topic clustering

Category Data Science

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.