Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  A problem with callback functions.

    Posted 07/07/20 10:13 AM
    Dear all

    I am trying to obtain a lower bound LB for a small size instance of the vehicle routing problem VRP. There is capacity cut constraints CCC which are exponential. What I did is that:

    1) I relax integrality constrints + add all  CCCs (they're part of the inital formulation). 
    2) I use ILOLAZYCONSTRAINTCALLBACK and ILOUSERCUTCALLBACK to separate needed cuts, at the root node, instead of adding them all.

    What I should get is that: the LB from (1) is better than the LB in (2), yet I got the opposite and this is my problem!

    I believe there is some preprocessing parameters need to be switched off. I did try that but I could not find the correct LB (I know it). Here is what I added
    cplex.setParam(IloCplex::Param::Preprocessing::Reduce, 0);
    cplex.setParam(IloCplex::Param::Preprocessing::Presolve, IloFalse);

    Note: when I switched off above params, the lower bound was changed. 
    Hope my question make sense, Thanks in advance..

    ------------------------------
    Mohammed Alammar
    ------------------------------

    #DecisionOptimization


  • 2.  RE: A problem with callback functions.

    Posted 07/07/20 10:34 AM
    I am not sure you can expect this. In the first case, all variables are continuous. In the second case, some variables are integer, so CPLEX can explout that information in presolve and could thus find better reductions. Did you disable presolve only in the first or also in the second experiment? What happens if you keep integrality restrictions in the first experiment?

    ------------------------------
    Daniel Junglas
    ------------------------------



  • 3.  RE: A problem with callback functions.

    Posted 07/08/20 06:09 AM
    Dear Daniel

    Thanks for your reply. 
    About the question "What happens if you keep integrality restrictions in the first experiment?", I did try now and thats give me what I want (the LB by solving 2 is always less than the LB by solving 1). But why should I keep the integrality restrictions in the first experiment to obtain LB for my problem since Cplex will ignore them to solve the second experiment?

    About the question "Did you disable presolve only in the first or also in the second experiment?" I disable presolve only at the second experiment.


    ------------------------------
    Mohammed Alammar
    ------------------------------