3. What is MOSEK
Introduction
Aim of talk
s A software package for solving large-scale optimization
Topic problems.
Introduction of the
optimizers s Solves linear, conic, and nonlinear convex problems.
Introduction of the
optimizers
Mixed integer optimizer.
(Continued) s Used to solve problems with up to millions of constraints
Computational test
setup
and variables.
Improvements in the s Stand-alone as well as embedded :
presolve
Improvements in the
x C
simplex optimizers x Java
Improvements in the
interior point
x MATLAB
optimizer
x Python
Conclusions
x .NET
3 / 26
4. What is MOSEK (Continued)
Introduction
Aim of talk
s Third party interfaces :
Topic
Introduction of the
x AIMMS
optimizers x COIN-OR
Introduction of the
optimizers x Frontline Systems
(Continued)
x GAMS
Computational test
setup x Microsoft Solver Foundation
Improvements in the
presolve
x OptimJ
Improvements in the s Version 1 released 1999.
simplex optimizers
Improvements in the
s Version 6 released October 2009 (Next week).
interior point
optimizer For further information see www.MOSEK.com.
Conclusions
Prices public available directly on our website !
4 / 26
5. Aim of talk
Introduction
Aim of talk
s Highlight recent key improvements in the linear
Topic optimizers.
Introduction of the
optimizers s Show computational results on a larger set of benchmark
Introduction of the
optimizers
problems.
(Continued)
Computational test
setup
Improvements in the
presolve
Improvements in the
simplex optimizers
Improvements in the
interior point
optimizer
Conclusions
5 / 26
6. Topic
Introduction
Aim of talk
s The problem
Topic (P ) min cT x
Introduction of the
optimizers st Ax = b,
Introduction of the
optimizers
x ≥ 0.
(Continued)
Computational test s The linear optimizers.
setup
Improvements in the x Interior-point based.
presolve
x Primal and dual simplex based.
Improvements in the
simplex optimizers x Primal network flow simplex.
Improvements in the
interior point s What are the recent improvements?
optimizer
Conclusions
6 / 26
7. Introduction of the optimizers
Introduction
Aim of talk
s Interior point.
Topic
Introduction of the
x Based on the homogeneous and self-dual model.
optimizers x Basis identification.
Introduction of the
optimizers x Highly tuned implementation.
(Continued)
x Can exploit multiple processors.
Computational test
setup
s Primal and Dual simplex.
Improvements in the
presolve
x Exploits hyper sparsity (LU, solves and loops).
Improvements in the
simplex optimizers x Multiple pricing options : Dantzig, partial, devex,
Improvements in the exact steepest edge, approximate steepest edge and
interior point
optimizer hybrid pricing.
Conclusions x Crashes an advanced initial basis.
x Aggressive anti-degeneracy schemes.
7 / 26
8. Introduction of the optimizers (Continued)
Introduction
Aim of talk
s Network optimizer.
Topic
Introduction of the
x Specialized primal simplex implementation.
optimizers x Exploits the tree structure of the basis and other
Introduction of the
optimizers tricks.
(Continued)
x Can extract embedded network structure.
Computational test
setup
Improvements in the
presolve
The network optimizer has not been changed since mosek 5
Improvements in the
and will be left out of benchmark.
simplex optimizers
Improvements in the
interior point
optimizer
Conclusions
8 / 26
10. Computational test setup
Introduction
All computational results are run on the same machine :
Computational test
setup
Computational test
s Intel Xeon 2.27 GHz 16 Cores.
setup s 16 GB RAM.
How do we measure
improvements ? s Running Linux.
Improvements in the
presolve Selected about 1000 problems from our clients and public
Improvements in the ressources
simplex optimizers
Improvements in the
interior point
optimizer
Conclusions
10 / 26
11. How do we measure improvement ?
Introduction
s Maximum solution time allowed 10000 sec, timeouts are
Computational test
setup excluded.
Computational test
setup
s Group problems by solution times :
How do we measure
improvements ? x Small problems => best solution time ≤ 6 sek.
Improvements in the x Medium problems => 6 sek < best solution time ≤
presolve
Improvements in the
60 sek.
simplex optimizers x Large problems => best solution time > 60
Improvements in the
interior point s Sum of solution time Bad benchmarking criteria!.
optimizer
s Geometric mean of ratios of optimizer time i.e
Conclusions
MOSEK6/MOSEK5.
s Number of wins.
11 / 26
13. Presolve overview
Introduction
s MOSEK has had an extensive presolve since version 1.
Computational test
setup See [AND:95].
Improvements in the s It was only employed in cold start cases.
presolve
Presolve overview s Since MOSEK 5 we can also presolve hotstart.
Presolving hotstarts s Presolving hotstarts has been improved in MOSEK 6.
Presolving hotstarts
Numerical examples
Improvements in the
simplex optimizers
Improvements in the
interior point
optimizer
Conclusions
13 / 26
14. Presolving hotstarts
Introduction
s Assume we have a ”good” (optimal?) primal x∗ or dual
Computational test
setup y ∗ solution to P .
Improvements in the But now the problem has been modified by the user into :
presolve
Presolve overview
Presolving hotstarts ˆ
(P ) min cT x
ˆ
Presolving hotstarts
Numerical examples st Ax = ˆ
ˆ b,
Improvements in the x ≥ 0.
simplex optimizers
Improvements in the
interior point
optimizer
Conclusions
14 / 26
15. Presolving hotstarts
Introduction
s Assume we have a ”good” (optimal?) primal x∗ or dual
Computational test
setup y ∗ solution to P .
Improvements in the But now the problem has been modified by the user into :
presolve
Presolve overview
Presolving hotstarts ˆ
(P ) min cT x
ˆ
Presolving hotstarts
Numerical examples st Ax = ˆ
ˆ b,
Improvements in the x ≥ 0.
simplex optimizers
Improvements in the
interior point
optimizer
s Challenges :
Conclusions x The problem may have been modified in any way.
x Some presolve techniques destroy primal and dual
feasibility.
s Ex : Assume x∗ is primal feasible and x∗ k = uk ,
but dual presolve says x∗ k = lk ?
14 / 26
16. Presolving hotstarts (Continued)
Introduction
s The MOSEK presolve strategy:
Computational test
setup
x Aimed at ”hard” hotstarts where presolve really
Improvements in the
presolve makes a difference.
Presolve overview
Presolving hotstarts
Presolving hotstarts
Numerical examples
Improvements in the
simplex optimizers
Improvements in the
interior point
optimizer
Conclusions
15 / 26
17. Presolving hotstarts (Continued)
Introduction
s The MOSEK presolve strategy:
Computational test
setup
x Aimed at ”hard” hotstarts where presolve really
Improvements in the
presolve makes a difference.
Presolve overview x Preserve either primal (primal simplex) or dual
Presolving hotstarts
Presolving hotstarts feasibility (dual simplex).
Numerical examples
Improvements in the
simplex optimizers
Improvements in the
interior point
optimizer
Conclusions
15 / 26
18. Presolving hotstarts (Continued)
Introduction
s The MOSEK presolve strategy:
Computational test
setup
x Aimed at ”hard” hotstarts where presolve really
Improvements in the
presolve makes a difference.
Presolve overview x Preserve either primal (primal simplex) or dual
Presolving hotstarts
Presolving hotstarts feasibility (dual simplex).
Numerical examples
x Also try to keep the basis intact.
Improvements in the
simplex optimizers
Improvements in the
interior point
optimizer
Conclusions
15 / 26
19. Presolving hotstarts (Continued)
Introduction
s The MOSEK presolve strategy:
Computational test
setup
x Aimed at ”hard” hotstarts where presolve really
Improvements in the
presolve makes a difference.
Presolve overview x Preserve either primal (primal simplex) or dual
Presolving hotstarts
Presolving hotstarts feasibility (dual simplex).
Numerical examples
x Also try to keep the basis intact.
Improvements in the
simplex optimizers x If your problem takes few iterations in reoptimizing,
Improvements in the then you should switch off presolve.
interior point
optimizer
Conclusions
15 / 26
20. Numerical examples
Introduction
Selected 82 hotstart instances
Computational test
setup Warning biased problem selection ahead!
Improvements in the
presolve
Presolve overview
Presolving hotstarts
Presolving hotstarts
Numerical examples small medium
Improvements in the 6-nopre 6 5 6-nopre 6 5
simplex optimizers
Num. 74 74 74 8 8 8
Improvements in the
interior point Firsts 9 51 18 1 6 1
optimizer
Total time 1058.49 170.90 323.95 602.72 98.20 618.54
Conclusions
G. avg. 5.79 1.77 2.39 41.68 11.21 44.37
G. avg. r 2.42 0.74 0.94 0.25
Table 1: Presolve hotstart effect on client problems (Dual sim-
plex).
16 / 26
22. Key areas simplex optimizers
Introduction
s Speed and stability has in general been greatly improved.
Computational test
setup
Improvements in the
presolve
Improvements in the
simplex optimizers
Computational
results-primal
simplex
Computational
results-dual simplex
Improvements in the
interior point
optimizer
Conclusions
18 / 26
23. Key areas simplex optimizers
Introduction
s Speed and stability has in general been greatly improved.
Computational test
setup s Larger parts of the code has been rewritten.
Improvements in the
presolve
Improvements in the
simplex optimizers
Computational
results-primal
simplex
Computational
results-dual simplex
Improvements in the
interior point
optimizer
Conclusions
18 / 26
24. Key areas simplex optimizers
Introduction
s Speed and stability has in general been greatly improved.
Computational test
setup s Larger parts of the code has been rewritten.
Improvements in the s Parameter tuning (i.e running many test with different
presolve
internal settings).
Improvements in the
simplex optimizers
Computational
results-primal
simplex
Computational
results-dual simplex
Improvements in the
interior point
optimizer
Conclusions
18 / 26
25. Key areas simplex optimizers
Introduction
s Speed and stability has in general been greatly improved.
Computational test
setup s Larger parts of the code has been rewritten.
Improvements in the s Parameter tuning (i.e running many test with different
presolve
internal settings).
Improvements in the
simplex optimizers s Hybrid pricing in primal simplex has been completely
Computational
results-primal rewritten.
simplex
Computational x Improved the automatic switch between partial and
results-dual simplex
Improvements in the
approximate steepest-edge pricing in primal simplex.
interior point x Restricted pricing (i.e optimizing over a subset of
optimizer
Conclusions
columns) is now used more intensively.
18 / 26
26. Key areas simplex optimizers
Introduction
s Speed and stability has in general been greatly improved.
Computational test
setup s Larger parts of the code has been rewritten.
Improvements in the s Parameter tuning (i.e running many test with different
presolve
internal settings).
Improvements in the
simplex optimizers s Hybrid pricing in primal simplex has been completely
Computational
results-primal rewritten.
simplex
Computational x Improved the automatic switch between partial and
results-dual simplex
Improvements in the
approximate steepest-edge pricing in primal simplex.
interior point x Restricted pricing (i.e optimizing over a subset of
optimizer
Conclusions
columns) is now used more intensively.
s Better crash module in dual simplex.
18 / 26
27. Key areas simplex optimizers
Introduction
s Speed and stability has in general been greatly improved.
Computational test
setup s Larger parts of the code has been rewritten.
Improvements in the s Parameter tuning (i.e running many test with different
presolve
internal settings).
Improvements in the
simplex optimizers s Hybrid pricing in primal simplex has been completely
Computational
results-primal rewritten.
simplex
Computational x Improved the automatic switch between partial and
results-dual simplex
Improvements in the
approximate steepest-edge pricing in primal simplex.
interior point x Restricted pricing (i.e optimizing over a subset of
optimizer
Conclusions
columns) is now used more intensively.
s Better crash module in dual simplex.
s The automatic refactor frequency in the LU module has
been improved.
18 / 26
28. Computational results-primal simplex
Introduction
Computational test
setup
Improvements in the
presolve
Improvements in the
simplex optimizers
Computational
results-primal
simplex
Computational
results-dual simplex
Improvements in the
interior point
optimizer
Conclusions
s Small problems are misleading, since time measurement
in MOSEK 5 and 6 are different !.
s At least 25% speed up on average.
19 / 26
29. Computational results-dual simplex
Introduction
Computational test
setup
Improvements in the
presolve
Improvements in the
simplex optimizers
Computational
results-primal
simplex
Computational
results-dual simplex
Improvements in the
interior point
optimizer
Conclusions
s Small problems are misleading, since time measurement
in MOSEK 5 and 6 are different !.
s At least 25% speed up on average.
20 / 26
31. Key areas interior point optimizers
Introduction
s Improved speed in general.
Computational test
setup s Improved numerical stability on hard problems.
Improvements in the
presolve
Improvements in the
simplex optimizers
Improvements in the
interior point
optimizer
Computational
results-interior point
Conclusions
22 / 26
32. Computational results-interior point
Introduction
Computational test
setup
Improvements in the
presolve
Improvements in the
simplex optimizers
Improvements in the
interior point
optimizer
Computational
results-interior point
Conclusions
s The testset is too easy for interior point !
s Interior point was 3-4 times faster than dual simplex !
s About 5-10% speed up (more for hard problems).
23 / 26
34. Conclusions
Introduction
s Much improved presolve performance for hotstarts.
Computational test
setup s All optimizers more numerical stable.
Improvements in the s Primal simplex optimizer 25% faster on average.
presolve
s Dual simplex optimizer 25% faster on average.
Improvements in the
simplex optimizers s Interior point optimizer 5-10% faster on average.
Improvements in the
interior point
optimizer
Conclusions
Conclusions
References
25 / 26
35. References
Introduction
Computational test
[AND:95] E. Andersen and K. Andersen, ”Presolve in linear
setup programming”, Mathematical Programming, Volume 71 ,
Improvements in the
presolve
1995
Improvements in the
simplex optimizers
Improvements in the
interior point
optimizer
Conclusions
Conclusions
References
26 / 26