Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  cut generating LP

    Posted 10/16/20 12:18 PM
    Hello all,

    I have implemented a branch-and-cut algorithm for an MIP.  The cut-generating LP in a child node is very similar to that of its parent node; hence, if I could somehow save the optimal solution of the parent node, it may be used as an advanced basis start for solving of the child node's cut-generating LP. 
    As far as I know this cannot be done in CPLEX. But it does not hurt to get a second opinion on this? Is there any possible workaround?

    Thanks

    ------------------------------
    Amin
    ------------------------------

    #DecisionOptimization


  • 2.  RE: cut generating LP

    Posted 10/25/20 02:23 PM
    I'll use the Java API here, but the same approach works in at least some of the other APIs (including C++ and presumably C). The IloCplex class has methods named getBasisStatus, getBasisStatuses, setBasisStatuses (no singular version of this one) and setStart. Assuming that you are using a simplex algorithm (or barrier with crossover), one approach is to use getBasisStatuses to get and store the final basis of the solved cut generating LP, map them to the corresponding variables and constraints of the next LP and use setBasisStatuses. Another possibility is to get the primal and dual solution of the first LP, along with reduced costs, using the normal getters, map them to the new LP and use setStart to provide a (partial?) starting solution.

    I believe the lpex6 example supplied with CPLEX Studio illustrates the use of setBasisStatuses.

    ------------------------------
    Paul Rubin
    Professor Emeritus
    Michigan State University
    ------------------------------