1
Looking inside Gomory Aussois, January 7-11 2008
Looking inside Gomory
Matteo Fischetti, DEI University of Padova (joint work with Egon Balas and Arrigo Zanette)
Looking inside Gomory Matteo Fischetti, DEI University of Padova - - PowerPoint PPT Presentation
Looking inside Gomory Matteo Fischetti, DEI University of Padova (joint work with Egon Balas and Arrigo Zanette) 1 Looking inside Gomory Aussois, January 7-11 2008 Gomory cuts Modern branch-and-cut MIP methods heavily based on Gomory cuts
1
Looking inside Gomory Aussois, January 7-11 2008
Matteo Fischetti, DEI University of Padova (joint work with Egon Balas and Arrigo Zanette)
2
Looking inside Gomory Aussois, January 7-11 2008
cuts, used to reduce the number of branching nodes needed to reach optimality
are typically not used in practice, due to their poor convergence properties
Gomory cuts---saturation, bad numerical behavior, etc.
worse than the disease—it hides the trouble source!
3
Looking inside Gomory Aussois, January 7-11 2008
cutting plane method (i.e., one that is not knocked out by numerical difficulties)…
branch-and-bound based methods
– simplest to generate, and – when expressed in the structural variables, all their coefficients are integer easier to work with them and to assess how nice
4
Looking inside Gomory Aussois, January 7-11 2008
directly from the optimal LP tableau
Fischetti and Lodi (Chvatal-Gomory) and Balas and Saxena (GMI/split closure) where separation is decoupled from optimization
2 x1 - x2 + 3 x3 <= 5 can work much better than its GMI (dominating but numerically less stable) counterpart 2.2727272726 x1 - x2 + 3.1818181815 x3 <= 5
5
Looking inside Gomory Aussois, January 7-11 2008
solution cut side effects that are typically underestimated when just a few cuts are used within an enumeration scheme
as generate clean cuts in the next iterations
fractionality (possibly due to numerical inaccuracy) the corresponding LP basis has a large determinant (needed to describe the weird fractionality) the tableau contains weird entries that lead to weaker and weaker Gomory cuts
6
Looking inside Gomory Aussois, January 7-11 2008
convergence of the method…
(and tableau) among the equivalent optimal ones… Unfortunately, the highly-correlated sequence of reoptimization pivots performed by a generic LP solver leads invariably to an uncontrolled growth of the basis determinant method out of control after just a few iterations!
7
Looking inside Gomory Aussois, January 7-11 2008
lexicographic simplex to cope with degeneracy
simplex algorithm: – instead of considering the minimization of the objective function x0 = cT x – one is interested in the lexicographic minimization of the entire solution vector (x0,x1,…, xn)
and slow/unstable implementation
… also in practice?
8
Looking inside Gomory Aussois, January 7-11 2008
Cut# x0 x1 x2 x3 x4 x5 x6 x7 … 00) 5.000 0.333 0.333 0.333 0.333 0.333 0.333 0.333 …
...
05) 7.000 0.000 0.000 0.333 0.333 0.333 0.666 0.666 … 06) 7.000 0.000 0.071 0.785 0.428 0.500 0.428 0.214 … 07) 7.000 0.000 1.000 0.333 0.333 0.666 0.333 0.666 … 08) 7.000 0.030 0.969 0.696 0.606 0.121 0.303 0.272 … 09) 7.000 1.000 0.000 0.333 0.666 0.666 0.333 0.666 … 10) 7.000 1.000 0.025 0.743 0.230 0.435 0.538 0.333 … 11) 7.000 1.000 1.000 0.095 0.285 0.571 0.619 0.238 … 12) 7.000 1.000 1.000 1.000 0.333 0.333 0.333 0.333 … 13) 7.068 0.931 0.931 0.862 0.310 0.413 0.379 0.275 … 14) 8.000 0.000 0.000 0.000 0.000 0.000 1.000 … … ... 64) 8.000 1.000 1.000 1.000 1.000 1.000 1.000 0.500 … 65) 8.013 0.973 0.973 0.947 0.907 0.572 0.868 0.171 … 66) 9.000 0.000 0.000 0.000 0.000 0.000 1.000 1.000 … all integer!
9
Looking inside Gomory Aussois, January 7-11 2008
(left) x* trajectories (vertical axis: lower bound) (right) basis temperature = log(det(B))
10
Looking inside Gomory Aussois, January 7-11 2008
– Step 0. Optimize x0 --> optimal value x* – Step 1. Fix x0 = x*
0, and optimize x1 --> optimal value x* 1
– Step 2. Fix also x1 = x*
1, and optimize x2 --> optimal value x* 2
– ...
j
cost
smaller degeneracy subspaces, leading to the required lex-
11
Looking inside Gomory Aussois, January 7-11 2008
12
Looking inside Gomory Aussois, January 7-11 2008
method to produce stable Gomory cuts
Just a truncated lex. method on the arguably most-important variable – After the addition of a FGC, lex. minimize (x0,xi) where x*
i is the basic
fractional variable generating the FGC
Try to select optimal vertices where the previously generated FGCs are slack (having a cut slack into the basis avoids it appears in the cut- generation row and hence reduces cut correlation) – After the addition of the i-th FGC with slack variable si (say), try to keep all slacks s1,…,si inside the opt. basis by lex. minimizing (x0, -si,, …, -s2,-s1)
13
Looking inside Gomory Aussois, January 7-11 2008
previous pure cutting plane methods based on FGCs)
convergence.
space of the structural variables.
coefficient is integer or not: – a coefficient with fractional part smaller than 0.1 is rounded to its nearest integer – cuts with larger fractionality are viewed as unreliable and hence
discarded.
14
Looking inside Gomory Aussois, January 7-11 2008
Gomory's algorithm
hour of CPU time and a memory limit of 2GB for each instance
15
Looking inside Gomory Aussois, January 7-11 2008
16
Looking inside Gomory Aussois, January 7-11 2008
17
Looking inside Gomory Aussois, January 7-11 2008
18
Looking inside Gomory Aussois, January 7-11 2008
19
Looking inside Gomory Aussois, January 7-11 2008
kicking (max 100 MB memory)
20
Looking inside Gomory Aussois, January 7-11 2008
Upper bound (max problem; multi-cut version)
21
Looking inside Gomory Aussois, January 7-11 2008
Condition number of the optimal basis
22
Looking inside Gomory Aussois, January 7-11 2008
Average absolute value of cut coefficients
23
Looking inside Gomory Aussois, January 7-11 2008
24
Looking inside Gomory Aussois, January 7-11 2008
sed lex L e x , d u r a l e x