As of version 12.10, or maybe 12.9, CPLEX has built-in support for multiple objectives. There is a section titled "Multiobjective optimization" in the CPLEX user's manual that goes into detail. All objectives need to go in the same direction, which means you can either minimize your first function and the negative of your second function or maximize the second function and the negative of the first function.
Handling more than two objectives is no different than handling two. You assign priorities to objectives. If you picture the objectives in a vector (f_1(x), f_2(x), ..., f_n(x)) in descending priority order, CPLEX finds the feasible solution that produces the lexicographic min or max of the vector. Objectives with equal priorities are "blended" (replaced with a weighted combination of the individual functions).
One limitation is that CPLEX currently does not support quadratic objective functions (nor quadratic constraints) in multiobjective models. Since you did not identify which symbols were variables and which were parameters, it's unclear if your second objective is linear or not.
------------------------------
Paul Rubin
Professor Emeritus
Michigan State University
------------------------------
Original Message:
Sent: Thu March 17, 2022 10:02 AM
From: 卢 奇
Subject: How to solve multi-objective optimization problems in CPLEX?
The first expression is minimize.
sum(i in rnI)Alpha[i];
The second expression is maximize.
sum(e in rnE)distance[e][RoEI[e]]*OE[e]*c*miue;
I need to take the first expression as the primary optimization goal and the second expression as the secondary optimization goal. What do I need to do?
There is another problem. If there are more than two optimization objectives, how to solve it?
------------------------------
Qi
------------------------------
#DecisionOptimization