Search code examples
cplexopl

How to create a multi-objective model with objective priority


I'm trying to solve a multi-objective problem in which I have to minimize two different objectives but with one taking priority over the other one.

To solve the problem, and hence the question, I tried to use weighted sum of both objective functions. The problem here is that that approach finds the minimum value between the two problems which I don't want. I want to solve one objective and then, maintaning that specific value, I want to solve the other problem.


Solution

  • Version 12.9 of CPLEX has the ability to do exactly that: solve one objective, fix its value, and move to the next objective. Here's an example LP:

    Maximize multi-objectives
    first: abstol=2
       x1
    second: priority=-1
       x2
    Subject to
       x1 + x2 = 10
    General
       x1 x2
    End
    

    This feature is described in the release notes, as well as in these slides.