Skip to main content

Hierarchical multi-objective optimization

Answered

Comments

6 comments

  • Lennart Lahrs
    • Gurobi Staff Gurobi Staff

    Hi Arun,

    When using hierarchical multi-objective with two objectives, by default you will receive only a single solution which is optimal with respect to the highest priority objective and also optimal with respect to the lower priority objective without degrading the objective value of the first objective.

    You can use ObjNRelTol and ObjNAbsTol to define how much a higher priority objective is allowed to degrade, while optimising a lower priority objective. By solving the models multiple times while setting these parameters to different values you can generate data points to plot a Pareto front.

    Alternatively, you can solve the model using a single objective, for example your cost objective, and use a constraint to set a limit for your second objective, such as different upper limits for fuel cell degradation.

    No matter which of the three approaches you go for (including weighted sum), the data points you create will lie on the same Pareto front. But depending on which specific data points you would like to generate to plot your Pareto front, one method might be more practical than another.

    Does this help to achieve what you are looking for?

    Best regards,
    Lennart

    0
  • Arun Datta Beeravelli
    • Gurobi-versary
    • First Comment
    • First Question

    Dear Lennart,

    Thank you for the reply. This does provide me some clarity in how to proceed. I have the following doubt.

    • Alternatively, you can solve the model using a single objective, for example your cost objective, and use a constraint to set a limit for your second objective, such as different upper limits for fuel cell degradation.

    Is the above same as ε constrained method?

    0
  • Lennart Lahrs
    • Gurobi Staff Gurobi Staff

    Correct, this method is referred to as epsilon constraint method.

    0
  • Arun Datta Beeravelli
    • Gurobi-versary
    • First Comment
    • First Question

    Thank you for the confirmation. This is my last question. I have gone through the links that have been provided in adjusting the tolerances for higher priority objectives, but I'm a bit confused on how they function.

    • What is the difference between AbsToL and RelToL? Is AbsToL strictly limited to LP problems and RelToL is applicable only to MIP problems? 

     

    0
  • Lennart Lahrs
    • Gurobi Staff Gurobi Staff

    Both ObjNRelTol and ObjNAbsTol are considered by MIPs, while for pure LPs only ObjNAbsTol is considered and handled differently. The page Working With Multiple Objectives is another good reference to read up on that behaviour.

    If you are solving LPs, but prefer the behaviour of MIP multi-objective, you can add a dummy binary variable to your problem to convert your LP into a MIP and then use ObjNRelTol and ObjNAbsTol in the way that you like.

    m.addVar(vtype=GRB.BINARY, name="dummy")
    0
  • Arun Datta Beeravelli
    • Gurobi-versary
    • First Comment
    • First Question

    Thank you Lennart.

    0

Please sign in to leave a comment.