Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Custom MIP emphasis?

    Posted 04/15/19 11:14 PM

    Originally posted by: Chicoscience


    Hi,

     

    I have a MIP model in which we prioritise branching on certain variables (Type 1) in lieu of others (Type 2). We know that once all Type 1 variables are fixed to integer values, then the remaining problem is a feasibility one: Type 2 variables do not change the objective value, so once we find an integer solution in that branch, we can safely prune its remaining nodes.

     

    In this situation, it make sense for us to set MIP emphasis to optimality while there are fractional Type 1 variables, and then set MIP emphasis to feasibility once all Type 1 variables are fixed in a specific branch. Is it possible to do so in CPLEX? I am using CPLEX 12.8.

     

    Thanks,

    Cristiano

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Custom MIP emphasis?

    Posted 04/16/19 01:30 AM

    No, this is not possible. You cannot change MIP emphasis "on the fly". And you would not even change it for the whole process but only for certain subtrees.

    You may want to consider priority orders (see CPLEX->User's Manual for CPLEX->Discrete optimization->Solving mixed integer programming problems (MIP)->Issuing priority orders in the user manual). This way you can at least ask CPLEX to first branch on Type 1 variables. If all these variables are fixed in a node then all nodes in the subtree rooted at that node will have the same objective. So as soon as a better solution is found the whole subtree will be pruned.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Custom MIP emphasis?

    Posted 04/16/19 07:01 AM

    Originally posted by: Chicoscience


    Thanks Daniel, we already set the priorities in branching for Type 1!


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: Custom MIP emphasis?

    Posted 04/16/19 03:19 PM

    Daniel,

    Just for clarification: if you use a callback to stop the solver once all Type 1 variables are fixed, then change the MIP Emphasis parameter and call solve() again, CPLEX will resume with the tree you had when you stopped the initial solve, correct? (I'm assuming use of an appropriate API here.)

    Thanks,

    Paul

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: Custom MIP emphasis?

    Posted 04/16/19 04:06 PM

    Correct. That will work the way you described it.

    The problem I see here is when to stop optimization? When you hit the first node that has all Type 1 variables fixed? At that point you may still have a lot of nodes that have unfixed variables of Type 1.


    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: Custom MIP emphasis?

    Posted 04/16/19 04:16 PM

    Good point. With a branch callback, I suppose you could maintain a list in memory of nodes that do not have all Type 1 variables fixed, and stop when that list becomes empty ... but would it be worth the effort?


    #CPLEXOptimizers
    #DecisionOptimization