Maximum flow is a cool problem, but I'm told that it's not used all that often in practice because most real-world problems are more complicated. Instead, a really big hammer is used: linear programming (LP).
More general than matching or network flow:
, maximize
. Here, A is a matrix, x a column vector of variables, b
a column vectors of constraints, and c a column vector of rewards.
Network-Flow example:
Small example...