Gomory Cuts Updated 25 March 2009
Example ILP Example taken from “Operations Research: An Introduction” by Hamdy A. Taha (8th Edition)
Example ILP in Standard Form
Linear Programming Relaxation
LP Relaxation: Final Tableau
Row 1 Equation for x2 Every feasible ILP solution satisfies this constraint. Cuts off the continuous LP optimum (4.5, 3.5).
Row 2 Equation for x1
Row 2 Equation for x1
Row 2 Equation for x1 Every feasible ILP solution satisfies this constraint. Cuts off the continuous LP optimum (4.5, 3.5).
Equation for z
Equation for z Every feasible ILP solution satisfies this constraint. Cuts off the continuous LP optimum (4.5, 3.5).
General Form of Gomory Cuts
General Form of Gomory Cuts Integer Part Fractional Part
General Form of Gomory Cuts Integer Part Gomory Cut Fractional Part For each variable xi, ci is an integer and 0 fi < 1. On the right-hand side, I is an integer and 0 < f < 1.
Comments on Gomory Cuts Also called fractional cuts Assume all variables are integer and non-negative Apply to pure integer linear programs with integer coefficients Strengthen linear programming relaxation of ILP by restricting the feasible region “Outline of an algorithm for integer solutions to linear programs” by Ralph E. Gomory. Bull. Amer. Math. Soc. Volume 64, Number 5 (1958), 275-278.
Cutting Plane Algorithm for ILP Solve LP Relaxation with the Simplex Method Until Optimal Solution is Integral Do Derive a Gomory cut from the Simplex tableau Add cut to tableau Use a Dual Simplex pivot to move to a feasible solution
Cutting Plane Algorithm Example: Cut 1
Cutting Plane Algorithm Example: Cut 1
Dual Simplex Method Select a basic variable with a negative value in the RHS column to leave the basis Let r be the row selected in Step 1 Select a non-basic variable j to enter the basis such that The entry in row r of column j, arj, is negative The ratio -a0j /arj is minimized Pivot on entry in row r of column j.
Cutting Plane Algorithm Example: Cut 1
Cutting Plane Algorithm Example: Cut 1
Cutting Plane Algorithm Example: Cut 2
Cutting Plane Algorithm Example: Cut 2
Cutting Plane Algorithm Example: Cut 2
Cutting Plane Algorithm Example: Cut 2
Cutting Plane Algorithm Example: Cut 2
Cutting Plane Algorithm Example: Cut 2 Optimal ILP Solution: x1 = 4, x2 = 3, and z =58
LP Relaxation: Graphical Solution 4 Optimal Solution: (4.5, 3.5) 3 2 1 x1 1 2 3 4 5
LP Relaxation with Cut 1 x2 4 3 Optimal Solution: (4 4/7, 3) 2 1 x1 1 5
LP Relaxation with Cuts 1 and 2 4 3 Optimal Solution: (4, 3) 2 1 x1 1 2 3 4 5