Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Keep B&B tree in memory ? (Java CPLEX Library)

    Posted 04/21/16 11:36 AM

    Originally posted by: LilTiti


    Hi everyone,

    I'm working on a Java software that extracts patterns from a corpus dialogs and then clusters these patterns by similarity. The clustering process is resolved by CPLEX (callable library) as a linear program with binary variables.

    I want to let the user redo the clustering process with some changes (e.g. if he considers that 2 patterns must be together, I redo the process and fix the right variable to 1).

    I want to know if it is possible to keep in memory (or retrieve) the tree used for the Branch & Bound process by CPLEX. By doing so, I could do "backwards"  on this tree until the node corresponding to the right variable, then continue the tree as always.

    In summary, is there any way (a CPLEX parameter, a callback function..) to use the last CPLEX process (especially the B&B tree) to solve a problem almost similar to the last one ?

    Thank you,

    Etienne.


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Keep B&B tree in memory ? (Java CPLEX Library)

    Posted 04/21/16 11:48 AM

    No, there is no way to do this. Even the slightest change to the model may fundamentally change things and usually the old search tree would become invalid.

    For example, if you add an additional constraint to a minimization problem then the optimal solution may become infeasible. In that case you would have to somehow "get back" all the nodes that were pruned using this solution.

    You can track of what CPLEX is doing (and which branching decisions it takes) by using a branch callback. This has been discussed multiple times on this Forum and you should be able to find example code. However, I have quite some doubts that what you are planning to do will pay off. Could you instead find a way (a heuristic) to patch a solution from the first run so that it is feasible for the second run. With this you could provide a MIP start for the second run which may speed the solution process.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Keep B&B tree in memory ? (Java CPLEX Library)

    Posted 04/25/16 04:42 AM

    Originally posted by: LilTiti


    Thanks for the answer.

    I could think of re-building the tree with data retrieved from branch callback on the first resolution. But I'm afraid that it is a lot of work and it doesn't worth it, isn't it ?

    So you think the best idea is to create a better solution from the first resolution to start the second one, which might be the same problem with only the change of the value of 1 variable and so on... ?


    #CPLEXOptimizers
    #DecisionOptimization