Multi-objective optimization - objective degradation
回答済みHi, I'm working on the Gurobi 9.5.1 with python API to model the bi-objective MIP. As presented in the document, I set the 'ObjNRelTol' and 'ObjNAbsTol' parameters to forbid the first objective degradation by the second objective under the given MIPGap.
Here is my pesudocode:
model.setObjectiveN(obj_launch + obj_sat, index=0, priority=1, weight=1)
model.setParam(GRB.Param.ObjNumber, 0)
model.ObjNRelTol = 1e-10
model.ObjNAbsTol = 1e-10
model.setObjectiveN(obj_util, index=1, priority=0, weight=1)
model.setParam(GRB.Param.ObjNumber, 1)
model.ObjNRelTol = 1e-10
model.ObjNAbsTol = 1e-10
However, when the solver is terminated, the first objective is degraded by the second objective as 6.0135e-04 (from 2021.126 to 2023.342). Can the parameters 'ObjNRelTol' and 'ObjNAbsTol' reduce the objective degradation? But, when I changed the MIPGap from 0.5% to 0.001%, the value of the first objective degradation was reduced, as I expected.
-
正式なコメント
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 try Gurobot, our chatbot interface offering instant, expert-level support. -
As described in the documentation on Working With Multiple Objectives, the degradation mainly relies on the MIPGap and MIPGapAbs. The ObjNxxxTol attributes are only used to further relax the degradation for particular objectives.
Best regards,
Jaromił0
投稿コメントは受け付けていません。
コメント
2件のコメント