0% found this document useful (0 votes)
54 views23 pages

Gomory Cuts: Linear Arithmetic

The document discusses Gomory cuts, which are constraints added to the relaxed problem in branch and bound algorithms. Gomory cuts do not remove integer solutions. The document provides an example of deriving a Gomory cut from a constraint in an integer linear problem. It shows subtracting the fractional assignment from the constraint and rewriting it so the left side is an integer. This results in a new constraint that is unsatisfied by the current solution. The document then generalizes the process for deriving Gomory cuts.

Uploaded by

Javier Sauler
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views23 pages

Gomory Cuts: Linear Arithmetic

The document discusses Gomory cuts, which are constraints added to the relaxed problem in branch and bound algorithms. Gomory cuts do not remove integer solutions. The document provides an example of deriving a Gomory cut from a constraint in an integer linear problem. It shows subtracting the fractional assignment from the constraint and rewriting it so the left side is an integer. This results in a new constraint that is unsatisfied by the current solution. The document then generalizes the process for deriving Gomory cuts.

Uploaded by

Javier Sauler
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Gomory Cuts

Chapter 5 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.

Specically, we will see Gomory cuts.

Decision Procedures Gomory Cuts

Cutting planes, geometrically.

satisfying assignments

The dotted line is a cutting plane.


Decision Procedures Gomory Cuts 3

Example: Gomory Cuts Suppose our input integer linear problem has... Integer variables x1 , . . . , x3 . Lower bounds 1 x1 and 0.5 x2 .

Decision Procedures Gomory Cuts

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)

Decision Procedures Gomory Cuts

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}

Decision Procedures Gomory Cuts

Example: Gomory Cuts

Subtracting these values from (1) gives us x3 1.75 = 0.5(x1 1) + 2.5(x2 0.5) . (2)

Decision Procedures Gomory Cuts

Example: Gomory Cuts

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)

Decision Procedures Gomory Cuts

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)

Decision Procedures Gomory Cuts

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.

Decision Procedures Gomory Cuts

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.

Decision Procedures Gomory Cuts

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

Generalizing this example:


Upper bounds. Both positive and negative coecients.

The description that follows is based on


Integrating Simplex with DPLL(T) Technical report SRI-CSL-06-01 Dutertre and de Moura (2006).

Decision Procedures 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.

Decision Procedures Gomory Cuts

Gomory Cuts

Consider the i-th constraint: xi =


xj N

aij xj ,

(5)

where xi B.

Decision Procedures Gomory Cuts

Gomory Cuts

Consider the i-th constraint: xi =


xj N

aij xj ,

(5)

where xi B. Let be the assignment returned by the general simplex algorithm. Thus, (xi ) =
xj N

aij (xj ) .

(6)

Decision Procedures Gomory Cuts

Gomory Cuts

Partition the nonbasic variables to


those that are currently assigned their lower bound, and those that are currently assigned their upper bound

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)

Decision Procedures Gomory Cuts

10

Gomory Cuts

Let f0 = (xi ) (xi ) .

As we assumed that (xi ) is not an integer then 0 < f0 < 1.

We can now rewrite (8) as xi (xi ) = f0 +


jJ

aij (xj lj )
jK

aij (uj xj ) . (9)

Note that the left-hand side is an integer.

Decision Procedures Gomory Cuts

11

Gomory Cuts

We now consider two cases. (Case 1) If aij (xj lj )


jJ jK

aij (uj xj ) > 0

then, since the right-hand side must be an integer, f0 +


jJ

aij (xj lj )
jK

aij (uj xj ) 1 .

(10)

Decision Procedures Gomory Cuts

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)

or, equivalently, aij (xj lj ) 1 f0 +


jJ
Decision Procedures Gomory Cuts

jK

aij (uj xj ) 1 . 1 f0

(13)

13

Gomory Cuts

(Case 2)

If aij (xj lj )
jJ jK

aij (uj xj ) 0

then again, since the right-hand side must be an integer, f0 +


jJ

aij (xj lj )
jK

aij (uj xj ) 0 .

(14)

Decision Procedures Gomory Cuts

14

Gomory Cuts

Eq. (14) implies that aij (xj lj )


jJ jK +

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)

Decision Procedures Gomory Cuts

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

You might also like