# Maximum weight matching

There are polynomial time algorithms to find maximum weighted matching in a general graph. Is there any algorithm that also handles negative weights in the general graph and find maximum weighted matching for that graph with negative weights ?

• Never pick any negative weight edge. – Tyson Williams Dec 19 '12 at 18:48
• This is not a research-level question; please see the faq. – JeffE Dec 19 '12 at 19:13
• What if you want to find a maximal matching? – Yuval Filmus Dec 20 '12 at 17:26

## 2 Answers

I was only familiar with the Hungarian algorithm which only works for bipartite graphs but I've found something that claims to work for general graphs as well. The basic algorithm is the blossom algorithm, but since you need to find the maximum weight matching you will need Kolmogrov's Blossom V which is based on it.

Min cost flow finds the minimum weight of the maximum flow in the network. Use {0,1} capacities to turn it to matching. It can be modified for maximum weight.
http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=minimumCostFlow1
http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=minimumCostFlow2
http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=minimumCostFlow3