SlideShare a Scribd company logo
1 of 35
Download to read offline
Solving Linear Optimization
 Problems with MOSEK.
                Bo Jensen MOSEK ApS,
        Fruebjergvej 3, Box 16, 2100 Copenhagen,
                        Denmark.
            Email: bo.jensen@MOSEK.com

INFORMS Annual San Diego Tuesday Oct 13, 13:30 - 15:00, 2009

                                                  http://www.mosek.com
Introduction




               2 / 26
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
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
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
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
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
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
Computational test setup




                           9 / 26
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
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
Improvements in the presolve




                               12 / 26
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
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
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
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
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
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
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
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
Improvements in the simplex optimizers




                                         17 / 26
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
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
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
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
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
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
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
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
Improvements in the interior point
          optimizer




                                     21 / 26
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
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
Conclusions




              24 / 26
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
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

More Related Content

Similar to 2009 : Solving linear optimization problems with MOSEK

2007 : Solving Linear Problems with MOSEK (Seattle 2007)
2007 : Solving Linear Problems with MOSEK (Seattle 2007)2007 : Solving Linear Problems with MOSEK (Seattle 2007)
2007 : Solving Linear Problems with MOSEK (Seattle 2007)jensenbo
 
Optimization toolbox presentation
Optimization toolbox presentationOptimization toolbox presentation
Optimization toolbox presentationRavi Kannappan
 
2008 : A Case Study: How to Speed Up the Simplex Algorithms on Problems Minim...
2008 : A Case Study: How to Speed Up the Simplex Algorithms on Problems Minim...2008 : A Case Study: How to Speed Up the Simplex Algorithms on Problems Minim...
2008 : A Case Study: How to Speed Up the Simplex Algorithms on Problems Minim...jensenbo
 
