Gomory Cuts: Linear Arithmetic
Gomory Cuts: Linear Arithmetic
Decision Procedures
An Algorithmic Point of View
D.Kroening O.Strichman
Revision 1.0
Cutting planes
Recall that in Branch & Bound we rst solve a relaxed problem (i.e., no integrality constraints).
We now study a method for adding cutting planes constraints to the relaxed problem that do not remove integer solutions.
satisfying assignments
Example: Gomory Cuts Suppose our input integer linear problem has... Integer variables x1 , . . . , x3 . Lower bounds 1 x1 and 0.5 x2 .
Example: Gomory Cuts Suppose our input integer linear problem has... Integer variables x1 , . . . , x3 . Lower bounds 1 x1 and 0.5 x2 . After solving the relaxed problem: The nal tableau of the general simplex algorithm includes the constraint x3 = 0.5x1 + 2.5x2 , (1)
Example: Gomory Cuts Suppose our input integer linear problem has... Integer variables x1 , . . . , x3 . Lower bounds 1 x1 and 0.5 x2 . After solving the relaxed problem: The nal tableau of the general simplex algorithm includes the constraint x3 = 0.5x1 + 2.5x2 , (1) ...and the solution is {x3 1.75, x1 1, x2 0.5}
Subtracting these values from (1) gives us x3 1.75 = 0.5(x1 1) + 2.5(x2 0.5) . (2)
Subtracting these values from (1) gives us x3 1.75 = 0.5(x1 1) + 2.5(x2 0.5) . (2)
We now wish to rewrite this equation so the left-hand side is an integer: x3 1 = 0.75 + 0.5(x1 1) + 2.5(x2 0.5) . (3)
Example: Gomory Cuts The two right-most terms must be positive because 1 and 0.5 are the lower bounds of x1 and x2 , respectively. Since the right-hand side must add up to an integer as well, this implies that 0.75 + 0.5(x1 1) + 2.5(x2 0.5) 1 . (4)
Example: Gomory Cuts The two right-most terms must be positive because 1 and 0.5 are the lower bounds of x1 and x2 , respectively. Since the right-hand side must add up to an integer as well, this implies that 0.75 + 0.5(x1 1) + 2.5(x2 0.5) 1 . (4)
Example: Gomory Cuts The two right-most terms must be positive because 1 and 0.5 are the lower bounds of x1 and x2 , respectively. Since the right-hand side must add up to an integer as well, this implies that 0.75 + 0.5(x1 1) + 2.5(x2 0.5) 1 . (4)
This constraint is unsatised by because (x1 ) = 1, (x2 ) = 0.5. Hence, this constraint removes the current solution.
Example: Gomory Cuts The two right-most terms must be positive because 1 and 0.5 are the lower bounds of x1 and x2 , respectively. Since the right-hand side must add up to an integer as well, this implies that 0.75 + 0.5(x1 1) + 2.5(x2 0.5) 1 . (4)
This constraint is unsatised by because (x1 ) = 1, (x2 ) = 0.5. Hence, this constraint removes the current solution. On the other hand, it is implied by the integer system of constraints, and hence cannot remove any integer solution.
Decision Procedures Gomory Cuts 6
Gomory Cuts
Gomory Cuts
There are two preliminary conditions for deriving a Gomory cut from a constraint: The assignment to the basic variable has to be fractional. The assignments to all the nonbasic variables have to correspond to one of their bounds.
Gomory Cuts
aij xj ,
(5)
where xi B.
Gomory Cuts
aij xj ,
(5)
where xi B. Let be the assignment returned by the general simplex algorithm. Thus, (xi ) =
xj N
aij (xj ) .
(6)
Gomory Cuts
J = {j | xj N (xj ) = lj } K = {j | xj N (xj ) = uj } .
(7)
Subtracting (6) from (5) taking the partition into account yields xi (xi ) =
jJ
aij (xj lj )
jK
aij (uj xj ) .
(8)
10
Gomory Cuts
aij (xj lj )
jK
11
Gomory Cuts
aij (xj lj )
jK
aij (uj xj ) 1 .
(10)
12
Gomory Cuts (Still in case 1) We now split J and K as follows: J+ J K+ K = = = = {j {j {j {j |j |j |j |j J aij > 0} J aij < 0} K aij > 0} K aij < 0}
(11)
Gathering only the positive elements in the left-hand side of (10) gives us: aij (xj lj )
jJ + jK
aij (uj xj ) 1 f0 ,
(12)
jK
aij (uj xj ) 1 . 1 f0
(13)
13
Gomory Cuts
(Case 2)
If aij (xj lj )
jJ jK
aij (uj xj ) 0
aij (xj lj )
jK
aij (uj xj ) 0 .
(14)
14
Gomory Cuts
aij (uj xj ) f0 .
(15)
Dividing by f0 gives us
jJ
aij (xj lj ) + f0
jK +
aij (uj xj ) 1 . f0
(16)
(End of case 2)
15
Gomory Cuts Note that the left-hand side of both (13) and (16) is greater than zero. Therefore these two equations imply aij (xj lj ) 1 f0 aij (xj lj ) f0 (17)
jJ +
jJ
+
jK +
aij (uj xj ) f0
jK
aij (uj xj ) 1 . 1 f0
Since each of the elements on the left-hand side is equal to zero under the current assignment , then is ruled out by the new constraint. In other words: the solution to the linear problem augmented with the constraint is guaranteed to be dierent from the previous one.
Decision Procedures Gomory Cuts 16