- Published on
Aspects of OR - Integer Programming (Part 3)
- Authors

- Name
- Till Heller
In Part 2 we saw how branch and bound systematically searches for integer solutions, using LP bounds to prune the search tree. The effectiveness of this approach depends critically on the quality of those bounds. Loose bounds mean less pruning, bigger trees, and slower solves.
Cutting planes address this directly: they add new constraints (cuts) to the LP relaxation that remove fractional solutions without eliminating any integer-feasible point. Each cut tightens the relaxation, improving the bound. In this post, we develop the geometric intuition behind cuts, derive Gomory cuts from the simplex tableau, and see how cover inequalities exploit knapsack structure. In Part 4, we combine cutting planes with branch and bound into branch-and-cut.
The geometric picture
To understand cutting planes, it helps to think in two dimensions. Consider the IP:
The LP relaxation has a polygonal feasible region (the LP polytope) with vertices at , , , and . The LP optimum sits at the vertex with value .
Scattered inside this polytope are the integer-feasible points: , , , , , , , , , , , , and . The IP optimum is with value .
Picture this: the LP polytope is a quadrilateral, the LP optimum is its top-right vertex at , and the closest integer point in the optimal direction is . There is a gap — the LP sees fractional territory that no integer point occupies.
A cutting plane is a line (hyperplane in higher dimensions) that slices off the fractional LP optimum while keeping all integer points on the feasible side. After adding the cut, the LP polytope shrinks — its new optimum is closer to the integer optimum, providing a tighter bound. We can repeat: add another cut, shrink the polytope further, resolve.
The ideal LP relaxation would be the convex hull of the integer points — the tightest possible convex set containing all integer-feasible solutions. If we could describe this convex hull explicitly, the LP relaxation would always return an integer solution. In general, the convex hull has exponentially many facets and cannot be written down. But we can iteratively add cuts that bring us closer to it.
Gomory cuts
The most classical cutting plane method is due to Ralph Gomory (1958). Gomory cuts are derived directly from the simplex tableau and can be applied to any IP — they do not exploit problem structure.
Derivation
Suppose we have solved the LP relaxation with the simplex method and the optimal solution has a fractional basic variable with value . The corresponding row of the simplex tableau is:
where is the set of non-basic variables. Since all variables must be non-negative integers in the IP, we can derive the Gomory fractional cut:
where is the fractional part of , and is the fractional part of .
Why is this valid? Every integer solution satisfies the tableau row with integer values, so the fractional parts must "add up" correctly. The current LP solution violates the cut because all non-basic variables are zero, giving — a contradiction since .
Worked example
Let us apply this to our 2D example. Adding slack variables , the constraints become and .
Solving the LP and expressing the basic variables in terms of the non-basic ones (, both zero at the optimum), the tableau row for is:
Since is fractional (), we extract the fractional parts of each coefficient:
- (since )
The Gomory cut is:
At the current LP solution (), the left side is , which violates . The cut works.
To express this in the original variables, substitute and , multiply through by 7, and simplify:
Geometrically, this is a line that passes between the fractional LP optimum and the integer points. The LP optimum violates it (), but every integer-feasible point satisfies it (the worst case is : ).
Adding this cut and resolving the LP gives a new optimum at with value — tighter than the original bound of . This new solution is still fractional, so we would generate another Gomory cut and repeat. After a few rounds, the LP solution converges to the IP optimum with value .
Cover inequalities for knapsack
Generic cuts like Gomory cuts work for any IP but may be weak. For specific problem structures, we can derive much stronger cuts. Cover inequalities are a prime example, designed for knapsack constraints.
Consider a binary knapsack constraint:
A cover is a subset of items whose total weight exceeds the capacity:
Since the items in a cover cannot all be selected simultaneously, we get the cover inequality:
This is a valid inequality for the IP but may be violated by the LP relaxation — and that is exactly what makes it useful as a cut.
Example
Consider a 5-item knapsack with weights , values , and capacity .
The LP relaxation gives , , , , , with LP value . The IP optimum is items with value .
Now consider the set with total weight . This is a cover, so the cover inequality is:
The current LP solution gives , so this cut is violated. Adding it eliminates the current fractional solution and tightens the bound. Similarly, the covers and yield additional violated inequalities. Solvers generate and evaluate many such covers, adding only the most effective ones.
Extended cover inequalities strengthen the basic cover by also considering items outside the cover that are heavier than the lightest item in the cover, yielding even tighter cuts.
The pure cutting plane algorithm
Gomory proposed a clean iterative algorithm:
- Solve the LP relaxation.
- If the solution is integer, stop — it is optimal for the IP.
- Otherwise, generate one or more cutting planes violated by the current LP solution.
- Add the cuts to the LP and go to Step 1.
This algorithm is guaranteed to converge to the IP optimum in finite steps (for pure IPs). However, in practice it tends to be slow: it may require many rounds of cuts, and numerical issues accumulate as the LP grows with each added constraint.
The practical breakthrough came from combining cutting planes with branch and bound — a marriage of two complementary ideas. We cover this in Part 4.
Other families of cuts
Beyond Gomory cuts and cover inequalities, modern solvers use many specialized cut families:
- Clique inequalities — for constraints involving sets of mutually exclusive binary variables.
- Flow cover cuts — for network flow and fixed-charge structures.
- Mixed-integer rounding (MIR) cuts — a generalization of Gomory cuts that works well for mixed-integer programs.
- Lift-and-project cuts — derived by projecting higher-dimensional relaxations.
Each family exploits different structural features of the IP. A modern solver like Gurobi or CPLEX applies dozens of cut families automatically, selecting the most effective ones for the problem at hand.
Summary
Cutting planes tighten the LP relaxation by adding valid inequalities that remove fractional solutions while preserving all integer points. Gomory cuts work for any IP (derived from the simplex tableau), while cover inequalities exploit knapsack structure. The pure cutting plane algorithm converges in theory but is slow in practice. The real power comes from combining cuts with branch and bound — the subject of Part 4.