Locating Sources to Meet Flow Demands in Undirected Networks

This paper deals with the problem of finding a minimum-cost vertex subset S in an undirected network such that for each vertex v we can send d(v) units of flow from S to v. Although this problem is NP-hard in general, Tamura et al. have presented a greedy algorithm for solving the special case with uniform costs on the vertices. We give a simpler proof on the validity of the greedy algorithm using linear programming duality and improve the running time bound from O(n2M) to O(nM), where n is the number of vertices in the network and M denotes the time for max-flow computation in the network with n vertices and m edges. We also present an O(n(m+n log n)) time algorithm for the special case with uniform demands and arbitrary costs.