Even more general is linear programming (LP): , maximize
cx.
Example:
In spite of the lack of an integrality constraint, the value of this linear program is equal to the size of the maximum matching.
Can solve network flow problems this way, as well as some tricky generalizations.
Theoretically efficient LP algorithms (ellipsoid, interior point) are very complex. Practical LP algorithm (simplex) is inefficient in the worst case. Very good commercial implementations exist!