Mixed-Integer Multi-objective Constrained Optimization Problem Solving

If you want an out-of-the-box package that will take as input a JuMP problem with multiple objectives, and returns a Pareto front, I’m afraid there is not on at the moment.

If you want to optimize for a weighted combination of objectives (without manually making it into a single objective), or want have a priority in your objectives, e.g., “minimize objective 1, then minimize objective 2 while remaining optimal for objective 1”, it is possible (but not officially supported) with JuMP+Gurobi.

Gurobi supports a range of mixed-integer problems (linear and quadratic) and has some support for multiple objectives. That latter feature is not officially available through JuMP, however, you can follow this example to make it work. Credits to @odow for that original solution.

1 Like