2007 : Exploiting Problem Structure in the MOSEK simplex optimizers (seattle ...
2007 : Exploiting Problem Structure in the MOSEK simplex optimizers (seattle ...2007 : Exploiting Problem Structure in the MOSEK simplex optimizers (seattle ...
2007 : Exploiting Problem Structure in the MOSEK simplex optimizers (seattle ...jensenbo
 
Unit 1 - Optimization methods.pptx
Unit 1 - Optimization methods.pptxUnit 1 - Optimization methods.pptx
Unit 1 - Optimization methods.pptxssuser4debce1
 
Methods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data SetsMethods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data SetsRyan B Harvey, CSDP, CSM
 
Cad based shape optimization
Cad based shape optimizationCad based shape optimization
Cad based shape optimizationAbhay Gore
 
Optimum Engineering Design - Day 4 - Clasical methods of optimization
Optimum Engineering Design - Day 4 - Clasical methods of optimizationOptimum Engineering Design - Day 4 - Clasical methods of optimization
Optimum Engineering Design - Day 4 - Clasical methods of optimizationSantiagoGarridoBulln
 
Introduction to Max-SAT and Max-SAT Evaluation
Introduction to Max-SAT and Max-SAT EvaluationIntroduction to Max-SAT and Max-SAT Evaluation
Introduction to Max-SAT and Max-SAT EvaluationMasahiro Sakai
 
Understand and Harness the Capabilities of Intel® Xeon Phi™ Processors
Understand and Harness the Capabilities of Intel® Xeon Phi™ ProcessorsUnderstand and Harness the Capabilities of Intel® Xeon Phi™ Processors
Understand and Harness the Capabilities of Intel® Xeon Phi™ ProcessorsIntel® Software
 
A framework for nonlinear model predictive control
A framework for nonlinear model predictive controlA framework for nonlinear model predictive control
A framework for nonlinear model predictive controlModelon
 
apsis - Automatic Hyperparameter Optimization Framework for Machine Learning
apsis - Automatic Hyperparameter Optimization Framework for Machine Learningapsis - Automatic Hyperparameter Optimization Framework for Machine Learning
apsis - Automatic Hyperparameter Optimization Framework for Machine Learningandi1400
 
Stefano Doni - Achieve Superhuman Performance with Machine Learning
Stefano Doni - Achieve Superhuman Performance with Machine LearningStefano Doni - Achieve Superhuman Performance with Machine Learning
Stefano Doni - Achieve Superhuman Performance with Machine LearningNeotys_Partner
 
Industrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint ProgrammingIndustrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint ProgrammingPhilippe Laborie
 
Convex optmization in communications
Convex optmization in communicationsConvex optmization in communications
Convex optmization in communicationsDeepshika Reddy
 
Model-Based User Interface Optimization: Part I INTRODUCTION - At SICSA Summe...
Model-Based User Interface Optimization: Part I INTRODUCTION - At SICSA Summe...Model-Based User Interface Optimization: Part I INTRODUCTION - At SICSA Summe...
Model-Based User Interface Optimization: Part I INTRODUCTION - At SICSA Summe...Aalto University
 

Similar to 2009 : Solving linear optimization problems with MOSEK (20)

2007 : Solving Linear Problems with MOSEK (Seattle 2007)
2007 : Solving Linear Problems with MOSEK (Seattle 2007)2007 : Solving Linear Problems with MOSEK (Seattle 2007)
2007 : Solving Linear Problems with MOSEK (Seattle 2007)
 
LP.ppt
LP.pptLP.ppt
LP.ppt
 
Repair dagstuhl jan2017
Repair dagstuhl jan2017Repair dagstuhl jan2017
Repair dagstuhl jan2017
 
Optimization toolbox presentation
Optimization toolbox presentationOptimization toolbox presentation
Optimization toolbox presentation
 
modeling.ppt
modeling.pptmodeling.ppt
modeling.ppt
 
2008 : A Case Study: How to Speed Up the Simplex Algorithms on Problems Minim...
2008 : A Case Study: How to Speed Up the Simplex Algorithms on Problems Minim...2008 : A Case Study: How to Speed Up the Simplex Algorithms on Problems Minim...
2008 : A Case Study: How to Speed Up the Simplex Algorithms on Problems Minim...
 
CH1.ppt
CH1.pptCH1.ppt
CH1.ppt
 
2007 : Exploiting Problem Structure in the MOSEK simplex optimizers (seattle ...
2007 : Exploiting Problem Structure in the MOSEK simplex optimizers (seattle ...2007 : Exploiting Problem Structure in the MOSEK simplex optimizers (seattle ...
2007 : Exploiting Problem Structure in the MOSEK simplex optimizers (seattle ...
 
Unit 1 - Optimization methods.pptx
Unit 1 - Optimization methods.pptxUnit 1 - Optimization methods.pptx
Unit 1 - Optimization methods.pptx
 
Methods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data SetsMethods of Manifold Learning for Dimension Reduction of Large Data Sets
Methods of Manifold Learning for Dimension Reduction of Large Data Sets
 
Cad based shape optimization
Cad based shape optimizationCad based shape optimization
Cad based shape optimization
 
Optimum Engineering Design - Day 4 - Clasical methods of optimization
Optimum Engineering Design - Day 4 - Clasical methods of optimizationOptimum Engineering Design - Day 4 - Clasical methods of optimization
Optimum Engineering Design - Day 4 - Clasical methods of optimization
 
Introduction to Max-SAT and Max-SAT Evaluation
Introduction to Max-SAT and Max-SAT EvaluationIntroduction to Max-SAT and Max-SAT Evaluation
Introduction to Max-SAT and Max-SAT Evaluation
 
Understand and Harness the Capabilities of Intel® Xeon Phi™ Processors
Understand and Harness the Capabilities of Intel® Xeon Phi™ ProcessorsUnderstand and Harness the Capabilities of Intel® Xeon Phi™ Processors
Understand and Harness the Capabilities of Intel® Xeon Phi™ Processors
 
A framework for nonlinear model predictive control
A framework for nonlinear model predictive controlA framework for nonlinear model predictive control
A framework for nonlinear model predictive control
 
apsis - Automatic Hyperparameter Optimization Framework for Machine Learning
apsis - Automatic Hyperparameter Optimization Framework for Machine Learningapsis - Automatic Hyperparameter Optimization Framework for Machine Learning
apsis - Automatic Hyperparameter Optimization Framework for Machine Learning
 
Stefano Doni - Achieve Superhuman Performance with Machine Learning
Stefano Doni - Achieve Superhuman Performance with Machine LearningStefano Doni - Achieve Superhuman Performance with Machine Learning
Stefano Doni - Achieve Superhuman Performance with Machine Learning
 
Industrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint ProgrammingIndustrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint Programming
 
Convex optmization in communications
Convex optmization in communicationsConvex optmization in communications
Convex optmization in communications
 
Model-Based User Interface Optimization: Part I INTRODUCTION - At SICSA Summe...
Model-Based User Interface Optimization: Part I INTRODUCTION - At SICSA Summe...Model-Based User Interface Optimization: Part I INTRODUCTION - At SICSA Summe...
Model-Based User Interface Optimization: Part I INTRODUCTION - At SICSA Summe...
 

2009 : Solving linear optimization problems with MOSEK

  • 1. Solving Linear Optimization Problems with MOSEK. Bo Jensen MOSEK ApS, Fruebjergvej 3, Box 16, 2100 Copenhagen, Denmark. Email: bo.jensen@MOSEK.com INFORMS Annual San Diego Tuesday Oct 13, 13:30 - 15:00, 2009 http://www.mosek.com
  • 2. Introduction 2 / 26
  • 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
  • 12. Improvements in the presolve 12 / 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
  • 21. Improvements in the simplex optimizers 17 / 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
  • 30. Improvements in the interior point optimizer 21 / 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
  • 33. Conclusions 24 / 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