The MO-book uses many different solvers to tackle a large variety of optimization problems. Besides a brief introduction of what a solver is in 01/A Basic Pyomo Model, the rest of the notebooks don't mention anything about these solvers. This can be confusing to readers, especially starting from chapter 5, because then ipopt or mosek are used instead of highs to solve the resulting non-linear optimization problems. There's a brief section on why this non-linear optimization solver is used but it's not explicit enough about why it can then be used to solve convex optimization problems. Moreover, there's even a notebook in chapter 5 on using cvxpy, which also adds confusion to why there's another solver for convex optimization problems.
My suggestion is to:
Make a page that lists all important solvers, categorized/labeled by which types of optimization problems they can solve.
A paragraph about how each solver will be used throughout the book.
The MO-book uses many different solvers to tackle a large variety of optimization problems. Besides a brief introduction of what a solver is in 01/A Basic Pyomo Model, the rest of the notebooks don't mention anything about these solvers. This can be confusing to readers, especially starting from chapter 5, because then
ipopt
ormosek
are used instead ofhighs
to solve the resulting non-linear optimization problems. There's a brief section on why this non-linear optimization solver is used but it's not explicit enough about why it can then be used to solve convex optimization problems. Moreover, there's even a notebook in chapter 5 on usingcvxpy
, which also adds confusion to why there's another solver for convex optimization problems.My suggestion is to: