Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  integrality tolerance in mip

    Posted 11/12/15 12:15 PM

    Originally posted by: alena20


    Hello dear cplex community,

    I have a question regarding integrality tolerance control in my MIP problem with integer variables. I am using the parameter  IloCplex::Param::MIP::Tolerances::Integrality. However due to the nature of the problem, all integer values appear close to 0. E.g. if i set integrality to (0.1), i am getting the variable values < 0.1 (also the sum of these variables is always quite low like [1;5].  In my problem it doesnt make sense to have variables values < 0.1. That why I am interested  to round them rather up then down and getting values at least close to 1. Would be there any solution? Or i need probably to create a callback? If it is the case, could you please give me an advice about creating it?

    Thank you in advance !

    - alena

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: integrality tolerance in mip

    Posted 11/13/15 01:38 AM

    I think you misunderstood the purpose of the integrality tolerance parameter. This parameter is not about rounding. It is about what CPLEX considers an integer number. If you set this to 0.1 then for example any value in [-0.1, 0.1] will be considered integral. Thus, if you solve the LP relaxation and all integer variables have a value that is non-integer by at most 0.1, then the relaxation will be considered integral.

    At which point do you want CPLEX to round the 0.1 values to 1? Maybe you are looking for something like CPX_PARAM_BRDIR which can be used to instruct CPLEX to first examine the x=1 branch before it examines the x=0 branch when branching on a fractional variable?


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: integrality tolerance in mip

    Posted 11/13/15 05:08 AM

    Originally posted by: alena20


    Hello DanielJunglas,

     

    Yes it is not about rounding, maybe i was unclear in previous post. So i want that as soon as CPLEX finds variable value (which is an integer type) of [0.9] , it will be considered as integer. What be there any way to do it?

     

    Thanks, Alena


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: integrality tolerance in mip

    Posted 11/13/15 05:38 AM

    Sorry, I am not clear what you mean by [0.9]. Do you mean a value in [0, 0.9]? Or do you mean a value in [0.9, 1.0]?


    #CPLEXOptimizers
    #DecisionOptimization


  • 5.  Re: integrality tolerance in mip

    Posted 11/13/15 06:02 AM

    Originally posted by: alena20


    yes, value of 0.9. So i would liek something like:  if relaxation value of the integer variable at the node of branch and bound reaches 0.9, stop the programe.

    Thanks !


    #CPLEXOptimizers
    #DecisionOptimization


  • 6.  Re: integrality tolerance in mip

    Posted 11/13/15 06:11 AM

    As soon as the value for any integer variable is 0.9 you want to stop the program? This is probably best achieved with a callback: for example, use a cut or heuristic callback (both are guaranteed to be invoked at every node), get the current solution and stop the search if any integer variable is set 0.9 or bigger.


    #CPLEXOptimizers
    #DecisionOptimization


  • 7.  Re: integrality tolerance in mip

    Posted 11/13/15 06:15 AM

    Originally posted by: alena20


    Great ! Thank you DanielJunglas ! Will try !


    #CPLEXOptimizers
    #DecisionOptimization