3
votes

I have a bipartite graph with two sets of vertices A and B. Edges have no weights. However, vertices in one of the sets(say set B) have positive weights assigned to them (wb1,wb2...) I want to find a matching in this bipartite graph so as to maximize the sum of weights of vertices matched from set B.

After an extensive online search, this is what I have come up with : Assign weight wbi to all edges incident on vertex bi and run the Hungarian algorithm. Is there a more efficient way to look at this problem, since it's different from weighted maximum matching (here vertices have weights as opposed to edges)

If my language is not clear, feel free to edit. Thank you.

1
Considering the Hungarian algorithm is polynomial (really polynomial, not just theoretically so), I think you're on the right path...shapiro yaacov

1 Answers

1
votes

If an improvement from O(V^3) to O(V E) and a simpler algorithm is worth it (it isn't asymptotically for the densest graphs), you could exploit the matroid structure of matchings as follows. Instantiate Ford--Fulkerson by repeatedly choosing a path to an unmatched vertex in B whose weight is as large as possible.