What is a Disjunction? - IEOR @IIT Bombay
What is a Disjunction? - IEOR @IIT Bombay
What is a Disjunction? - IEOR @IIT Bombay
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
In Search of Optimal D<strong>is</strong>junctions in Mixed<br />
Integer Programming<br />
Ted Ralphs 1 , Ashutosh Mahajan 2<br />
1 Cor@l Lab<br />
Department of Industrial and Systems Engineering<br />
Lehigh University<br />
2 Mathematics and Computer Science Div<strong>is</strong>ion<br />
Argonne National Lab<br />
UC Berkeley, 2009
Solving MIPs Using D<strong>is</strong>junctions<br />
SOLVE LP<br />
GENERATE<br />
"APPLY<br />
RELAXATION<br />
DISJUNCTION<br />
DISJUNCTION"<br />
DIVIDE THE LP FEASIBLE REGION<br />
INTO SMALLER REGIONS<br />
(BRANCH−AND−BOUND)<br />
"APPLY<br />
DISJUNCTION"<br />
GENERATE VALID INEQUALITIES TO<br />
OBTAIN TIGHTER RELAXATION<br />
(CUTTING PLANE ALGORITHM)<br />
How to select d<strong>is</strong>junctions for branching or generating valid<br />
inequalities?
<strong>What</strong> <strong>is</strong> a D<strong>is</strong>junction?<br />
Given a MIP of the form<br />
min cx<br />
(objective function)<br />
such that Ax ≥ b (constraints)<br />
x ∈ Z d × R n−d .<br />
(integrality)<br />
◮ Variable D<strong>is</strong>junction: x i ≤ π 0 ∨ x i ≥ π 0 + 1, i ∈ {1, 2, . . .,d}<br />
◮ General D<strong>is</strong>junction: πx ≤ π 0 ∨ πx ≥ π 0 + 1,<br />
(π, π 0 ) ∈ Z d × {0} n−d × Z.<br />
* * * * * * *<br />
* * * * * * *<br />
S 1<br />
S 2<br />
S 1<br />
S 2<br />
*<br />
*<br />
*<br />
* *<br />
*<br />
*<br />
* *<br />
*
Problem of Maximizing Lower Bound<br />
Criterion for selecting general d<strong>is</strong>junction: Maximization of the lower<br />
bound obtained after applying the d<strong>is</strong>junction.<br />
Problem<br />
Find (ˆπ, ˆπ 0 ) ∈ Z such that objective function value <strong>is</strong> at least (some<br />
given) K in both subproblems.<br />
Ax ≥ b<br />
cx ≤ K<br />
πx ≤ π 0<br />
and<br />
Ax ≥ b<br />
cx ≤ K<br />
ˆπx ≥ ˆπ 0 + 1<br />
(1)<br />
should both be infeasible.
Formulation Technique<br />
LP 2<br />
DUAL 2<br />
MIP<br />
Br. MIP<br />
General<br />
D<strong>is</strong>junction<br />
LP<br />
1<br />
DUAL<br />
1<br />
Solve using<br />
traditional solver
The Formulation<br />
Lower bound after “application” of a d<strong>is</strong>junction can be at least K if<br />
and only if<br />
pA − s L c − π = 0<br />
qA − s R c + π = 0<br />
pb − s L K − π 0 ≥ δ (2)<br />
qb − s R K + π 0 ≥ −1 + δ<br />
p, q, s L , s R ≥ 0<br />
(π, π 0 ) ∈ Z d × {0} n−d × Z 1 ,<br />
<strong>is</strong> feasible for some δ > 0.<br />
Solve (2) over different values of K to get the best one.
Examples<br />
*<br />
*<br />
*<br />
*<br />
*<br />
*<br />
* *<br />
*<br />
*<br />
*<br />
*<br />
* *<br />
1<br />
*<br />
*<br />
S 1<br />
S 2<br />
*<br />
*<br />
* * * * *<br />
*<br />
of d<strong>is</strong>junctions: 4) (No. of d<strong>is</strong>junctions: 1)<br />
Tree size for selected instances:<br />
Instance Variable Gen. D<strong>is</strong>j. Improvement<br />
10teams 115 12 9.58<br />
bell3a 16387 259 63.27<br />
flugpl 394 6 65.67<br />
gt2 340 10 34<br />
mod008 2840 68 41.76<br />
vpm1 263111 20 13155.55<br />
(No.
Compar<strong>is</strong>on over 30 instances (MIPLIB and Mittleman)<br />
1<br />
Fraction of Instances<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0<br />
Variable Branching<br />
General D<strong>is</strong>j., k=5<br />
General D<strong>is</strong>j., k=15<br />
1 2 4 8 16 32 64 128<br />
Times size of branch-and-bound tree than the smallest
Computational Complexity<br />
The problem of finding the “best” d<strong>is</strong>junction <strong>is</strong>:<br />
◮ N P−complete in general (Reduction from Number Partitioning<br />
Problem)<br />
◮ N P−complete when π ∈ {0, 1} n<br />
◮ N P−complete when π ∈ {−1, 0, 1} n<br />
◮ N P−complete when (π, π 0 ) ∈ {0, 1} n+1<br />
◮ N P−complete when x ∈ {0, 1} n and either of above four<br />
conditions hold (Reduction from 1-IN-3SAT)<br />
. . . lead to similar results for some problems of generating split<br />
inequalities
D<strong>is</strong>junctions for the Cutting-Plane Algorithm<br />
* * *<br />
* *<br />
*<br />
*<br />
S 1<br />
S 2<br />
αx ≥ β<br />
*<br />
*<br />
*<br />
*<br />
*<br />
αx ≥ β<br />
*<br />
*<br />
*<br />
*<br />
*<br />
*<br />
αx ≥ β <strong>is</strong> a “split-cut” that separates the LP solution from the feasible<br />
region.<br />
◮ Most valid inequalities are types of Split Inequalities: C-G, GMI,<br />
Lift and Project, MIR . . . .<br />
◮ Given an inequality αx ≥ β, <strong>is</strong> it an elementary split inequality?<br />
N P−Complete.<br />
◮ Given a polyhedron P and K ∈ R, does there ex<strong>is</strong>t an elementary<br />
split inequality such that the LP bound after adding it <strong>is</strong> at least<br />
K? N P−Complete.
Using Formulations for “best” C-G Inequalities<br />
64<br />
maximize bound<br />
maximize violation<br />
32<br />
Gap (%) closed by inequalities<br />
16<br />
8<br />
4<br />
2<br />
1<br />
1 4 16 64 256 1024 4096<br />
Number of valid C-G inequalities
Using Formulations for “best” Split Inequalities<br />
64<br />
maximize bound<br />
maximize violation<br />
32<br />
Gap (%) closed by inequalities<br />
16<br />
8<br />
4<br />
2<br />
1<br />
1 4 16 64 256 1024 4096 16384 65536<br />
Number of valid split inequalities
Conclusions and Future Work<br />
◮ Selecting the “best” d<strong>is</strong>junction <strong>is</strong> N P−hard in the general case<br />
and also for several natural restrictions.<br />
◮ These d<strong>is</strong>junctions can reduce significantly the size of<br />
branch-and-bound tree.<br />
◮ Inequalities obtained from such d<strong>is</strong>junctions can also increase<br />
the bound much better than maximally violated inequalities.<br />
◮ However, fast heur<strong>is</strong>tics to d<strong>is</strong>cover such d<strong>is</strong>junctions need to be<br />
developed.<br />
◮ <strong>What</strong> <strong>is</strong> best way to use a d<strong>is</strong>junction: branch or generate valid<br />
inequalities?