Gomory Fractional Cuts

How to construct a Gomory fractional cut from a row of the simplex tableau in which a basic variable is fractional, including handling negative and integer coefficients, and how to add the cut to the tableau as an equation with a non-negative slack.

Step 1 of 157%

Tutorial

The Fractional Part

When the simplex method solves the LP relaxation of an integer program, a basic variable can land on a non-integer value. From such a row we can build a Gomory fractional cut -- a linear inequality that excludes the current LP optimum while keeping every integer feasible point. The whole construction rests on a single operation: extracting the fractional part of a real number.

For any aRa\in\mathbb{R}, the fractional part of aa is

{a}  =  aa,\{a\} \;=\; a - \lfloor a \rfloor,

where a\lfloor a\rfloor is the greatest integer a\leq a. By construction, {a}[0,1)\{a\}\in[0,1).

A few quick computations:

{3.7}=3.73=0.7,\{3.7\} = 3.7 - 3 = 0.7, {5}=55=0,\{5\} = 5 - 5 = 0, {1.3}=1.3(2)=0.7,\{-1.3\} = -1.3 - (-2) = 0.7, {73}=732=13.\left\{\tfrac{7}{3}\right\} = \tfrac{7}{3} - 2 = \tfrac{1}{3}.

Notice that for negative numbers, a\lfloor a\rfloor rounds down (more negative), so {a}\{a\} is still in [0,1)[0,1). The fractional part of an integer is always 00.

navigate · Enter open · Esc close · ⌘K/Ctrl K toggle