Gomory's Cutting Plane Method

Work in progress. This note is still being written and incomplete.

Solves a pure IPP by adding constraints (cuts) to the LP relaxation’s optimal tableau that exclude the fractional solution without excluding any feasible integer solution.

Fractional Cut

For a basic variable xix_i with a fractional value in the optimal tableau’s row:

xi+∑jaijxj=bix_i + \sum_j a_{ij} x_j = b_i

Split each coefficient into integer and fractional parts, aij=⌊aij⌋+fija_{ij} = \lfloor a_{ij} \rfloor + f_{ij} and bi=⌊bi⌋+fib_i = \lfloor b_i \rfloor + f_i (with 0≤fij,fi<10 \le f_{ij}, f_i < 1). The Gomory constraint is:

∑jfijxj≥fi\sum_j f_{ij} x_j \ge f_i

Steps

  • Solve the LP relaxation with simplex.
  • If every basic variable is integral, stop. The solution is optimal for the IPP.
  • Otherwise, pick a row with a fractional basic variable and derive its Gomory constraint.
  • Add the constraint (as a new row with a surplus variable) to the tableau and resolve with the dual simplex method, since the new RHS is negative.
  • Repeat until every basic variable is integral.

Worked Example

Same LP as the branch and bound worked example: maximize Z=2x1+3x2Z = 2x_1 + 3x_2 subject to x1+x2≤5x_1 + x_2 \le 5, 2x2≤72x_2 \le 7, x1,x2≥0x_1, x_2 \ge 0 and integer, with LP relaxation optimum x1=1.5x_1 = 1.5, x2=3.5x_2 = 3.5, Z=13.5Z = 13.5.

Standard form: x1+x2+s1=5x_1 + x_2 + s_1 = 5, x2+0.5s2=3.5x_2 + 0.5s_2 = 3.5.

Optimal tableau rows, basis x1,x2x_1, x_2:

x1+s1−0.5s2=1.5x_1 + s_1 - 0.5s_2 = 1.5 x2+0.5s2=3.5x_2 + 0.5s_2 = 3.5

The x1x_1 row has b1=1.5b_1 = 1.5, so f1=0.5f_1 = 0.5. Its coefficients split as f1,s1=0f_{1,s_1} = 0 (since 11 is already an integer) and f1,s2=0.5f_{1,s_2} = 0.5 (since −0.5=⌊−0.5⌋+0.5-0.5 = \lfloor -0.5 \rfloor + 0.5).

Gomory constraint: 0.5s2≥0.50.5s_2 \ge 0.5, i.e. s2≥1s_2 \ge 1.

1 /

entering column leaving row pivot element updated this step

−0.5s2+G=−0.5-0.5s_2 + G = -0.5 added as a new row. The tableau is still optimal (zz row non-negative) but infeasible (b=−0.5b = -0.5), so GG leaves. Its only negative entry is under s2s_2, so s2s_2 enters. Pivot on −0.5-0.5.

Every RHS is ≥0\ge 0 and x1x_1, x2x_2, s2s_2 are all integral. Optimal at x1=2x_1 = 2, x2=3x_2 = 3, Z=13Z = 13.

Optimal solution: x1=2x_1 = 2, x2=3x_2 = 3, Z=13Z = 13. Matches branch and bound.

Written by September 28, 2026 2 min read
Was this helpful?