Skip to main content

Exploring Multi-Objective MILP Techniques in Gurobi

Answered

Comments

1 comment

  • Maliheh Aramon
    Gurobi Staff Gurobi Staff

    Hi Benjamin,

    As outlined in the documentation on multiple objectives, Gurobi provides an API to solve multi-objective optimization problems using three main approaches: 1) blending the objectives, 2) optimizing objectives hierarchically, or 3) combining approaches 1 and 2.

    In the first approach, a single-objective optimization problem is solved where the objective function is a weighted sum of all objectives. The Gurobi Optimizer allows users to specify weights for each objective.

    In the second approach, Gurobi optimizes objectives based on a user-defined priority order. When optimizing an objective of lower priority, the Gurobi Optimizer places constraints on higher-priority objectives to prevent them from degrading beyond a specified threshold. Gurobi’s API simplifies the implementation of this hierarchical approach.

    It’s important to note that none of Gurobi’s supported approaches directly generate a Pareto frontier. To obtain a Pareto frontier, you would need to implement this manually. For instance, by adjusting weights in the blended approach, you can find different solutions, though this may not capture solutions in the non-convex parts of the Pareto frontier.

    You could also adjust the priorities of different objectives in the hierarchical approach to explore various solutions.

    Additionally, you can leverage Gurobi’s APIs to implement custom approaches tailored to your needs.

    Please note that Gurobi does not support combining multi-objective optimization with a non-default value for the PoolSearchMode parameter.

    Best regards,

    Maliheh

    0

Please sign in to leave a comment.