Applied and computational mathematics
Discrete optimization
Optimization over a finite or countable set of choices, such as scheduling or routing problems.
IntuitionWhat Is Discrete Optimization?
Imagine you must pick a route for a delivery truck, an assignment of workers to shifts, or a subset of projects to fund. Unlike smooth curves, the choices here come in whole, indivisible units: you either send the truck down a street or you do not, a worker is either on shift or not. Discrete optimization is the mathematics of finding the best choice among a finite (or countably infinite) collection of discrete possibilities, instead of sliding continuously along a curve.
SchoolFrom Continuous to Discrete: Choosing Whole-Number Solutions
Definition: Integer Linear Program (ILP)
An integer linear program maximizes a linear objective subject to linear constraints , where every decision variable must be a non-negative integer: . Many real problems — how many trucks to buy, which projects to select — are naturally integer, so rounding a continuous solution is not good enough.
Here is the objective value (profit, cost, coverage) to maximize, packs all the resource limits (budget, capacity, time) into one matrix inequality, and says every coordinate of the solution vector must be a non-negative whole number. Dropping the integrality condition gives the LP relaxation below.
| Method | Feasible set | Complexity |
|---|---|---|
| Integer program | NP-hard in general | |
| LP relaxation | Polynomial (simplex/interior-point) | |
| Branch-and-bound | Splits the LP relaxation into subproblems | Worst-case exponential, fast in practice |
UndergraduateExact Guarantees: Max-Flow Min-Cut and the Branch-and-Bound Bound
In any flow network with source and sink and non-negative edge capacities, the maximum value of an - flow equals the minimum capacity over all - cuts.
Why is it true?
It turns a maximization problem (find the biggest flow) into an equivalent minimization problem (find the smallest bottleneck), so a single cut gives an instant, checkable certificate that a flow is already optimal — the same primal-dual idea that powers LP duality and branch-and-bound pruning.
Proof
Weak duality first. Take any - cut , with in and in , and any feasible flow . Every unit of flow leaving must eventually cross from to to reach , and by conservation the net flow across the cut equals the total flow value. Since edges from back to can only reduce this net amount, the flow value can never exceed the sum of capacities of edges leaving , i.e. is at most for every cut.
Now run the Ford-Fulkerson procedure to completion: repeatedly find a path from to in the residual graph (remaining capacity plus reversible flow already sent) and push as much flow as the tightest edge on that path allows. Because capacities are assumed integer or rational and strictly decrease along the path used, this process terminates after finitely many augmentations.
At termination no augmenting path exists. Let be the set of nodes reachable from in the final residual graph, and the rest (so is in since no path reaches it). Every edge from to in the original network must be fully saturated (otherwise it would still have residual capacity, extending ), and every edge from back to must carry zero flow (otherwise its reverse residual edge would extend ).
Summing flow conservation over all nodes in shows the total flow value equals exactly the capacity of the saturated forward edges minus the zero backward flow, which is precisely for this particular cut. Combined with the upper bound from the first paragraph, this cut achieves the minimum possible capacity, so the maximum flow value equals the minimum cut capacity.
For a maximization integer linear program, the optimal value of its LP relaxation is an upper bound on the optimal value of the integer program; consequently, branch-and-bound may discard a subproblem whenever its LP relaxation bound is no better than the best integer solution found so far, without ever discarding the true optimum.
Why is it true?
Solving the LP relaxation is fast (polynomial time), so it gives a cheap upper bound to compare against the best integer solution found so far; if a branch cannot possibly beat that bound, exploring it further would be wasted work, which is exactly what makes branch-and-bound practical on large integer programs.
Proof
Let denote the integer feasible set and the (larger) LP-relaxed feasible set of the same constraints . Because dropping the integrality requirement only removes constraints, every integer-feasible point is also LP-feasible, so the integer feasible set is a subset of the LP-relaxed feasible set.
Since both problems maximize the same linear objective and the integer program's feasible set is contained in the LP relaxation's feasible set, the best value achievable over the smaller set cannot exceed the best value achievable over the larger set. Hence the LP relaxation optimum is an upper bound on the ILP optimum.
Branch-and-bound builds a search tree by picking a variable with a fractional value in the current LP-relaxed solution and creating two child subproblems that add or respectively; every integer-feasible point satisfies exactly one of these two conditions, so no integer solution is ever lost by this split, and repeating the split keeps partitioning the space without gaps.
At each node, solving the LP relaxation of that subproblem gives an upper bound for every integer solution still reachable below it, by the same argument as above applied to the smaller constraint set. If this bound is no larger than the value of the best integer solution found anywhere in the tree so far, no descendant of this node can improve on the current best, so the whole subtree may be pruned while still guaranteeing the true optimum is found elsewhere in the tree.
UndergraduateReal-World Applications and Worked Examples
Discrete optimization runs the logistics of the modern world: airlines solve crew-scheduling ILPs every day, chip manufacturers use graph-coloring and max-flow ideas to route wires, and delivery companies solve vehicle-routing problems that are, at their core, branch-and-bound searches over an integer program. Two worked examples below show the LP-relaxation-plus-branching pattern and the max-flow min-cut pattern in action.
Example: Branch-and-bound on a small ILP
Maximize + subject to and , with and non-negative integers.
Solution
Step 1: Solve the LP relaxation. The two constraints are tightest at their intersection: solving and together gives , with objective value .
Step 2: Since the LP-optimal is fractional, branch on it: one child adds , the other adds .
Step 3: On the branch with , the constraints force up to at = , giving the integer point with .
Step 4: On the branch with , the constraints force down to at = , giving the integer point , again with .
Step 5: Both branches already produce integer solutions with the same objective value, so no further branching is needed; the ILP optimum is , strictly below the LP relaxation bound of as the theorem predicts.
Example: Maximum flow in a small shipping network
A network has nodes , a, b, with edge capacities →a: , →b: , a→b: , a→: , b→: . Find the maximum flow from to .
Solution
Step 1: Push flow along →a→. The bottleneck is , so send units; the →a edge has units of capacity left.
Step 2: Push flow along →b→. The bottleneck is , so send units; the b→ edge has units left.
Step 3: Push flow along →a→b→ using the leftover capacity: , so send more units. Now both edges out of are fully used.
Step 4: Total flow sent is .
Step 5: No augmenting path remains since both edges leaving are saturated. The cut that isolates alone has capacity , which matches the flow found — by the max-flow min-cut theorem this confirms is optimal.
If the LP relaxation of a maximization ILP has optimal value , what can we conclude about the ILP's optimal value?
A courier company must decide, for each of several candidate routes, whether to use it or not, to minimize total cost subject to coverage constraints. Which formulation fits best?
In a flow network, the minimum - cut has capacity . What is the maximum flow value?
In branch-and-bound for a maximization ILP, when should a subtree be pruned?
References
- Alexander Schrijver (2003). Combinatorial Optimization: Polyhedra and Efficiency
- Anna R. Karlin, Nathan Klein, Shayan Oveis Gharan (2021). A (Slightly) Improved Approximation Algorithm for Metric TSP · arXiv:2007.01409