software

I contribute to JuMP and MathOptInterface. I am a primary developer of the following optimization packages (ordered chronologically) in Julia.

Pajarito solver

Pajarito.jl is an outer approximation solver for mixed integer conic optimization problems over standard second-order, positive semidefinite, and exponential cones. Pajarito has several cutting plane algorithms that combine the power of external MILP solvers and continuous conic solvers. We discuss the theory and implementation in Chapter 4 of my thesis, which is an updated and shortened version of our paper outer approximation with conic certificates for mixed-integer convex problems (with Miles Lubin and Juan Pablo Vielma). Based on the now-defunct MathProgBase, Pajarito is succeeded by MOIPajarito, which is based on MathOptInterface.

Pavito solver

Pavito.jl implements outer approximation algorithms for smooth mixed integer nonlinear programming (MINLP) problems, using gradient cuts. Pavito uses external MILP and NLP solvers.

Hypatia solver

Hypatia.jl is a primal-dual conic interior point algorithm for continuous conic problems over generic proper cones. We discuss Hypatia in Chapter 1 of my thesis, which is based on the paper performance enhancements for a generic conic interior point algorithm (with Lea Kapelevich and Juan Pablo Vielma). We model three dozen applied examples. Some examples appear in Chapters 2 and 3 of my thesis, which are based on our papers solving natural conic formulations with Hypatia.jl and conic optimization with spectral functions on Euclidean Jordan algebras (with Lea Kapelevich and Juan Pablo Vielma).

MOIPajarito solver

MOIPajarito.jl replaces Pajarito and is soon to be formally released. MOIPajarito implements Pajarito’s outer approximation algorithms but has a completely redesigned architecture, including a generic cone interface that allows adding support for new convex cones. We discuss MOIPajarito in Chapter 5 of my thesis.

PajaritoExtras.jl

PajaritoExtras.jl extends MOIPajarito by adding support for a variety of cones recognized by Hypatia. Using JuMP, we formulate applied mixed integer conic examples over these cones. We describe cone oracles, applied example formulations, and benchmark results in Chapter 5 of my thesis.