How to maximize an objective function given another objective function achieves a minimum value?
回答済みI have an optimization problem that involves two possible objective functions. One variation of the problem involves me maximizing one of the objective functions such that the second objective function achieves a value at least as good as a given solution. Would it be best to just put the second objective function into the constraints? Ie calculate the value of the given solution beforehand, then set the second objective function to be >= the calculated value
I should say the second objective function is a non-linear/quadratic function.
-
Hi Jack,
Gurobi offers an API for solving multi-objective optimization problems. It supports two main approaches for combining multiple objectives: blended and hierarchical. The latter approach does what you probably have in mind: It assigns a priority to each objective and optimizes the objectives in decreasing priority order. When optimizing an objective of lower priority, it internally adds an additional constraint disallowing the degradation of the higher-priority objective beyond a certain value.
As mentioned in the documentation of Other Details, the Gurobi multi-objective API only supports strictly linear objectives. However it is possible to use the API in case of having non-linear objectives using auxiliary variables. As an example, to minimize the non-linear function \(f(x\)), you can minimize the auxiliary variable \(z\) instead where \(z \geq f(x)\).
Please have a look at the Python example multiobj.py on how to use the multi-objective API.Best regards,
Maliheh
0
サインインしてコメントを残してください。
コメント
1件のコメント