How to use callback function within multi-objective optimization?
AnsweredI want to use Hierarchical method to to solve a MIP problem with 2 objective functions. And when I optimize with the higher priority objective function, I want to use callback method. How should we do to implement it?
And I want to know how gurobi work with hierarchical multi-objective model? Does it find all optimal solution of the higher priority function and then find the best one who would retrieve a best value of the lower priority function? Or there are other algorithm to solve it?
-
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
0
Please sign in to leave a comment.
Comments
1 comment