I have a list of clustered points but they are not in the cluster which has the center closest to them. The objective is to reassign them to minimize the total distance of each point to its cluster center.
All the points can not be reassigned individually since there's a constraint on cluster size, and moving any of these points individually would cause a violation.
So it's only possible to reassign them in pairs or groups. I want to build a potential assignment graph G=(V, E) with all the points.
There could be one or more closer clusters than the point's current cluster, so besides a pair swap between two clusters there could be a group reassignment across three or more clusters.
If I can get a proper represented graph, I could identify possible assignment by searching strongly-connected-components. But I'm not sure how to construct the graph to find the points that is guaranteed to decrease the objective. Any thoughts are appreciated! Thanks
I'm not sure if there's enough information for you to answer. There's a distance matrix for all the points to all cluster centers. Or if anything else needed, please let me know.