How to use your favorite MIP Solver: modeling, solving, cannibalizing Andrea Lodi

How to use your favorite MIP Solver:
modeling, solving, cannibalizing
Andrea Lodi
University of Bologna, Italy
andrea.lodi@unibo.it
January-February, 2012 @ Universit¨at Wien
A. Lodi, How to use your favorite MIP Solver
Setting
• We consider a general Mixed Integer Program in the form:
T
max{c x : Ax ≤ b, x ≥ 0, xj ∈ Z, ∀j ∈ I}
(1)
where matrix A does not have a special structure.
• Thus, the problem is solved through branch-and-bound and the bounds are computed by
iteratively solving the LP relaxations through a general-purpose LP solver.
• The course basically covers the MIP but we will try to discuss when possible how crucial is the
LP component (the engine), and how much the whole framework is built on top the capability
of effectively solving LPs.
• Roughly speaking, using the LP computation as a tool, MIP solvers integrate the
branch-and-bound and the cutting plane algorithms through variations of the general
branch-and-cut scheme [Padberg & Rinaldi 1987] developed in the context of the Traveling
Salesman Problem (TSP).
A. Lodi, How to use your favorite MIP Solver
1
Outline
1. The building blocks of a MIP solver.
We will run over the first 50 exciting years of MIP by showing some crucial milestones and we
will highlight the building blocks that are making nowadays solvers effective from both a
performance and an application viewpoint.
2. How to use a MIP solver as a sophisticated (heuristic) framework.
Nowadays MIP solvers should not be conceived as black-box exact tools. In fact, they provide
countless options for their smart use as hybrid algorithmic frameworks, which thing might turn
out especially interesting on the applied context. We will review some of those options and
possible hybridizations, including some real-world applications.
A. Lodi, How to use your favorite MIP Solver
2
Outline
1. The building blocks of a MIP solver.
We will run over the first 50 exciting years of MIP by showing some crucial milestones and we
will highlight the building blocks that are making nowadays solvers effective from both a
performance and an application viewpoint.
2. How to use a MIP solver as a sophisticated (heuristic) framework.
Nowadays MIP solvers should not be conceived as black-box exact tools. In fact, they provide
countless options for their smart use as hybrid algorithmic frameworks, which thing might turn
out especially interesting on the applied context. We will review some of those options and
possible hybridizations, including some real-world applications.
3. Modeling and algorithmic tips to make a solver effective in practice.
The capability of a solver to produce good, potentially optimal, solutions depends on the
selection of the right model and the use of the right algorithmic tools the solver provides. We
will discuss useful tips, from simple to sophisticated, which allow a smart use of a MIP solver.
Finally, we will show that this is NOT the end of the story and many challenges for MIP
technology are still to be faced.
A. Lodi, How to use your favorite MIP Solver
2
PART 3
1. The building blocks of a MIP solver
2. How to use a MIP solver as a sophisticated (heuristic) framework
3. Modeling and algorithmic tips to make a solver effective in practice
A. Lodi, How to use your favorite MIP Solver
3
PART 3
1. The building blocks of a MIP solver
2. How to use a MIP solver as a sophisticated (heuristic) framework
3. Modeling and algorithmic tips to make a solver effective in practice
• Outline:
– Solving difficult MIPs [heavily based on Klotz & Newman 2011, PART-II-2.pdf]
A. Lodi, How to use your favorite MIP Solver
3
PART 3
1. The building blocks of a MIP solver
2. How to use a MIP solver as a sophisticated (heuristic) framework
3. Modeling and algorithmic tips to make a solver effective in practice
• Outline:
– Solving
1. Lack
2. Lack
3. Lack
4. Lack
difficult MIPs [heavily based on Klotz & Newman 2011, PART-II-2.pdf]
of node throughput because of LP solving
in progress in the best (mixed-)integer solution
in progress in the best bound
of node throughput because of numerical instability
A. Lodi, How to use your favorite MIP Solver
3
PART 3
1. The building blocks of a MIP solver
2. How to use a MIP solver as a sophisticated (heuristic) framework
3. Modeling and algorithmic tips to make a solver effective in practice
• Outline:
– Solving
1. Lack
2. Lack
3. Lack
4. Lack
difficult MIPs [heavily based on Klotz & Newman 2011, PART-II-2.pdf]
of node throughput because of LP solving
in progress in the best (mixed-)integer solution
in progress in the best bound
of node throughput because of numerical instability
– MIP Challenges
A. Lodi, How to use your favorite MIP Solver
3
Solving difficult MIPs: four common reasons
• There are four common reasons that integer programs can require significant amount of
solution time.
A. Lodi, How to use your favorite MIP Solver
4
Solving difficult MIPs: four common reasons
• There are four common reasons that integer programs can require significant amount of
solution time.
1. There is lack of node throughput due to troublesome linear programming node solves.
A. Lodi, How to use your favorite MIP Solver
4
Solving difficult MIPs: four common reasons
• There are four common reasons that integer programs can require significant amount of
solution time.
1. There is lack of node throughput due to troublesome linear programming node solves.
2. There is lack of progress in the best integer solution, i.e., the lower bound.
A. Lodi, How to use your favorite MIP Solver
4
Solving difficult MIPs: four common reasons
• There are four common reasons that integer programs can require significant amount of
solution time.
1. There is lack of node throughput due to troublesome linear programming node solves.
2. There is lack of progress in the best integer solution, i.e., the lower bound.
3. There is lack of progress in the best upper bound.
A. Lodi, How to use your favorite MIP Solver
4
Solving difficult MIPs: four common reasons
• There are four common reasons that integer programs can require significant amount of
solution time.
1. There is lack of node throughput due to troublesome linear programming node solves.
2. There is lack of progress in the best integer solution, i.e., the lower bound.
3. There is lack of progress in the best upper bound.
4. There is insufficient node throughput due to numerical instability in the problem data or
excessive memory usage.
A. Lodi, How to use your favorite MIP Solver
4
249
However, conducting different runs in which the practitioner invokes, alternately, the primal or the
250
dual simplex method at the child nodes is a good idea. Consider the following two node logs, the
251
former corresponding
to solving
the root and child
node linearofprograms
with the dual simplex
Lack of node
throughput
because
LP solving
252
method and the latter with the primal simplex method.
253
Node Log #1: Node Linear Programs Solved with Dual Simplex
254
Nodes
Cuts/
Best Integer
ItCnt
Node
Left
Objective
IInf
0
0
-89.0000
6
-89.0000
5278
0
0
-89.0000
6
Fract: 4
12799
0
2
-89.0000
6
-89.0000
12799
1
1
infeasible
-89.0000
20767
2
2
-89.0000
-89.0000
27275
3
1
infeasible
-89.0000
32502
8
2
-89.0000
-89.0000
65717
9
1
infeasible
-89.0000
73714
5
Best Node
...
8
...
9
Solution time = 177.33 sec. Iterations = 73,714 Nodes = 10 (1)
A. Lodi, How to use your favorite MIP Solver
5
Solution time = 177.33 sec. Iterations = 73714
Nodes = 10 (1)
Lack of node throughput because of LP solving (cont.d)
255
256
Node Log #2: Node Linear Programs Solved with Primal Simplex
257
Nodes
Cuts/
Best Integer
ItCnt
Node
Left
Objective
IInf
0
0
-89.0000
5
-89.0000
6603
0
0
-89.0000
5
Fract: 5
7120
0
2
-89.0000
5
-89.0000
7120
1
1
infeasible
-89.0000
9621
2
2
-89.0000
-89.0000
10616
3
1
infeasible
-89.0000
12963
8
2
-89.0000
-89.0000
21522
9
1
infeasible
-89.0000
23891
5
Best Node
...
8
...
Solution time = 54.37 sec. Iterations = 23891
Nodes = 10 (1)
258
Solution
time = 54.37 sec. Iterations = 23,891 Nodes = 10 (1)
259
The iteration count for the root node solve shown in Node Log #1 that occurred without
260
any advanced start information indicates 5,278 iterations. Computing the average iteration count
261
across all node LP solves, there are 11 solves (10 nodes, and 1 extra solve for cut generation at node
262
0) and 73,714 iterations, which were performed in a total of 177 seconds. The summary output in
A. Lodi, How to use your favorite MIP Solver
6
Lack of node throughput because of LP solving (cont.d)
• Summary of the Dual Simplex output:
– 5,278 iterations without any advanced start information,
– overall 73,714 iterations and 177 seconds for 11 solves indicates approximately 6,701
iterations and 17 seconds per solve.
A. Lodi, How to use your favorite MIP Solver
7
Lack of node throughput because of LP solving (cont.d)
• Summary of the Dual Simplex output:
– 5,278 iterations without any advanced start information,
– overall 73,714 iterations and 177 seconds for 11 solves indicates approximately 6,701
iterations and 17 seconds per solve.
• Summary of the Primal Simplex output:
– 6,603 iterations without any advanced start information,
– overall 23,891 iterations and 54 seconds for 11 solves indicates approximately 2,172
iterations and 5 seconds per solve.
A. Lodi, How to use your favorite MIP Solver
7
Lack of node throughput because of LP solving (cont.d)
• Summary of the Dual Simplex output:
– 5,278 iterations without any advanced start information,
– overall 73,714 iterations and 177 seconds for 11 solves indicates approximately 6,701
iterations and 17 seconds per solve.
• Summary of the Primal Simplex output:
– 6,603 iterations without any advanced start information,
– overall 23,891 iterations and 54 seconds for 11 solves indicates approximately 2,172
iterations and 5 seconds per solve.
• Thus, with the dual Simplex any solve subsequent to the first one requires 6,844 = (73,714 5,278)/10 iterations, which is higher than the 5,278 iterations required for the first solve!
• Any time this is true, or even when the average node LP iteration count is more than 30-50%
of the root node iteration count, an opportunity for improving node LP solve times exists by
changing algorithms or algorithmic settings.
A. Lodi, How to use your favorite MIP Solver
7
Lack of node throughput because of LP solving (cont.d)
• Summary of the Dual Simplex output:
– 5,278 iterations without any advanced start information,
– overall 73,714 iterations and 177 seconds for 11 solves indicates approximately 6,701
iterations and 17 seconds per solve.
• Summary of the Primal Simplex output:
– 6,603 iterations without any advanced start information,
– overall 23,891 iterations and 54 seconds for 11 solves indicates approximately 2,172
iterations and 5 seconds per solve.
• Thus, with the dual Simplex any solve subsequent to the first one requires 6,844 = (73,714 5,278)/10 iterations, which is higher than the 5,278 iterations required for the first solve!
• Any time this is true, or even when the average node LP iteration count is more than 30-50%
of the root node iteration count, an opportunity for improving node LP solve times exists by
changing algorithms or algorithmic settings.
• Indeed, in the primal Simplex case, any additional solve requires only 1,729 iterations, which is
much smaller than the 6,603 of the first solve.
A. Lodi, How to use your favorite MIP Solver
7
was 623 seconds. So, the time to obtain the first solution is faster by providing an initial feasible
314
317
315
solution, and if we let the algorithm with the initial solution run for an additional 1589 − 623 = 966
Node Log #4: No initial practitioner-supplied solution
seconds, the gap for the instance with the initial solution improves to 1.53%.
318
316
! Root relaxation
solution in
timethe
= 131.45
Lack
in progress
bestsec.(mixed-)integer solution
317
!
Node Log #4: No initial practitioner-supplied solution
Nodes
Cuts/
318
Root
relaxation
solution
timeIInf
= 131.45
Node
Left
Objective
Best sec.
Integer
0 Nodes
0
1.09590e+07
2424
Best Integer
Best Node
ItCnt
Cuts/
1.09590e+07
108111
Best
Node4
Cuts:
ItCnt
108510
Node
0
Left
0
Objective
1.09570e+07
IInf
2531
0
0
1.09405e+07
2476
Cuts: 2
109208
0
0
1.09590e+07
Heuristic
still
looking.
2424
1.09590e+07
108111
0
0
1.09570e+07
Heuristic
still
looking.
2531
Cuts: 4
108510
0
0
1.09405e+07
Heuristic
still
looking.
2476
Cuts: 2
109208
Gap
Gap
Heuristic still looking.
Heuristic still looking.
Heuristic
still
looking.
0
2
1.09405e+07
!
2476
1.09405e+07
Heuristic
still
Elapsed
real
timelooking.
= 384.09 sec. (tree size =
Heuristic
still
looking.
1
3
1.08913e+07
20
42
*
1277
1.09405e+07
109673
1.09405e+07 2326
2476
1.09261e+07
1.09405e+07
109208
109977
1.05554e+07
225
1880+ 1300
1880
1302
0.01 MB)
2488
Elapsed real time = 384.09 sec. (tree size =
...
12
1
3
1.08913e+07 2488
1776 1208
1.05645e+07
27
2 1246
4
1.09261e+07 2326
1814
1.05588e+07
31
1847
1.05474e+07
228
!
0.01 MB)
1.09405e+07
109673
1.09164e+07
474242
1.09405e+07 478648
109977
1.09164e+07
12
1.04780e+07
1.09164e+07
484687
1.09164e+07
491469
4.18%
1.04780e+07
1.09164e+07
491469
4.18%
Elapsed real time = 1589.38 sec. (tree size = 63.86 MB)
!
319
!
320 !
!
321
109208
A. Lodi, How to use your favorite MIP Solver
Node Log #5: An initial solution supplied by the practitioner
!
8
1880
1302
1.05474e+07
228
1.04780e+07
1.09164e+07
491469
4.18%
Elapsed real time = 1589.38 sec. (tree size = 63.86 MB)
Lack in progress in the best (mixed-)integer solution (cont.d)
319
320
Node Log #5: An initial solution supplied by the practitioner
321
Root relaxation solution time =
93.92 sec.
Nodes
Node
*
Left
Cuts/
Objective
IInf
Best Integer
Best Node
1.07197e+07
ItCnt
Gap
108111
---
0+
0
0
0
1.09590e+07
2424
1.07197e+07
1.09590e+07
108111
2.23%
0
0
1.09570e+07
2531
1.07197e+07
Cuts: 4
108538
2.21%
485
433
1.09075e+07
2398
1.07197e+07
1.08840e+07
244077
1.53%
487
434
1.08237e+07
2303
1.07197e+07
1.08840e+07
244350
1.53%
497
439
1.08637e+07
1638
1.07197e+07
1.08840e+07
245391
1.53%
...
Elapsed real time = 750.11 sec. (tree size = 32.61 MB)
501
443
1.08503e+07
1561
1.07197e+07
1.08840e+07
245895
1.53%
...
Elapsed real time = 984.03 sec. (tree size = 33.00 MB)
1263
674
1.08590e+07
2574
1.07197e+07
1.08840e+07
314814
1.53%
322
323
A. Lodi, How to use your favorite MIP Solver
In the absence of a readily identifiable initial solution, various branching strategies can aid in
9
Figure 2: Convex hull
Lack in progress in the best bound
Node log #6 exemplifies progress in best integer solution but not in the best bound:
361
362
Node Log #6: Progress in Best Integer Solution but not in the Best Bound
363
Nodes
364
365
Cuts/
ItCnt
Gap
Node
Left
Objective
IInf
Best Integer
Best Node
300
296
2018.0000
27
3780.0000
560.0000
3703
85.19%
366
367
368
*
300+
296
0
2626.0000
560.0000
3703
78.67%
369
*
393
368
0
2590.0000
560.0000
4405
78.38%
370
400
372
560.0000
291
2590.0000
560.0000
4553
78.38%
371
500
472
810.0000
175
2590.0000
560.0000
5747
78.38%
0
1710.0000
560.0000
66026
67.25%
372
...
373
* 7740+
5183
374
7800
5240
1544.0000
110
1710.0000
560.0000
66279
67.25%
375
7900
5325
944.0000
176
1710.0000
560.0000
66801
67.25%
376
8000
5424
1468.0000
93
1710.0000
560.0000
67732
67.25%
377
15
A. Lodi, How to use your favorite MIP Solver
10
Lack in progress in the best bound (cont.d)
• Most solvers offer parameter settings that can help improve progress of the best node or
tighten the formulation of the model by moving the value of the linear programming relaxation
closer to that of the optimal integer objective.
A. Lodi, How to use your favorite MIP Solver
11
Lack in progress in the best bound (cont.d)
• Most solvers offer parameter settings that can help improve progress of the best node or
tighten the formulation of the model by moving the value of the linear programming relaxation
closer to that of the optimal integer objective.
Especially,
–
–
–
–
Best-bound-first node selection.
Strong Branching.
Probing.
More aggressive levels of cut generation.
A. Lodi, How to use your favorite MIP Solver
11
Lack in progress in the best bound (cont.d)
• Most solvers offer parameter settings that can help improve progress of the best node or
tighten the formulation of the model by moving the value of the linear programming relaxation
closer to that of the optimal integer objective.
Especially,
–
–
–
–
Best-bound-first node selection.
Strong Branching.
Probing.
More aggressive levels of cut generation.
• If those mechanisms fail, then the user must carefully look at the model and
– Change model formulation by using alternate variable definitions.
A. Lodi, How to use your favorite MIP Solver
11
Lack in progress in the best bound (cont.d)
• Most solvers offer parameter settings that can help improve progress of the best node or
tighten the formulation of the model by moving the value of the linear programming relaxation
closer to that of the optimal integer objective.
Especially,
–
–
–
–
Best-bound-first node selection.
Strong Branching.
Probing.
More aggressive levels of cut generation.
• If those mechanisms fail, then the user must carefully look at the model and
– Change model formulation by using alternate variable definitions.
– Revisit the use of elastic/indicator variables, i.e., those relaxing a constraint by allowing for
violations (penalized in the objective function).
A. Lodi, How to use your favorite MIP Solver
11
Lack in progress in the best bound (cont.d)
• Most solvers offer parameter settings that can help improve progress of the best node or
tighten the formulation of the model by moving the value of the linear programming relaxation
closer to that of the optimal integer objective.
Especially,
–
–
–
–
Best-bound-first node selection.
Strong Branching.
Probing.
More aggressive levels of cut generation.
• If those mechanisms fail, then the user must carefully look at the model and
– Change model formulation by using alternate variable definitions.
– Revisit the use of elastic/indicator variables, i.e., those relaxing a constraint by allowing for
violations (penalized in the objective function).
– Look at additional cutting planes either within the standard families that might not having
been discovered by the solver or specific for the model at hands.
A. Lodi, How to use your favorite MIP Solver
11
Lack in progress in the best bound (cont.d)
• Let us consider again cut generation and the following small MIP:
max 3x1 + 2x2 + x3 + 2x4 + x5
(2)
x1 + x2 ≤ 1
(3)
x1 + x3 ≤ 1
(4)
x2 + x3 ≤ 1
(5)
4x3 + 3x4 + 5x5 ≤ 10
(6)
x1 + 3x4 ≤ 2
(7)
3x2 + 4x5 ≤ 5
(8)
5
(9)
subject to
x ∈ {0, 1}
A. Lodi, How to use your favorite MIP Solver
12
Lack in progress in the best bound (cont.d)
• Adding cuts does not always help branch-and-bound performance.
A. Lodi, How to use your favorite MIP Solver
13
Lack in progress in the best bound (cont.d)
• Adding cuts does not always help branch-and-bound performance.
• While it can remove integer infeasibilities, it also results in more constraints in each node LP.
• More constraints can increase the intractability of these LPs. Without a commensurate
speed-up in solution time associated with processing fewer nodes, cuts may not be worth
adding.
A. Lodi, How to use your favorite MIP Solver
13
Lack in progress in the best bound (cont.d)
• Adding cuts does not always help branch-and-bound performance.
• While it can remove integer infeasibilities, it also results in more constraints in each node LP.
• More constraints can increase the intractability of these LPs. Without a commensurate
speed-up in solution time associated with processing fewer nodes, cuts may not be worth
adding.
• Some solvers have internal logic to automatically assess the trade-offs between adding cuts and
node LP solve time. However, if the solver lacks such logic or fails to make a good decision, the
user may need to look at the branch-and-bound output.
A. Lodi, How to use your favorite MIP Solver
13
Lack in progress in the best bound (cont.d)
• Adding cuts does not always help branch-and-bound performance.
• While it can remove integer infeasibilities, it also results in more constraints in each node LP.
• More constraints can increase the intractability of these LPs. Without a commensurate
speed-up in solution time associated with processing fewer nodes, cuts may not be worth
adding.
• Some solvers have internal logic to automatically assess the trade-offs between adding cuts and
node LP solve time. However, if the solver lacks such logic or fails to make a good decision, the
user may need to look at the branch-and-bound output.
• In other cases, the computational effort required to derive the cuts needed to effectively solve
the model may exceed the performance benefit they provide.
A. Lodi, How to use your favorite MIP Solver
13
Lack of node throughput because of numerical instability
• Because the solver solves LPs at each node of the branch-and-bound tree, the practitioner must
be careful to avoid LP numerical performance issues (see, Section 3 of Klotz and Newman,
reading material PART-II-1.pdf).
A. Lodi, How to use your favorite MIP Solver
14
Lack of node throughput because of numerical instability
• Because the solver solves LPs at each node of the branch-and-bound tree, the practitioner must
be careful to avoid LP numerical performance issues (see, Section 3 of Klotz and Newman,
reading material PART-II-1.pdf).
• Especially important is avoiding, when possible, large differences in orders of magnitude in data
to preclude the introduction of unnecessary round-off error. Such differences of input values
create round-off error in floating point calculations that makes it difficult for the algorithm to
distinguish between this error and a legitimate value [Koch et al. 2011].
A. Lodi, How to use your favorite MIP Solver
14
Lack of node throughput because of numerical instability
• Because the solver solves LPs at each node of the branch-and-bound tree, the practitioner must
be careful to avoid LP numerical performance issues (see, Section 3 of Klotz and Newman,
reading material PART-II-1.pdf).
• Especially important is avoiding, when possible, large differences in orders of magnitude in data
to preclude the introduction of unnecessary round-off error. Such differences of input values
create round-off error in floating point calculations that makes it difficult for the algorithm to
distinguish between this error and a legitimate value [Koch et al. 2011].
• Elastic/indicator variables (refereed to as “big-M ’s”) correspond to logic expressions as “if
z = 0, then x = 0”, which are imposed through the use of arbitrary large coefficients
x − 100000000000z ≤ 0
(10)
0 ≤ x ≤ 5000; z binary
(11)
A. Lodi, How to use your favorite MIP Solver
14
Lack of node throughput because of numerical instability
• Because the solver solves LPs at each node of the branch-and-bound tree, the practitioner must
be careful to avoid LP numerical performance issues (see, Section 3 of Klotz and Newman,
reading material PART-II-1.pdf).
• Especially important is avoiding, when possible, large differences in orders of magnitude in data
to preclude the introduction of unnecessary round-off error. Such differences of input values
create round-off error in floating point calculations that makes it difficult for the algorithm to
distinguish between this error and a legitimate value [Koch et al. 2011].
• Elastic/indicator variables (refereed to as “big-M ’s”) correspond to logic expressions as “if
z = 0, then x = 0”, which are imposed through the use of arbitrary large coefficients
x − 100000000000z ≤ 0
(10)
0 ≤ x ≤ 5000; z binary
(11)
• However, the coefficient 1011 can be safely and effectively replaced by 5000, which forbids a
solution in which z = 10−8 and x = 1000 from being feasible.
A. Lodi, How to use your favorite MIP Solver
14
Tightening the formulation
• As anticipated, sometimes the user might be required to add problem-specific cutting planes.
A. Lodi, How to use your favorite MIP Solver
15
Tightening the formulation
• As anticipated, sometimes the user might be required to add problem-specific cutting planes.
However, before doing that, it is often useful to identify elements of the model making it
difficult, specifically, those that contain the constraints and variables from which useful cuts can
be derived.
A. Lodi, How to use your favorite MIP Solver
15
Tightening the formulation
• As anticipated, sometimes the user might be required to add problem-specific cutting planes.
However, before doing that, it is often useful to identify elements of the model making it
difficult, specifically, those that contain the constraints and variables from which useful cuts can
be derived.
– Simplify the model if necessary.
For example, try to identify any constraints or integrality restrictions that are not involved in
the slow performance by systematically removing constraints and restrictions and solving the
resulting model.
A. Lodi, How to use your favorite MIP Solver
15
Tightening the formulation
• As anticipated, sometimes the user might be required to add problem-specific cutting planes.
However, before doing that, it is often useful to identify elements of the model making it
difficult, specifically, those that contain the constraints and variables from which useful cuts can
be derived.
– Simplify the model if necessary.
For example, try to identify any constraints or integrality restrictions that are not involved in
the slow performance by systematically removing constraints and restrictions and solving the
resulting model.
– Identify the constraints that prevent the objective from improving.
With a maximization problem, this typically means identifying the constraints that force
prizes not to be gained.
A. Lodi, How to use your favorite MIP Solver
15
Tightening the formulation
• As anticipated, sometimes the user might be required to add problem-specific cutting planes.
However, before doing that, it is often useful to identify elements of the model making it
difficult, specifically, those that contain the constraints and variables from which useful cuts can
be derived.
– Simplify the model if necessary.
For example, try to identify any constraints or integrality restrictions that are not involved in
the slow performance by systematically removing constraints and restrictions and solving the
resulting model.
– Identify the constraints that prevent the objective from improving.
With a maximization problem, this typically means identifying the constraints that force
prizes not to be gained.
– Determine how removing integrality restrictions allows the root node relaxation to improve.
In weak formulations, the root node relaxation objective tends to be significantly better than
the optimal objective of the associated MIP. The variables with fractional solutions in the
root node relaxation help identify the constraints and variables that motivate additional cuts.
A. Lodi, How to use your favorite MIP Solver
15
Tightening the formulation (cont.d)
• Model characteristics from which to derive cuts are
A. Lodi, How to use your favorite MIP Solver
16
Tightening the formulation (cont.d)
• Model characteristics from which to derive cuts are
– Linear or logical combinations of constraints.
As discussed, combination of constraints is the base of current cut generation techniques.
The knowledge of the problem at hand can suggest which constraints should be combined.
A. Lodi, How to use your favorite MIP Solver
16
Tightening the formulation (cont.d)
• Model characteristics from which to derive cuts are
– Linear or logical combinations of constraints.
As discussed, combination of constraints is the base of current cut generation techniques.
The knowledge of the problem at hand can suggest which constraints should be combined.
– The optimization of one or more related models.
Extract a small(er) instance with same characteristics of the problem at hand to play with is
often very instructive.
A. Lodi, How to use your favorite MIP Solver
16
Tightening the formulation (cont.d)
• Model characteristics from which to derive cuts are
– Linear or logical combinations of constraints.
As discussed, combination of constraints is the base of current cut generation techniques.
The knowledge of the problem at hand can suggest which constraints should be combined.
– The optimization of one or more related models.
Extract a small(er) instance with same characteristics of the problem at hand to play with is
often very instructive.
– Use of the incumbent solution objective value.
Template cuts are based on detecting infeasibilities, while optimality cuts might lead in some
special cases to effective partitions of the solution space.
A. Lodi, How to use your favorite MIP Solver
16
Tightening the formulation (cont.d)
• Model characteristics from which to derive cuts are
– Linear or logical combinations of constraints.
As discussed, combination of constraints is the base of current cut generation techniques.
The knowledge of the problem at hand can suggest which constraints should be combined.
– The optimization of one or more related models.
Extract a small(er) instance with same characteristics of the problem at hand to play with is
often very instructive.
– Use of the incumbent solution objective value.
Template cuts are based on detecting infeasibilities, while optimality cuts might lead in some
special cases to effective partitions of the solution space.
– Disjunctions.
A. Lodi, How to use your favorite MIP Solver
16
Tightening the formulation (cont.d)
• Model characteristics from which to derive cuts are
– Linear or logical combinations of constraints.
As discussed, combination of constraints is the base of current cut generation techniques.
The knowledge of the problem at hand can suggest which constraints should be combined.
– The optimization of one or more related models.
Extract a small(er) instance with same characteristics of the problem at hand to play with is
often very instructive.
– Use of the incumbent solution objective value.
Template cuts are based on detecting infeasibilities, while optimality cuts might lead in some
special cases to effective partitions of the solution space.
– Disjunctions.
– The exploitation of infeasibility.
Infeasibility considerations on the model might allow to remove useless pieces of the search
tree.
A. Lodi, How to use your favorite MIP Solver
16
Tightening the formulation, Example 1
• The very small MIP
13429x1 + 26850x2 + 26855x3 + 40280x4
+
40281x5 + 53711x6 + 53714x7 + 67141x8
=
xj ≥ 0, integer, j = 1, . . . , 8
45094583
(12)
(13)
presents the following (disappointing) computational behavior:
A. Lodi, How to use your favorite MIP Solver
17
644
645
Running CPLEX 12.2.0.2 with default settings results in no conclusion after over 7 hours and
2 billion nodes, as illustrated in Node Log #7:
Tightening the formulation, Example 1 (cont.d)
646
647
Node Log #7
Nodes
648
649
650
651
652
Node
Cuts/
Left
Objective
IInf
2054970910 13066
0.0000
1
Best Integer
Best Node
ItCnt
...
Elapsed real time = 27702.98 sec. (tree size =
0.0000 25234328
2.70 MB, solutions = 0)
653
2067491472 14446
0.0000
1
0.0000 25388082
654
2080023238 12892
0.0000
1
0.0000 25542160
655
2092548561 15366
0.0000
1
0.0000 25696280
656
...
-------
657
658
Gap
Total (root+branch&cut) = 28302.29 sec.
659
660
661
MIP - Node limit exceeded, no integer solution.
662
Current MIP best bound =
663
Solution time = 28302.31 sec.
0.0000000000e+00 (gap is infinite)
Iterations = 25787898
Nodes = 2100000004 (16642)
664
665
However, note that all the coefficients in the model are very close to integer multiples of the
666
coefficient of x1 . Therefore, we can separate the left hand side into the part that is an integer
667
multiple of this coefficient, and the much smaller remainder terms:
A. Lodi, How to use your favorite MIP Solver
18
x
ˆ ≥ 3359 ⇒ −8x2 − 3x3 − 7x4 − 6x5 − 5x6 − 2x7 − 4x8 ≤ −13428
674
675
(23)
This analysis shows that we either have an infeasible model, or that constraints (24) (using the
Tightening the formulation, Example 1 (cont.d)
infeasibility argument above) and (25) (multiplying 23 through by -1) are globally valid cuts.
x + 2x + 2x + 3x + 3x + 4x + 4x + 5x ≥ 3359
(24)
8x2 + 3x3 + 7x4 + 6x5 + 5x6 + 2x7 + 4x8 ≥ 13428
(25)
1
4
5
6
7
8
• The behavior is then improved
by2 the3 addition
of the
two
cuts
x1 + 2x2 + 2x3 + 3x4 + 3x5 + 4x6 + 4x7 + 5x8 ≥ 3359
(14)
+ 3x3 + 7x4 + 6x5 + 5x6 + 2x7 + 4x8 ≥ 13428
(15)
676
Adding these cuts enables CPLEX 12.2.0.2 to easily identify that the model is infeasible (see Node
677
Log #8).
8x2
678
679
Node Log #8
680
Nodes
681
Cuts/
Node
Left
Objective
IInf
684
0
0
0.0000
685
0
0
686
0
687
0
682
Best Integer
Best Node
ItCnt
1
0.0000
1
0.0000
2
MIRcuts: 1
3
0
0.0000
2
MIRcuts: 1
5
0
cutoff
Gap
683
5
688
Elapsed real time =
0.23 sec. (tree size =
689
Mixed integer rounding cuts applied:
690
...
691
MIP - Integer infeasible.
692
Current MIP best bound is infinite.
693
Solution time =
0.46 sec.
0.00 MB, solutions = 0)
1
Iterations = 5
Nodes = 0
28
A. Lodi, How to use your favorite MIP Solver
19
Tightening the formulation, Example 2
• The following Mixed Integer Quadratic Program
max
n
n
X
X
dij xixj
(16)
xj ≤ k
(17)
n
(18)
i=1 j=i+1
n
X
subject to
j=1
x ∈ {0, 1}
can be classically reformulated as a MIP by binary variables zij = xixj and constraints
zij
≤
xi ,
∀i, j
(19)
zij
≤
xj ,
∀i, j
(20)
xi + xj
≤
1 + zij
∀i, j.
(21)
• The performance of Cplex solver are as follows.
A. Lodi, How to use your favorite MIP Solver
20
723
hours, terminating when the size of the swap file for the branch-and-bound tree exceeds memory
724
limits. At that point the solution has an objective value of 3483.0000, proven to be within 51.32% of
! optimal. Although we do not provide the output here, the original MIQP formulation in (M IQP )
726 ! performs even worse.
!
727
!
725
Tightening the formulation, Example 2 (cont.d)
Node Log #9
728
Nodes
729
Node
730
Cuts/
Left
Objective
IInf
Best Integer
Best Node
ItCnt
Gap
2247
---
731
732
*
733
734
*
0+
0
0
0
0+
0.0000
7640.4000
1830
0.0000
7640.4000
2247
---
0
19.0000
7640.4000
2247
---
0+
0
3185.0000
7445.4286
2286
133.77%
0
2
3185.0000
7445.4286
2286
133.77%
735
736
...
737
738
*
739
740
Elapsed real time =
35
741
742
743
744
746
745
747
7628.5333
37
1829
4.09 sec. (tree size =
6579.2308
1378
3185.0000
7445.4286
6615
133.77%
...
4332613 3675298
4936.6750
1099
3483.0000
5270.8377 1.78e+08
51.33%
4341075 3682375
...
3889.4643
714
3483.0000
5270.4545 1.79e+08
51.32%
CPLEX Error
!
1803: Failure on temporary file write.
748
749
0.01 MB, solutions = 8)
30
Solution pool: 25 solutions saved.
750
751
MIP - Error termination, no tree:
752
Current MIP best bound =
753
Solution time = 15031.18 sec.
754
755
756
757
Objective =
3.4830000000e+03
5.2704102564e+03 (gap = 1787.41, 51.32%)
Iterations = 178699476
Nodes = 4342299 (3682262)
!
!
!
!
Experimentation with non-default parameter settings as described in Section 3 yields modest
!
to enabling
A. Lodi, but
Howdoes
to not
usecome
yourclose
favorite
MIP CPLEX
Solver to find an optimal solution
! performance improvements,
to the model.
21
797
795
!
798
796
!
797
!
799
798
!
800
!
799
!
best node value that was essential to solving the model to optimality in a reasonable amount of
!the cut. Furthermore, the cut enabled CPLEX to add numerous zero-half cuts to the model that
time.
could not with the original formulation. The zero-half cuts resulted in additional progress in the
!it
!
!best node value that was essential to solving the model to optimality in a reasonable amount of
!
!
!time.
Node Log #10
!
Nodes
Cuts/
!
Tightening the formulation, Example 2, improved
Node
Node Log
Left#10 Objective
800
IInf
Best Integer
Nodes
*
0+ Left
0
Node
0
0
*
0+
0
...
0
0
*
0+
0
...
0
2
Gap
Objective
IInf
0.0000
Best Integer
Best Node
1161
ItCnt
--Gap
4552.4000
750
0.0000
4552.4000
1161
---
6.0000
0.0000
4552.4000
1161
---
0.0000
4552.4000
1161
---
3477.0000
6.0000
3924.7459
4552.4000
37882
1161
12.88%
---
3477.0000
3924.7459
37882
12.88%
51.42 sec. (tree 3477.0000
size = 0.01 MB,
solutions 37882
= 31)
3924.7459
12.88%
4552.4000
3924.7459
750
1281
39886
37882
12.88%
12.88%
2 real4time =
3910.8201
1243
3477.0000
3924.7459
Elapsed
51.42 sec.
(tree size
= 0.01 MB,
solutions =42289
31)
12.88%
3
1
3
2
ItCnt
Cuts/
Elapsed
*
0+real0time =
1
0
Best Node
5
3
3919.3378 1281
1212
3924.7459
3910.8041 1212
1144
3919.3378
3477.0000
3477.0000
3477.0000
3477.0000
3924.7459
3924.7459
3919.3355
3924.7459
44070
39886
12.72%
12.88%
...
2
4
3910.8201 1243
3477.0000
3924.7459
42289
12.88%
125571 7819
cutoff
3590.0000
3599.7046 60456851
0.27%
3
5
3910.8041 1144
3477.0000
3919.3355
44070
12.72%
33
Elapsed real time = 9149.19 sec. (tree size = 234.98 MB, solutions = 43)
...
Nodefile
size = 196.38
MB (168.88 MB after
compression)
125571 7819
cutoff
3590.0000
3599.7046 60456851
0.27%
33
*126172 real
7231time =integral
60571398
Elapsed
9149.19 sec.0(tree3591.0000
size = 234.98 3599.7046
MB, solutions
= 43) 0.24%
127700 size
5225 = 196.38
cutoff
3591.0000
3598.0159 60769494
Nodefile
MB (168.88 MB after
compression)
131688 7231
6
cutoff
3591.0000
3592.5939 60571398
60980430
*126172
integral
0
3591.0000
3599.7046
127700 5225
cutoff
Zero-half
cuts
2244
131688
6 applied:
cutoff
!
!
0.20%
0.04%
0.24%
3591.0000
3598.0159 60769494
0.20%
3591.0000
3592.5939 60980430
0.04%
Solution
solutions
saved.
Zero-halfpool:
cuts 44
applied:
2244
!
MIP - Integer
solution:
Objective = 3.5910000000e+03
Solution
pool:optimal
44 solutions
saved.
Solution time = 9213.79 sec. Iterations = 60980442 Nodes = 131695
!
!
! MIP - Integer optimal solution: Objective = 3.5910000000e+03
!
801
sec. Iterations = 60980442 Nodes = 131695
!
! Solution time =A.9213.79
Lodi,
How
to use ayour
MIP
Solver
802
Given
the
modest
size
of
the model,
run favorite
time of 2.5
hours
to optimality suggests potential
!
803 ! for additional improvements in the formulation. However, by adding one globally valid cut, we see
801
22
MIP Challenges
• Overall, a big challenge from both performance and modeling viewpoints is accuracy, which is
somehow a new issue, i.e., an old issue that starts to be very important after realizing that MIP
solvers can now really solve the problems.
A. Lodi, How to use your favorite MIP Solver
23
MIP Challenges
• Overall, a big challenge from both performance and modeling viewpoints is accuracy, which is
somehow a new issue, i.e., an old issue that starts to be very important after realizing that MIP
solvers can now really solve the problems.
The MIPlib 2010 paper [Koch et al. 2011] includes, for the first time, scripts to run automated
tests in a predefined way, and a solution checker to test the accuracy of provided solutions
using exact arithmetic.
A. Lodi, How to use your favorite MIP Solver
23
MIP Challenges
• Overall, a big challenge from both performance and modeling viewpoints is accuracy, which is
somehow a new issue, i.e., an old issue that starts to be very important after realizing that MIP
solvers can now really solve the problems.
The MIPlib 2010 paper [Koch et al. 2011] includes, for the first time, scripts to run automated
tests in a predefined way, and a solution checker to test the accuracy of provided solutions
using exact arithmetic.
• Some difficult MIPs are encountered because of:
– bad modeling, i.e.,
∗ the model has numerical difficulties,
∗ the MIP modeling capability is not sufficient wrt the real problem;
– large size;
– knapsack constraints with huge coefficients and general-integer variables with large bounds;
– scheduling components with disjunctive constraints and fundamental continuous variables.
A. Lodi, How to use your favorite MIP Solver
23
MIP Challenges, performance
• The performance of MIP solvers can/must be improved in many different directions.
A. Lodi, How to use your favorite MIP Solver
24
MIP Challenges, performance
• The performance of MIP solvers can/must be improved in many different directions.
Among them, my favorite ones are:
– branching vs cutting
– sophisticated techniques for general-integer and continuous variables
– performance variability
– revisiting good “old” methods
– cutting plane exploitation
– symmetric MIPs
A. Lodi, How to use your favorite MIP Solver
24
MIP Challenges: branching vs cutting
αT x = α0
αT x = α0 + 1
x∗
-
A. Lodi, How to use your favorite MIP Solver
25
MIP Challenges: branching vs cutting
αT x = α0
αT x = α0 + 1
x∗
-
R
/
A. Lodi, How to use your favorite MIP Solver
25
MIP Challenges: branching vs cutting
αT x = α0
αT x = α0 + 1
x∗
-
β T x = β0
x∗
W
W
/
x
∗,1
x
∗,2
R
first wisdom
A. Lodi, How to use your favorite MIP Solver
25
MIP Challenges: branching vs cutting
αT x = α0
αT x = α0 + 1
x∗
αT x = α0 + 1
αT x = α0
-
x∗
@
@
@
β T x = β0
@
@
@
β T x = β0
x∗
@
@
@
B
BN
@
@
W
@
W
/
x
∗,1
x
∗,2
@
R
R
/
N
first wisdom
A. Lodi, How to use your favorite MIP Solver
25
MIP Challenges: branching vs cutting
αT x = α0
αT x = α0 + 1
x∗
αT x = α0 + 1
αT x = α0
-
x∗
@
@
@
β T x = β0
@
@
@
β T x = β0
x∗
@
@
@
B
BN
@
@
W
@
W
/
x
∗,1
x
∗,2
@
R
R
/
N
first wisdom
A. Lodi, How to use your favorite MIP Solver
25
MIP Challenges: branching vs cutting
αT x = α0
αT x = α0 + 1
x∗
αT x = α0 + 1
αT x = α0
-
x∗
@
@
@
β T x = β0
@
@
@
β T x = β0
x∗
@
@
@
B
BN
@
@
W
@
W
/
x
∗,1
x
∗,2
@
R
R
/
N
second wisdom
first wisdom
A. Lodi, How to use your favorite MIP Solver
25
MIP Challenges, branching vs cutting (cont.d)
• The previous slide highlights a possibility of using traditional cutting plane theory in the
branching context [Karamanov & Cornu´ejols 2005, 2010]
A. Lodi, How to use your favorite MIP Solver
26
MIP Challenges, branching vs cutting (cont.d)
• The previous slide highlights a possibility of using traditional cutting plane theory in the
branching context [Karamanov & Cornu´ejols 2005, 2010]
• It seems that a better coordination of these two fundamental ingredients of the MIP solvers is
crucial for strong improvements.
A. Lodi, How to use your favorite MIP Solver
26
MIP Challenges, branching vs cutting (cont.d)
• The previous slide highlights a possibility of using traditional cutting plane theory in the
branching context [Karamanov & Cornu´ejols 2005, 2010]
• It seems that a better coordination of these two fundamental ingredients of the MIP solvers is
crucial for strong improvements.
• In the context of hard knapsack constraints branching on variables is not effective while (pure)
basis reduction methods have proven to be very powerful [Eisenbrand; Aardal; Pataki; . . . ].
A. Lodi, How to use your favorite MIP Solver
26
MIP Challenges, branching vs cutting (cont.d)
• The previous slide highlights a possibility of using traditional cutting plane theory in the
branching context [Karamanov & Cornu´ejols 2005, 2010]
• It seems that a better coordination of these two fundamental ingredients of the MIP solvers is
crucial for strong improvements.
• In the context of hard knapsack constraints branching on variables is not effective while (pure)
basis reduction methods have proven to be very powerful [Eisenbrand; Aardal; Pataki; . . . ].
• On the other hand, a tight integration of basis reduction techniques within MIP solvers has not
yet been achieved. One possibility for such an integration is the use of partial reformulations
but an intriguing option is exploiting these reformulations to generate cuts in the original space
of variables [Aardal & Wolsey 2009].
A. Lodi, How to use your favorite MIP Solver
26
MIP Challenges, branching vs cutting (cont.d)
• The previous slide highlights a possibility of using traditional cutting plane theory in the
branching context [Karamanov & Cornu´ejols 2005, 2010]
• It seems that a better coordination of these two fundamental ingredients of the MIP solvers is
crucial for strong improvements.
• In the context of hard knapsack constraints branching on variables is not effective while (pure)
basis reduction methods have proven to be very powerful [Eisenbrand; Aardal; Pataki; . . . ].
• On the other hand, a tight integration of basis reduction techniques within MIP solvers has not
yet been achieved. One possibility for such an integration is the use of partial reformulations
but an intriguing option is exploiting these reformulations to generate cuts in the original space
of variables [Aardal & Wolsey 2009].
• Branching on appropriate disjunctions has been recently proposed in the context of highly
symmetric MIPs [Ostrowsky, Linderoth, Rossi & Smriglio 2009].
A. Lodi, How to use your favorite MIP Solver
26
MIP Challenges, branching vs cutting (cont.d)
• The previous slide highlights a possibility of using traditional cutting plane theory in the
branching context [Karamanov & Cornu´ejols 2005, 2010]
• It seems that a better coordination of these two fundamental ingredients of the MIP solvers is
crucial for strong improvements.
• In the context of hard knapsack constraints branching on variables is not effective while (pure)
basis reduction methods have proven to be very powerful [Eisenbrand; Aardal; Pataki; . . . ].
• On the other hand, a tight integration of basis reduction techniques within MIP solvers has not
yet been achieved. One possibility for such an integration is the use of partial reformulations
but an intriguing option is exploiting these reformulations to generate cuts in the original space
of variables [Aardal & Wolsey 2009].
• Branching on appropriate disjunctions has been recently proposed in the context of highly
symmetric MIPs [Ostrowsky, Linderoth, Rossi & Smriglio 2009].
• Finally, the use of bilevel programming for computing strong multiple disjunctions (i.e.,
disjunctions involving more than 2 children) has been recently shown to be effective for special
0-1 MIPs [Lodi, Ralphs, Rossi & Smriglio 2011].
A. Lodi, How to use your favorite MIP Solver
26
MIP Challenges, performance (cont.d)
• A very important class of MIPs is 0/1 IPs. Many of the sophisticated techniques already
discussed have been originally proposed for this class and eventually extended to general MIPs.
A. Lodi, How to use your favorite MIP Solver
27
MIP Challenges, performance (cont.d)
• A very important class of MIPs is 0/1 IPs. Many of the sophisticated techniques already
discussed have been originally proposed for this class and eventually extended to general MIPs.
• For example, branching on variables is particularly natural and effective in the 0/1 case while it
is not when general-integer variables play a central role.
A. Lodi, How to use your favorite MIP Solver
27
MIP Challenges, performance (cont.d)
• A very important class of MIPs is 0/1 IPs. Many of the sophisticated techniques already
discussed have been originally proposed for this class and eventually extended to general MIPs.
• For example, branching on variables is particularly natural and effective in the 0/1 case while it
is not when general-integer variables play a central role.
• Another example are the models in which continuous variables are important: for those
variables MIP solvers do not do much (heuristics, strengthening, . . . ).
A. Lodi, How to use your favorite MIP Solver
27
MIP Challenges, performance (cont.d)
• A very important class of MIPs is 0/1 IPs. Many of the sophisticated techniques already
discussed have been originally proposed for this class and eventually extended to general MIPs.
• For example, branching on variables is particularly natural and effective in the 0/1 case while it
is not when general-integer variables play a central role.
• Another example are the models in which continuous variables are important: for those
variables MIP solvers do not do much (heuristics, strengthening, . . . ).
• A (urgent) MIP challenge is definitely dealing with general-integer and continuous variables
with special-purpose techniques.
A. Lodi, How to use your favorite MIP Solver
27
MIP Challenges, performance (cont.d)
• A very important class of MIPs is 0/1 IPs. Many of the sophisticated techniques already
discussed have been originally proposed for this class and eventually extended to general MIPs.
• For example, branching on variables is particularly natural and effective in the 0/1 case while it
is not when general-integer variables play a central role.
• Another example are the models in which continuous variables are important: for those
variables MIP solvers do not do much (heuristics, strengthening, . . . ).
• A (urgent) MIP challenge is definitely dealing with general-integer and continuous variables
with special-purpose techniques.
• Cutting plane generation has been a key step for the success of MIP solvers but: are we using
cuts in the best way?
A. Lodi, How to use your favorite MIP Solver
27
MIP Challenges, performance (cont.d)
• A very important class of MIPs is 0/1 IPs. Many of the sophisticated techniques already
discussed have been originally proposed for this class and eventually extended to general MIPs.
• For example, branching on variables is particularly natural and effective in the 0/1 case while it
is not when general-integer variables play a central role.
• Another example are the models in which continuous variables are important: for those
variables MIP solvers do not do much (heuristics, strengthening, . . . ).
• A (urgent) MIP challenge is definitely dealing with general-integer and continuous variables
with special-purpose techniques.
• Cutting plane generation has been a key step for the success of MIP solvers but: are we using
cuts in the best way?By far not!
A. Lodi, How to use your favorite MIP Solver
27
MIP Challenges, performance (cont.d)
• A very important class of MIPs is 0/1 IPs. Many of the sophisticated techniques already
discussed have been originally proposed for this class and eventually extended to general MIPs.
• For example, branching on variables is particularly natural and effective in the 0/1 case while it
is not when general-integer variables play a central role.
• Another example are the models in which continuous variables are important: for those
variables MIP solvers do not do much (heuristics, strengthening, . . . ).
• A (urgent) MIP challenge is definitely dealing with general-integer and continuous variables
with special-purpose techniques.
• Cutting plane generation has been a key step for the success of MIP solvers but: are we using
cuts in the best way?By far not!
• Fundamental questions about the use of cutting planes remain open, among which:
– stabilization/saturation issues,
– cut selection,
– cut interaction.
A. Lodi, How to use your favorite MIP Solver
27
MIP Challenges, performance (cont.d)
• The already discussed performance variability (some good/neutral features that might not be
monotonically helpful, or, worse, can deteriorate performance) [Koch et al. 2011] is due to
imperfect tie-breaking but is also related to the interaction of key ingredients of MIP.
A. Lodi, How to use your favorite MIP Solver
28
MIP Challenges, performance (cont.d)
• The already discussed performance variability (some good/neutral features that might not be
monotonically helpful, or, worse, can deteriorate performance) [Koch et al. 2011] is due to
imperfect tie-breaking but is also related to the interaction of key ingredients of MIP.
• This is the case of finding a (near-)optimal solution very early in the search tree that explicitly
improves the quality of the primal bound but might sometimes hurt in proving optimality (or at
least does not help).
A. Lodi, How to use your favorite MIP Solver
28
MIP Challenges, performance (cont.d)
• The already discussed performance variability (some good/neutral features that might not be
monotonically helpful, or, worse, can deteriorate performance) [Koch et al. 2011] is due to
imperfect tie-breaking but is also related to the interaction of key ingredients of MIP.
• This is the case of finding a (near-)optimal solution very early in the search tree that explicitly
improves the quality of the primal bound but might sometimes hurt in proving optimality (or at
least does not help).
• A deeper understanding through sophisticated testing techniques is needed [Hooker; McGeoch;
Margot].
A. Lodi, How to use your favorite MIP Solver
28
MIP Challenges, performance (cont.d)
• The already discussed performance variability (some good/neutral features that might not be
monotonically helpful, or, worse, can deteriorate performance) [Koch et al. 2011] is due to
imperfect tie-breaking but is also related to the interaction of key ingredients of MIP.
• This is the case of finding a (near-)optimal solution very early in the search tree that explicitly
improves the quality of the primal bound but might sometimes hurt in proving optimality (or at
least does not help).
• A deeper understanding through sophisticated testing techniques is needed [Hooker; McGeoch;
Margot].
• The negative example suggests an additional very crucial question: besides avoiding good primal
solutions hurting the optimality proof, how can we use them to have instead a strong speed up?
A. Lodi, How to use your favorite MIP Solver
28
MIP Challenges, performance (cont.d)
• The already discussed performance variability (some good/neutral features that might not be
monotonically helpful, or, worse, can deteriorate performance) [Koch et al. 2011] is due to
imperfect tie-breaking but is also related to the interaction of key ingredients of MIP.
• This is the case of finding a (near-)optimal solution very early in the search tree that explicitly
improves the quality of the primal bound but might sometimes hurt in proving optimality (or at
least does not help).
• A deeper understanding through sophisticated testing techniques is needed [Hooker; McGeoch;
Margot].
• The negative example suggests an additional very crucial question: besides avoiding good primal
solutions hurting the optimality proof, how can we use them to have instead a strong speed up?
• Good “old” methods have been rediscovered and revisited during the years, Gomory Mixed
Integer cuts being the most noticeable example. Recently:
– strong Benders cutting planes [Fischetti, Salvagnin & Zanette 2009];
– cutting plane use with the lexicographic simplex [Zanette, Fischetti & Balas 2010];
– cutting planes from group relaxation [Gomory; Richard; Dey; Wolsey; Dash & G¨
unl¨
uk;. . . ].
A. Lodi, How to use your favorite MIP Solver
28
MIP Challenges, the modeling viewpoint
• Besides developing additional tools in the spirit of the ones described before
(among all possible I would like
a tool for detecting minimal sources of numerical instability)
A. Lodi, How to use your favorite MIP Solver
29
MIP Challenges, the modeling viewpoint
• Besides developing additional tools in the spirit of the ones described before
(among all possible I would like
a tool for detecting minimal sources of numerical instability)
the main challenge from a modeling/application viewpoint seems to be dissemination.
A. Lodi, How to use your favorite MIP Solver
29
MIP Challenges, the modeling viewpoint
• Besides developing additional tools in the spirit of the ones described before
(among all possible I would like
a tool for detecting minimal sources of numerical instability)
the main challenge from a modeling/application viewpoint seems to be dissemination.
• More precisely, an interesting direction would be extending the modeling (and solving)
capability of the MIP framework.
A. Lodi, How to use your favorite MIP Solver
29
MIP Challenges, the modeling viewpoint
• Besides developing additional tools in the spirit of the ones described before
(among all possible I would like
a tool for detecting minimal sources of numerical instability)
the main challenge from a modeling/application viewpoint seems to be dissemination.
• More precisely, an interesting direction would be extending the modeling (and solving)
capability of the MIP framework.
• Two successful stories in this direction are:
1. SCIP (Solving Constraint Integer Programs [Achterberg 2007]) whose main feature is a tight
integration of Constraint Programming (CP) and SATisfiability techniques within an MIP
solver.
2. Bonmin (Basic Open-source Nonlinear Mixed INteger programming [Bonami et al. 2008])
has been developed for Convex MINLP within the framework of the MIP solver Cbc [Forrest].
A. Lodi, How to use your favorite MIP Solver
29
MIP Modeling, CP and SCIP
• SCIP can handle arbitrary (non-linear) constraints in a Constraint Programming fashion
A. Lodi, How to use your favorite MIP Solver
30
MIP Modeling, CP and SCIP
• SCIP can handle arbitrary (non-linear) constraints in a Constraint Programming fashion
– A
global
constraint
defines
combinatorially a portion of the
feasible region, i.e., it is able to check
feasibility of an assignment of values
to variables.
A. Lodi, How to use your favorite MIP Solver
30
MIP Modeling, CP and SCIP
• SCIP can handle arbitrary (non-linear) constraints in a Constraint Programming fashion
– A
global
constraint
defines
combinatorially a portion of the
feasible region, i.e., it is able to check
feasibility of an assignment of values
to variables.
– Moreover, a global constraint contains
an algorithm that prunes (filters) values
from the variable domains so as to
reduce as much as possible the search
space.
A. Lodi, How to use your favorite MIP Solver
30
MIP Modeling, CP and SCIP
• SCIP can handle arbitrary (non-linear) constraints in a Constraint Programming fashion
– A
global
constraint
defines
combinatorially a portion of the
feasible region, i.e., it is able to check
feasibility of an assignment of values
to variables.
– Moreover, a global constraint contains
an algorithm that prunes (filters) values
from the variable domains so as to
reduce as much as possible the search
space.
A. Lodi, How to use your favorite MIP Solver
30
MIP Modeling, CP and SCIP
• SCIP can handle arbitrary (non-linear) constraints in a Constraint Programming fashion
– A
global
constraint
defines
combinatorially a portion of the
feasible region, i.e., it is able to check
feasibility of an assignment of values
to variables.
– Moreover, a global constraint contains
an algorithm that prunes (filters) values
from the variable domains so as to
reduce as much as possible the search
space.
• In other words, a higher-level modeling layer has been added, of which MIP is just one of the
options, so as to allow a beneficial interaction among different modeling and solving
technologies.
A. Lodi, How to use your favorite MIP Solver
30
MIP Modeling, CP and SCIP
• SCIP can handle arbitrary (non-linear) constraints in a Constraint Programming fashion
– A
global
constraint
defines
combinatorially a portion of the
feasible region, i.e., it is able to check
feasibility of an assignment of values
to variables.
– Moreover, a global constraint contains
an algorithm that prunes (filters) values
from the variable domains so as to
reduce as much as possible the search
space.
• In other words, a higher-level modeling layer has been added, of which MIP is just one of the
options, so as to allow a beneficial interaction among different modeling and solving
technologies.
• This is especially effective for those applications, like some classes of scheduling problems, in
which none of those technologies, in isolation, would outperform the others [Heinz & Beck
2012].
A. Lodi, How to use your favorite MIP Solver
30
MIP Modeling, Convex (and Non-Convex) MINLPs and Bonmin
• A network design example in water distribution, instance fossolo
• The model does not have special difficulties besides the so-called Hazen-Williams equation
modeling pressure loss in water pipes. However, such an equation is very “bad” . . .
A. Lodi, How to use your favorite MIP Solver
31
MIP Modeling, Convex (and Non-Convex) MINLPs and Bonmin
• A network design example in water distribution, instance fossolo
• The model does not have special difficulties besides the so-called Hazen-Williams equation
modeling pressure loss in water pipes. However, such an equation is very “bad” . . .
• A classical MIP model from the 80’s linearizes such an equation BUT Cplex does not find any
feasible solution for fossolo in 2 days of CPU time (!!) while Bonmin finds a very accurate
one in few seconds.
A. Lodi, How to use your favorite MIP Solver
31
MIP Modeling, Convex (and Non-Convex) MINLPs and Bonmin
• A network design example in water distribution, instance fossolo
• The model does not have special difficulties besides the so-called Hazen-Williams equation
modeling pressure loss in water pipes. However, such an equation is very “bad” . . .
• A classical MIP model from the 80’s linearizes such an equation BUT Cplex does not find any
feasible solution for fossolo in 2 days of CPU time (!!) while Bonmin finds a very accurate
one in few seconds. Using the diameters computed by Bonmin, the MIP does not certify the
solution to be feasible even allowing 1,000 linearization points.
A. Lodi, How to use your favorite MIP Solver
31
End of the course: concluding remarks
• We have seen
1. The building blocks of a MIP solver.
2. How to use a MIP solver as a sophisticated (heuristic) framework.
3. Modeling and algorithmic tips to make a solver effective in practice.
A. Lodi, How to use your favorite MIP Solver
32
End of the course: concluding remarks
• We have seen
1. The building blocks of a MIP solver.
2. How to use a MIP solver as a sophisticated (heuristic) framework.
3. Modeling and algorithmic tips to make a solver effective in practice.
Finally, we discussed some MIP Challenges.
A. Lodi, How to use your favorite MIP Solver
32
End of the course: concluding remarks
• We have seen
1. The building blocks of a MIP solver.
2. How to use a MIP solver as a sophisticated (heuristic) framework.
3. Modeling and algorithmic tips to make a solver effective in practice.
Finally, we discussed some MIP Challenges.
• In summary, MIP technology provides, through its commercial and noncommercial solvers, a
challenging, reliable, flexible and effective environment for application-oriented optimization.
1.
2.
3.
4.
challenging: a lot of good theoretical, methodological and experimental work is needed;
reliable: the software tools are stable;
flexible: it is open to hybridization, cannibalization, extensions;
effective: problems that were conceived as impossible only few years ago can regularly be
solved nowadays.
A. Lodi, How to use your favorite MIP Solver
32
End of the course: concluding remarks
• We have seen
1. The building blocks of a MIP solver.
2. How to use a MIP solver as a sophisticated (heuristic) framework.
3. Modeling and algorithmic tips to make a solver effective in practice.
Finally, we discussed some MIP Challenges.
• In summary, MIP technology provides, through its commercial and noncommercial solvers, a
challenging, reliable, flexible and effective environment for application-oriented optimization.
1.
2.
3.
4.
challenging: a lot of good theoretical, methodological and experimental work is needed;
reliable: the software tools are stable;
flexible: it is open to hybridization, cannibalization, extensions;
effective: problems that were conceived as impossible only few years ago can regularly be
solved nowadays.
• All of the above look like solid reasons for developing the skills for using (and, why not,
improving on) the MIP technology.
A. Lodi, How to use your favorite MIP Solver
32