Multi-objective optimization
AnsweredHi,
I have set up a multi-objective mixed integer optimization model with Gurobi. In my case, I have two objectives and 552 binary variables.
As far as I have understood, Gurobi does not support finding a Pareto front out-of-the-box, is that correct? I have therefore set up a manual brute force computation for my problem that runs in parallel with Gurobi. Gurobi is magnitudes faster of course, but so far does not provide the full set of Pareto-optimal solutions.
My plan was to use the hierarchical optimization approach combined with an absolute MIP gap in order to obtain at least the solutions that minimize objective 1 and objective 2. The optimal solution for objective 1 is found correctly. When optimizing for objective 2, Gurobi provides a solution that minimizes this objective correctly to zero, but the solution is not Pareto-optimal. That is, the solution is dominated and there exist solutions with the same objective 2 value (0 in my case), but a smaller objective 1-value than provided by Gurobi. Only if I set the absolute MIP gap to a value that just comprises the manually computed objective 2-value, is Gurobi able to find the same solution as my manual brute force approach.
Is this behavior correct/intended? Limiting degradation step by step, Gurobi finds all the solutions that lie on my manually generated Pareto front. Still, it suprises me that Gurobi provides dominated solutions when increasing the absolute MIP gap. Is there a simple explanation for this?
I am using Gurobi 9.1.0 via the Python API.
Kind regards,
Benjamin
-
Official comment
This post is more than three years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum. Or why not try our AI Gurobot?. -
Hi Benjamin,
Is this behavior correct/intended? Limiting degradation step by step, Gurobi finds all the solutions that lie on my manually generated Pareto front. Still, it suprises me that Gurobi provides dominated solutions when increasing the absolute MIP gap. Is there a simple explanation for this?
This behavior is intended. Gurobi allows for degradation of previous objectives up to a pre-defined gap as described in section Allowing Multiple-Objective Degradation of Working With Multiple Objectives. You can reduce the degradation by setting the relative and absolute tolerances for the specific objectives (ObjNRelTol and ObjNAbsTol).
Best regards,
Jaromił1
Post is closed for comments.
Comments
2 comments