Presolving Mixed-Integer Linear Programs - COR@L
Presolving Mixed-Integer Linear Programs - COR@L
Presolving Mixed-Integer Linear Programs - COR@L
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