30.06.2015 Views

What is a Disjunction? - IEOR @IIT Bombay

What is a Disjunction? - IEOR @IIT Bombay

What is a Disjunction? - IEOR @IIT Bombay

SHOW MORE
SHOW LESS

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?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!