Multi Objective Optimization - Pareto

1,096 views
Skip to first unread message

Romerito Campos

unread,
Feb 5, 2017, 11:24:58 AM2/5/17
to Gurobi Optimization
Hi,

I've been use Gurobi to solve some models with one objective.

So, now, I'm working on multi-objective problem (three objectives).
The Gurobi version 7 has an important feature related to multi-objective optimization, I've tested it in a multi-objective model and get some solutions (lexicographic way)

The solutions returned by gurobi represent part of the pareto. It returns diferent solutions based on the priority I put on the objectives...

My question is: Is there any way to obtain the entire pareto using Gurobi?

Marcos Roberto Silva

unread,
Feb 6, 2017, 6:26:30 AM2/6/17
to gur...@googlegroups.com
Hi.
You can use the epsilon constrained method:

Epsilon Constraints method:

1. If we have n objectives, we should be able to anyhow know the max and min bound of n-1 objectives

2. We should be able to convert the range of each objective values into finite number of discrete values, starting from the min value and ending at the max value

3. One objective will be used as the objective function, and the remaining objectives will be used as constraints using the epsilon value as the bound. The value of epsilon will be varied in each iteration. There will be n-1 nested loops. We have to iterate the epsilon value of these constraints effectively so that it still gives us a good solution but take less time to solve.

In general, lower value of n takes low computational time.

In general, to have an optimal solution, n-1 objective value ranges should be discrete integer numbers. That is, the values of epsilon can be only integer numbers. This is a way to get an optimal solution.


How we can use epsilon constraint method for the multi-objective optimization? - ResearchGate. Available from: https://www.researchgate.net/post/How_we_can_use_epsilon_constraint_method_for_the_multi-objective_optimization [accessed Feb 6, 2017].

Regards,

Marcos


--

---
You received this message because you are subscribed to the Google Groups "Gurobi Optimization" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gurobi+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Daniel Espinoza

unread,
Feb 7, 2017, 6:53:21 AM2/7/17
to Gurobi Optimization
Hi,

For two objective functions is relatively easy, you maximize one function and subject to that value minimize the other, thus getting a non-dominated solution x^1,
then you do the same but maximizing the second  objective and subject to that value minimize the first to obtain x^2. After that step, you maximize with a linear combination of the objective functions such that x^1 and x^2 have the same value (for this mix of objective functions); if you find x^3 with better value than x^1 and x^2, then you have a new non-dominated solution, and repeat the procedure between x^1-x^3 and x^3-x^2, otherwise you just proved that there are no more interesting points between x^1 and x^2 (and then you can move on to an unexplored interval).
For more than two objective function things get complicated (although not impossible) because you are essentially building a (hyper) surface.

I hope this helps,
Best
Daniel

Romerito Campos

unread,
Feb 7, 2017, 8:16:09 AM2/7/17
to Gurobi Optimization
Thanks, Marcos.

I've done exactly this to achieve the Pareto. I'm working with a tri-objective problem. 
However, I'd like to use the multi-objective resource of Gurobi. It seems that isn't possible to achieve the Pareto (optimal) using it.
To unsubscribe from this group and stop receiving emails from it, send an email to gurobi+un...@googlegroups.com.

Ashutosh Sharma

unread,
Sep 8, 2017, 2:56:34 AM9/8/17
to Gurobi Optimization
sir i am new to optimization,
i want to apply bi objective optimization. please tell me how to design single function from the two objectives. i want to minimize the both objects.

thanks and regards

Tobias Achterberg

unread,
Sep 8, 2017, 3:31:25 AM9/8/17
to gur...@googlegroups.com
Gurobi supports two different ways of combining two objective functions: hierarchical and
weighted.

With the weighted approach, the two objective functions are just merged into a single
objective function by multiplying each with a scalar (the weight) and then adding them up.
You can do the same just by yourself, having the weighted combination supported by Gurobi
is merely a convenience function.

The hierarchical approach first finds an optimal solution to the first objective function
and then finds an optimal solution to the second objective function with the additional
condition that the objective value w.r.t. the first objective function should still be
(close to) optimal.

In the current version 7.5, Gurobi does not support Pareto optimization.

Best regards,

Tobias
Reply all
Reply to author
Forward
0 new messages