Hierarchical multi-objective optimization
AnsweredDear Team,
I've implemented a hybrid energy system operation optimization with 2 objectives, the first objective is the OPEX (in $), and the second objective is the degradation of the PEMFC (in microvolts) that is part of a hybrid energy system. I've set up the problem using hierarchical multi objective optimization where the OPEX is of the higher priority(priority=2), and the degradation of the fuel cell is of the lower priority(priority=1).
Is it possible to plot a pareto front for this multi-objective optimization similar to a weighted sum multi-objective optimization where the weights of the objectives can be varied to plot the pareto front.
kind regards,
Arun Datta
-
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,
Lennart0 -
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 -
-
Correct, this method is referred to as epsilon constraint method.
0 -
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 -
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 -
Thank you Lennart.
0
Please sign in to leave a comment.
Comments
6 comments