1 comment

• Gurobi Staff

Hi Jacob,

The callback routines in Gurobi take two arguments: $$\texttt{where}$$ and $$\texttt{what}$$. The former argument tells the Gurobi Optimizer from where the callback should be called and the latter argument indicates what information should be retrieved.

Please check the Callback Codes documentation for all available callbacks. When solving a multi-objective optimization problem, MULTIOBJ callback can be called at each stage of the solve and MIP-related (LP-related) callbacks can be called if the original model is a MP (an LP). You might find our callback example relevant too.

The Hierarchical Objectives section in the documentation explains how the hierarchical approach works. Let us assume that we have a multi-objective optimization problem with two hierarchical objective functions $$f_1$$ and $$f_2$$ subject to a set of constraints $$C$$. In the first stage, the solver optimizes the objective function $$f_1$$ subject to constraints $$C$$. In the second stage, the solver then optimizes the objective function $$f_2$$ subject to constraints $$C$$ and one extra constraint. The additional constraint further limits the feasible space to solutions that do not degrade the value of the first objective $$f_1$$ subject to a given tolerance.

Best regards,

Maliheh