30.06.2015 Views

Presolving Mixed-Integer Linear Programs - COR@L

Presolving Mixed-Integer Linear Programs - COR@L

Presolving Mixed-Integer Linear Programs - COR@L

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Presolving</strong><strong>Mixed</strong><strong>Integer</strong> <strong>Linear</strong><strong>Programs</strong> 9<br />

Deriving such implications is useful not only for preprocessing but also for other techniques<br />

suchasprimalheuristics,branching,andgeneratingvalidinequalities,thataresubsequentlyused<br />

in solving (P). The number of such implications can, however, be very large for certain types of<br />

problems. Forexample, ifwe have asetpartitioning constraintof the form<br />

∑<br />

x i = 1,<br />

i∈S<br />

wherex i isbinaryfori ∈ S,thenthenumberofvalidimplicationswithonlytwovariableswould<br />

beO(|S| 2 ). Thusitisimportanttoimplementmethodstostoreandretrievethemquickly. Several<br />

implications can also be combined to fix variables, to delete constraints, and to derive new implications,<br />

e.g., if we have implications x 1 = 0 ⇒ x 2 = 0, and x 1 = 1 ⇒ x 2 = 0, then we can fix<br />

x 2 at 0. Similarly, if a constraint is redundant when x 1 = 0 and also when x 1 = 1, then we can<br />

delete that constraint. The algorithms for deriving such new information from an existing list of<br />

implications can be studiedwith the helpof whatis calledaconflictgraph.<br />

A conflict graph is a graph that shows what values of binary variables<br />

are not feasible (or optimal) for (P). The graph has two sets X, ¯X<br />

of k vertices each, where k is the number of binary variables. For each<br />

binary variable x i in (P), we have a vertex each in X (denoted i), and in<br />

¯X (denoted ī). A vertex i ∈ X corresponding to variable x i is associated<br />

withtheimplication“x i = 1”. Similarly,avertexi ∈ ¯X isassociatedwith<br />

“x i = 0”. An edge between two vertices denotes a conflict, i.e., any optimal<br />

solution of (P) can not have values associated with the two vertices<br />

ofanyedgeintheconflictgraph. Figure1showsaconflictgraphinthree<br />

variables. Three implications that create the edges are x 1 = 1 ⇒ x 2 = 1,<br />

x 3 = 1 ⇒ x 2 = 1, and x 3 = 1 ⇒ x 1 = 0. The dark edges in the graph denotethateitherx<br />

i = 1orx i = 0,andoneofthemnecessarilyholds. New<br />

implicationscannowbederivedbystudyingthisgraph,e.g.,ifthereisa<br />

vertexj withneighborsi,ī,thenx j canbefixedto0. Wereferthereaders<br />

to the work of Savelsbergh (1994), and Atamtürk and Savelsbergh (2000)<br />

1<br />

2<br />

3<br />

Figure 1: An example<br />

ofaconflict graph<br />

foralgorithmsthatcanbeusedtoderivesuchimplications. Thelatteralsodescribedatastructures<br />

for storing them efficiently. We now mention two more ways in which implications are useful for<br />

improving aformulation.<br />

¯1<br />

¯2<br />

¯3<br />

Automatic disaggregation: Savelsbergh (1994) shows that, if we add the inequalities derived<br />

fromimplications as above,thenwe automatically disaggregateeachconstraint ofthe form<br />

∑<br />

x i ≤ Ux k ,<br />

where S ⊆ {1,2,...,n},k ∈ {1,2,...,n},and U ≤ ∑ i∈S u i,into the inequalities<br />

x i ≤ u i x k ,i ∈ S.<br />

i∈S

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

Saved successfully!

Ooh no, something went wrong!