linear gomory

Upload: javier-sauler

Post on 05-Apr-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 Linear Gomory

    1/23

    Decision ProceduresAn Algorithmic Point of View

    D.Kroening O.Strichman

    Gomory Cuts

    Chapter 5

    Linear Arithmetic

    Revision 1.0

  • 8/2/2019 Linear Gomory

    2/23

    Cutting planes

    Recall that in Branch & Bound we first solve a relaxedproblem(i.e., no integrality constraints).

    We now study a method for adding cutting planes constraints to the relaxed problem that do not remove integersolutions.

    Specifically, we will see Gomory cuts.

    Decision Procedures Gomory Cuts 2

  • 8/2/2019 Linear Gomory

    3/23

    Cutting planes, geometrically.

    satisfying assignments

    The dotted line is a cutting plane.

    Decision Procedures Gomory Cuts 3

  • 8/2/2019 Linear Gomory

    4/23

    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

  • 8/2/2019 Linear Gomory

    5/23

    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 theconstraintx3 = 0.5x1 + 2.5x2 , (1)

    Decision Procedures Gomory Cuts 4

  • 8/2/2019 Linear Gomory

    6/23

    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 theconstraintx3 = 0.5x1 + 2.5x2 , (1)

    ...and the solution is

    {x3 1.75, x1 1, x2 0.5}

    Decision Procedures Gomory Cuts 4

  • 8/2/2019 Linear Gomory

    7/23

    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

  • 8/2/2019 Linear Gomory

    8/23

    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 isan integer:

    x3 1 = 0.75 + 0.5(x1 1) + 2.5(x2 0.5) . (3)

    Decision Procedures Gomory Cuts 5

  • 8/2/2019 Linear Gomory

    9/23

    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

  • 8/2/2019 Linear Gomory

    10/23

    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

  • 8/2/2019 Linear Gomory

    11/23

    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

  • 8/2/2019 Linear Gomory

    12/23

    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 ofconstraints, and hence cannot remove any integer solution.

    Decision Procedures Gomory Cuts 6

  • 8/2/2019 Linear Gomory

    13/23

    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

  • 8/2/2019 Linear Gomory

    14/23

    Gomory Cuts

    There are two preliminary conditions for deriving a Gomory cutfrom a constraint:

    The assignment to the basic variable has to be fractional.The assignments to all the nonbasic variables have tocorrespond to one of their bounds.

    Decision Procedures Gomory Cuts 8

  • 8/2/2019 Linear Gomory

    15/23

    Gomory Cuts

    Consider the i-th constraint:

    xi =

    xjN

    aijxj , (5)

    where xi B.

    Decision Procedures Gomory Cuts 9

  • 8/2/2019 Linear Gomory

    16/23

    Gomory Cuts

    Consider the i-th constraint:

    xi =

    xjN

    aijxj , (5)

    where xi B.

    Let be the assignment returned by the general simplexalgorithm. Thus,

    (xi) =xjN

    aij(xj) . (6)

    Decision Procedures Gomory Cuts 9

    G C

  • 8/2/2019 Linear Gomory

    17/23

    Gomory Cuts

    Partition the nonbasic variables to

    those that are currently assigned their lower bound, andthose 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 accountyields

    xi (xi) =

    jJ

    aij(xj lj)

    jK

    aij(uj xj) . (8)

    Decision Procedures Gomory Cuts 10

    G C t

  • 8/2/2019 Linear Gomory

    18/23

    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

    G C t

  • 8/2/2019 Linear Gomory

    19/23

    Gomory Cuts

    We now consider two cases.

    (Case 1)

    IfjJ

    aij(xj lj) 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

    G C ts

  • 8/2/2019 Linear Gomory

    20/23

    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 sideof (10) gives us:

    jJ+

    aij(xj lj)

    jK

    aij(uj xj) 1 f0 , (12)

    or, equivalently,

    jJ+

    aij

    1 f0(xj lj)

    jK

    aij

    1 f0(uj xj) 1 . (13)

    Decision Procedures Gomory Cuts 13

    Gomory Cuts

  • 8/2/2019 Linear Gomory

    21/23

    Gomory Cuts

    (Case 2)

    If

    jJ

    aij(

    xj

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

  • 8/2/2019 Linear Gomory

    22/23

    Gomory Cuts

    Eq. (14) implies that

    jJ

    aij(xj lj)

    jK+

    aij(uj xj) f0 . (15)

    Dividing by f0 gives us

    jJ

    aij

    f0(xj lj) +

    jK+

    aij

    f0(uj xj) 1 . (16)

    (End of case 2)

    Decision Procedures Gomory Cuts 15

    Gomory Cuts

  • 8/2/2019 Linear Gomory

    23/23

    Gomory Cuts

    Note that the left-hand side of both (13) and (16) is greaterthan zero.

    Therefore these two equations imply

    jJ+

    aij

    1 f0(xj lj)

    jJ

    aij

    f0(xj lj)

    +

    jK+

    aijf0

    (uj xj)

    jK

    aij1 f0

    (uj xj) 1 . (17)

    Since each of the elements on the left-hand side is equal tozero under the current assignment , then is ruled out bythe new constraint.

    In other words: the solution to the linear problem augmentedwith the constraint is guaranteed to be different from theprevious one.

    Decision Procedures Gomory Cuts 16