Search code examples
optimizationmathematical-optimizationgurobijulia-jump

MultiObjective problems using gurobi solver - which method is used?


I'm coding a mathematical model in Julia, using the packages JuMP and Gurobi.

So, first I create my model and set some parameters, as below:

model = Model(Gurobi.Optimizer)

set_optimizer_attribute(model, "TimeLimit", 600)

set_optimizer_attribute(model, "Presolve", 0)

After, I define the constraints and the objectives. The first objective (obj1) is to maximize, while the second objective (obj2) is to minimize. This way, I define the objective and try to solve the model, as below:

@objective(model, Min, [-eff_expr, instruments_expr])

optimize!(model)

status = termination_status(model)

println("STATUS: ", status, " ---------------------------")

print(solution_summary(model))

After that, a set of solutions is returned. My question is: what is the method used by Gurobi to solve this problem? weighted-sum?

Thank you very much.

I'm trying to know the method used by Gurobi to solve a biobjective problem.


Solution

  • You can specify weighted sum or lexicographic. Gurobi calls this blended and hierarchical. This is actually documented. See: https://www.gurobi.com/documentation/10.0/refman/working_with_multiple_obje.html

    Default is weighted sum with weights equal to 1.