I am writing a optimization problem where I have a Utilitarian objective and MaxMin Objective. I want to have a third objective that is a linear combination of the two aka a blended objective. I am using Gurobi. My model is defined as follows
model = Model(Gurobi.Optimizer)
I see that Gurobi supports blended objectives, but does julia?
If it does, how would I go about implementing this? For example here are my Utilitarian and MaxMin objectives where
u[r] is a decision variable and the rest are static variables
@objective(model, Max, sum(b_dict[r] * (p_dict[r] * u[r]) for r in od))
for r in od
@constraint(model, t <= p_dict[r] * u[r])
JuMP does not support multi-objective problems.
When you write
@objective(model, Max, x)
@objective(model, Max, y)
we are replacing the single objective, not adding a new one.
For your “blended” objective, I assume you mean something like a weighted-sum approach? I would do something like this:
@constraint(model, obj <= sum(b_dict[r] * (p_dict[r] * u[r]) for r in od))
for r in od
@constraint(model, obj <= p_dict[r] * u[r])
l = 0.5
@objective(model, Max, l * obj + (1 - l) * obj)
1.0, you can recover the support non-dominated points of the Pareto frontier (if the problem is a linear program. If MIP, things are more difficult).
For other approaches:
This is exactly what I meant. Thank you!