I have a graph G = (V,E), with V the set of nodes, and E the set of edges. I have two types of nodes: Source nodes, and Consumer nodes (the number of Source nodes are way lower than the Consumer nodes). The nodes have geographic positions.
I want to partition the graph into a collection of sub-graphs which are:
a- connected sub-graphs,
b- of a proper size (the size of the partitions must be balanced; however not necessarily equal. e.g. between 2000-3000 nodes),
c- the partitions should preferably be directly connected to a Source. So if there is no Source in a partition, the path between the partition to a Source node should not include any nodes in the other partitions. (The most important constraint)
d- The nodes in a partition should be close to each other (geographically)
The minimum cut set is preferable. The Source nodes can be isolated from the other partitions (can be in partitions of one; only themselves).
Is there any existing partitioning technique that I can use? Any kind of help is fully appreciated.