Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  get_relaxation_point method in generic callback

    Posted 09/05/19 02:49 AM

    Originally posted by: FizzaCees


    Hello,

    I am working on an optimization model in cplex (with Python API) and I use generic callback. Generic callback gives me access to solution values at relaxation points using get_relaxation_point() method. Now, for the one problem that I am working on, I already know the values that should come up as the solution. I am able to locate those values using relaxation point method but I can't find them in the solution pool that I accumulate using method get_incumbent().

    The documentation for this method says that these solution values are for current relaxation. I would like to know in detail about the nature of these solution values, like on what basis they are discarded and can't necessarily be chosen as incumbent values?

     

    According to my understanding, get_relaxation_point method returns values for current integer relaxation and when later on the bounds are tightened in branch and cut, the values may be discarded because they contain integer infeasible values.

     

    Thanks in advance!


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: get_relaxation_point method in generic callback

    Posted 09/05/19 03:03 AM

    The function get_relaxation_point() returns the optimal solution to the current LP relaxation. Barring numerical issues, this solution should never be integer feasible. If CPLEX finds the relaxation to be integer then it should not invoke the callback with the RELAXATION context: no cuts are required since the solution is already integer. Instead CPLEX should start processing the solution as integer feasible solution.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: get_relaxation_point method in generic callback

    Posted 09/05/19 04:03 AM

    Originally posted by: FizzaCees


    Thank you for such a prompt response!

     

    It makes more sense to me now.

     

    However, my problem does not restrict all my solution values to be integers (I set my decision variables to float+ and decision expressions to float in CPLEX Optimization Studio from where I get the LP) and the reason it becomes an MIP problem is because I use pwl constraints in my model. 

     

    Given this scenario, is there a way to select solution values regardless of them being floats or integers? And then based on their objective values, select potential incumbent solutions? 

     

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: get_relaxation_point method in generic callback

    Posted 09/05/19 09:57 AM

    If you want to see potential incumbents then you should use the CANDIDATE context and get_candidate_point() function.


    #CPLEXOptimizers
    #DecisionOptimization