What class of problems does it solve? You have an optimization problem: maximize or minimize some objective subject to constraints. The brute-force approach — try all combinations — is exponential.