Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  solve resumption after creating a single leaf

    Posted 12/09/19 09:38 AM

    Originally posted by: srinit34


    hi

    I create a single leaf in a branch callback, then abort in a node callback

    Then I solve the resulting tree with an empty branch callback. But Cplex seems to generate cuts again and start at the root node . I want to solve the single leaf that I created.

    Can I do this ?

    The MIP I am using is b1c1s1.


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: solve resumption after creating a single leaf

    Posted 12/26/19 05:25 PM

    Originally posted by: EdKlotz


    By "solve the resulting tree" I presume you mean you take the branches (i.e. bound changes)  that led to the single leaf that prompted you to abort the run, modify either your original model with those bound changes, and solve.    If so, any bound changes will be viewed as invalidating the tree, so a subsequent optimization will generate cuts again and start at the root node. 

     

    If this is not what you are doing, then explain exactly how you take information from the leaf node of interest and create the "resulting tree".

     

    The C API has a CPXgetcallbacknodelp function that would allow you to get the node LP and, with a bit of work, identify the cuts CPLEX has added.    So you could use the C API to provide cuts from the solve that gave you the leaf node to your "resulting tree" problem.   But it will still start at the root node.  

     

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: solve resumption after creating a single leaf

    Posted 12/28/19 07:05 AM

    Originally posted by: srinit34


    I create a single leaf from the root node of the MIP, using a single makebranch() call in a branch callback.

    Then I abort()  in a  node callback if the number of leaf nodes is > 0 .

    Does Cplex realize upon resumption (i.e. when I invoke solve() again ) that I am not working with the root node the MIP , but rather with the single child of the root node ?

    I am no longer using this approach, but it would still be interesting to hear the answer. 


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: solve resumption after creating a single leaf

    Posted 12/30/19 07:08 PM

    Originally posted by: EdKlotz


    CPLEX has nothing special in it to treat a case of a single child of a root node in any special way.   If you interrupt or stop an optimization and leave the tree intact when you invoke the solve() command again, CPLEX will continue from the tree that it previously had.   But if you do anything to invalidate the tree, including just changing parameters or possible adding callback functions, CPLEX will start from scratch.


    #CPLEXOptimizers
    #DecisionOptimization