google / or-tools

Google's Operations Research tools:
https://developers.google.com/optimization/
Apache License 2.0
11.11k stars 2.11k forks source link

support Gurobi or CPLEX‘s multi-objective interface?’ #3351

Open qtbgo opened 2 years ago

qtbgo commented 2 years ago

Hi, I wonder if ortools support gurobi's multi-objective interface, see https://www.gurobi.com/documentation/9.5/refman/multiple_objectives.html.

If not, could we extend ortools to support it.

lperron commented 2 years ago

It will not come with the linear_solver API as the API does not support multi-objective natively. I suppose it will come with math_opt. But do not hold your breath.

CPLEX is community based only (and there is no CPLEX team anymore). So we will not touch it, but accept PR.

TueChristensen commented 2 years ago

At least CPLEX's multiobjective functionality is extremely basic so you are not missing out on much. I would argue that you can implement it yourself in day or two by gathering solutions, creating a new problem with a new objective and parse the solutions to the new instance.

I don't have experience with Gurobi.

Completely off-topic, @lperron do you have anything (un)official that the CPLEX team at IBM has been disbanded?

lperron commented 2 years ago

You can check Twitter post from j. f. Puget. I do not know if anything was announced.

Le mer. 13 juil. 2022, 01:11, Tue Christensen @.***> a écrit :

At least CPLEX's multiobjective functionality is extremely basic so you are not missing out on much. I would argue that you can implement it yourself in day or two by gathering solutions, creating a new problem with a new objective and parse the solutions to the new instance.

I don't have experience with Gurobi.

Completely off-topic, @lperron https://github.com/lperron do you have anything (un)official that the CPLEX team at IBM has been disbanded?

— Reply to this email directly, view it on GitHub https://github.com/google/or-tools/issues/3351#issuecomment-1182907701, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACUPL3ISBPPXMI24UZJJH2LVTZ233ANCNFSM5ZLWI6UA . You are receiving this because you were mentioned.Message ID: @.***>

TueChristensen commented 2 years ago

You can check Twitter post from j. f. Puget. I do not know if anything was announced. Le mer. 13 juil. 2022, 01:11, Tue Christensen @.> a écrit : At least CPLEX's multiobjective functionality is extremely basic so you are not missing out on much. I would argue that you can implement it yourself in day or two by gathering solutions, creating a new problem with a new objective and parse the solutions to the new instance. I don't have experience with Gurobi. Completely off-topic, @lperron https://github.com/lperron do you have anything (un)official that the CPLEX team at IBM has been disbanded? — Reply to this email directly, view it on GitHub <#3351 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACUPL3ISBPPXMI24UZJJH2LVTZ233ANCNFSM5ZLWI6UA . You are receiving this because you were mentioned.Message ID: @.>

Alright, I will check.

Thank you for the quick reply

lperron commented 1 year ago

It will not happen in MPSolver as it is in maintenance mode. It will most likely not happen in ModelBuilder as the API is meant to be minimal. It will not happen with CPLEX, unless somebody contributes the code.

It is ongoing in math_opt. But currently, MathOpt is C++/Bazel only (and doesn't support CPLEX at all and it is currently not planned, aka you want it you PR it...).

lperron commented 1 year ago

For the record https://mobile.twitter.com/jfpuget/status/1308255061483622400

ceandrade commented 1 year ago

Is it possible that the multi-objective (with strict lexicographical ordering from CPLEX and Gurobi, as commented in this thread) comes to the CP-SAT solver itself?

To be clear, I understand that the community must implement support for MIP based on Gurobi or CPLEX backends. My question is about the native CP-SAT within OR tools.

I have a situation where I have five objective functions to be optimized in a strict order. However, I have only 3 minutes for each run. So, strategies like "solve Obj. Func 1", then set a cut/hint, then "solve Obj. Func 2", and so doesn't work very well for me. And the linear combination of the objective functions is not in the plate either since I got MODEL_INVALID due to a potential integer overflow.

lperron commented 1 year ago

Yes, but it is not the priority. We have so much to do on integer linear problem (cuts, presolve), on cp, on search, before looking at multi-objjective which is not an easy task.

Le mar. 16 mai 2023, 22:06, Carlos Eduardo de Andrade < @.***> a écrit :

Is it possible that the multi-objective (with strict lexicographical ordering from CPLEX and Gurobi, as commented in this thread) comes to the CP-SAT solver itself?

To be clear, I understand that the community must implement support for MIP based on Gurobi or CPLEX backends. My question is about the native CP-SAT within OR tools.

I have a situation where I have five objective functions to be optimized in a strict order. However, I have only 3 minutes for each run. So, strategies like "solve Obj. Func 1", then set a cut/hint, then "solve Obj. Func 2", and so doesn't work very well for me. And the linear combination of the objective functions is not in the plate either since I got MODEL_INVALID due to a potential integer overflow.

— Reply to this email directly, view it on GitHub https://github.com/google/or-tools/issues/3351#issuecomment-1550289951, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACUPL3ILTSZ5HQ7NI42G45DXGPM3NANCNFSM5ZLWI6UA . You are receiving this because you were mentioned.Message ID: @.***>

ceandrade commented 1 year ago

Thanks!