Assume that I have an undirected graph. Several of the vertices in the graph serve as waste disposal sites, while the other vertices produce the waste. Producing vertices have a weight (corresponding to the amount of waste generated). The task is now to find clusters, in which edges connect disposal and production vertices such that a maximum of waste generated in the cluster is disposed of, while the sum of the connecting edges does not surpass an upper limit.
I am pretty new to the topic but my first idea was to loop through all disposal vertices and run a minimum spanning tree (MST) problem on each of them. If possible I would set a constraint in the MST to account for the upper limit of the summed length of edges. Furthermore, a second contraint regarding the minimum number of population served would be desirable.
I assume that by looping through all disposal vertices, some production vertices are included in several different clusters. To deal with that I thought of evaluating each cluster by some metric, e.g., dividing the total waste disposed by the summed edge length. So after having evaluated all clusters I would realize the best one (as measured by the metric), and take out the corresponding vertices from the graph. Then I would restart the loop again. This procedure would be continued until no clusters can be found anymore.
So my questions would be:
- Does this overall approach make sense? (Or are there aspects I miss out)
- Can I set constraints in a MST problem regarding the total edge length and the minimum vertices weight included?