A factory plans next week: how many of each product to build to maximize profit, within limits on labor, materials and machines. A transit agency decides how many buses to run on each route. A bank picks which projects to fund. All of these are the same shape: maximize (or minimize) a goal, subject to constraints — and the decisions must be whole numbers. You can't build half a product or run 2.6 buses.
That master form is integer programming. Drop the whole-number requirement and you get linear programming (LP) — and LP is easy, solvable in polynomial time. The catch is precisely the integers: the moment you insist on whole numbers, the problem becomes NP-hard.
This article is a hub. Knapsack, graph coloring, set cover, scheduling — many problems on this site can be written as integer programs. So understanding why integers make optimization hard explains a huge swath of the hard-problem landscape at once.
Comments
Loading comments...