Decision Procedures An Algorithmic Point of View Revision 1.0 - - PowerPoint PPT Presentation

decision procedures
SMART_READER_LITE
LIVE PREVIEW

Decision Procedures An Algorithmic Point of View Revision 1.0 - - PowerPoint PPT Presentation

Gomory Cuts Chapter 5 Linear Arithmetic Decision Procedures An Algorithmic Point of View Revision 1.0 D.Kroening O.Strichman Cutting planes Recall that in Branch & Bound we first solve a relaxed problem (i.e., no integrality


slide-1
SLIDE 1

Decision Procedures

An Algorithmic Point of View

D.Kroening O.Strichman

Gomory Cuts

Chapter 5 Linear Arithmetic

Revision 1.0

slide-2
SLIDE 2

Cutting planes Recall that in Branch & Bound we first 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. Specifically, we will see Gomory cuts.

Decision Procedures – Gomory Cuts 2

slide-3
SLIDE 3

Cutting planes, geometrically.

satisfying assignments

The dotted line is a cutting plane.

Decision Procedures – Gomory Cuts 3

slide-4
SLIDE 4

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 4

slide-5
SLIDE 5

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 final tableau of the general simplex algorithm includes the constraint x3 = 0.5x1 + 2.5x2 , (1)

Decision Procedures – Gomory Cuts 4

slide-6
SLIDE 6

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 final 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 4

slide-7
SLIDE 7

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 5

slide-8
SLIDE 8

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 5

slide-9
SLIDE 9

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 6

slide-10
SLIDE 10

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 unsatisfied by α because α(x1) = 1, α(x2) = 0.5.

Decision Procedures – Gomory Cuts 6

slide-11
SLIDE 11

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 unsatisfied by α because α(x1) = 1, α(x2) = 0.5. Hence, this constraint removes the current solution.

Decision Procedures – Gomory Cuts 6

slide-12
SLIDE 12

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 unsatisfied 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

slide-13
SLIDE 13

Gomory Cuts Generalizing this example:

Upper bounds. Both positive and negative coefficients.

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 7

slide-14
SLIDE 14

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 8

slide-15
SLIDE 15

Gomory Cuts Consider the i-th constraint: xi =

  • xj∈N

aijxj , (5) where xi ∈ B.

Decision Procedures – Gomory Cuts 9

slide-16
SLIDE 16

Gomory Cuts Consider the i-th constraint: xi =

  • xj∈N

aijxj , (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 9

slide-17
SLIDE 17

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) =

  • j∈J

aij(xj − lj) −

  • j∈K

aij(uj − xj) . (8)

Decision Procedures – Gomory Cuts 10

slide-18
SLIDE 18

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 +

  • j∈J

aij(xj − lj) −

  • j∈K

aij(uj − xj) . (9) Note that the left-hand side is an integer.

Decision Procedures – Gomory Cuts 11

slide-19
SLIDE 19

Gomory Cuts We now consider two cases. (Case 1) If

  • j∈J

aij(xj − lj) −

  • j∈K

aij(uj − xj) > 0 then, since the right-hand side must be an integer, f0 +

  • j∈J

aij(xj − lj) −

  • j∈K

aij(uj − xj) ≥ 1 . (10)

Decision Procedures – Gomory Cuts 12

slide-20
SLIDE 20

Gomory Cuts (Still in case 1) We now split J and K as follows: J+ = {j | j ∈ J ∧ aij > 0} J− = {j | j ∈ J ∧ aij < 0} K+ = {j | j ∈ K ∧ aij > 0} K− = {j | j ∈ K ∧ aij < 0} (11) Gathering only the positive elements in the left-hand side

  • f (10) gives us:
  • j∈J+

aij(xj − lj) −

  • j∈K−

aij(uj − xj) ≥ 1 − f0 , (12)

  • r, equivalently,
  • j∈J+

aij 1 − f0 (xj − lj) −

  • j∈K−

aij 1 − f0 (uj − xj) ≥ 1 . (13)

Decision Procedures – Gomory Cuts 13

slide-21
SLIDE 21

Gomory Cuts (Case 2) If

  • j∈J

aij(xj − lj) −

  • j∈K

aij(uj − xj) ≤ 0 then again, since the right-hand side must be an integer, f0 +

  • j∈J

aij(xj − lj) −

  • j∈K

aij(uj − xj) ≤ 0 . (14)

Decision Procedures – Gomory Cuts 14

slide-22
SLIDE 22

Gomory Cuts

  • Eq. (14) implies that
  • j∈J−

aij(xj − lj) −

  • j∈K+

aij(uj − xj) ≤ −f0 . (15) Dividing by −f0 gives us −

  • j∈J−

aij f0 (xj − lj) +

  • j∈K+

aij f0 (uj − xj) ≥ 1 . (16) (End of case 2)

Decision Procedures – Gomory Cuts 15

slide-23
SLIDE 23

Gomory Cuts Note that the left-hand side of both (13) and (16) is greater than zero. Therefore these two equations imply

  • j∈J+

aij 1 − f0 (xj − lj) −

  • j∈J−

aij f0 (xj − lj) +

  • j∈K+

aij f0 (uj − xj) −

  • j∈K−

aij 1 − f0 (uj − xj) ≥ 1 . (17) 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 different from the previous one.

Decision Procedures – Gomory Cuts 16