Linear Gomory
-
Upload
javier-sauler -
Category
Documents
-
view
228 -
download
0
Transcript of Linear Gomory
-
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