Exercises¶
1¶
Add support for equality constraints to one or more of the algorithms in AnimatedOptimization.jl
.
2¶
Take your favoriate optimization problem (preferrably one that is not too easy, but also does not take more than a few minutes to solve), write code to evaluate the objective function and constraints, and then experiment with using various solvers. Either
-
Add your problem as a test to
AnimatedOptimization.jl
or -
Benchmark the performance of various solvers (Optim, Ipopt, NLopt, Knitro, JuliaSmoothOptimizers) and/or a variety of solver options.
3¶
Adapt one or more of the algorithms in AnimatedOptimization.jl
to use the API and infrastructure of one of the popular Julia optimization packages
The popular Julia optimization packages are:
- Optim.jl
- JuMP.jl which uses MathOptInterface
- JuliaSmoothOptimizers which uses NLPModels.jl
There is no sequential quadratic programming algorithm in any of these packages, so that would be a good one to work on.
4¶
Implement an optimization algorithm not included in AnimatedOptimization.jl
. Of the algorithms mentioned, but not implemented, SLSQP, Augmented Lagrangian, and CMA-ES seem the most interesting and potentially useful (as far as I know, there are no quality Julia implementations for any of them, except perhaps CMA-ES).