Decision Optimization

Decision Optimization

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

 View Only
  • 1.  CPLEX 12.9 Benders strategy

    Posted Thu December 19, 2019 09:50 PM

    Originally posted by: ORA17


    Hello Experts,

    I have a large and very complicated MIP problem. While solving in CPLEX, reduced MIP has 708434 rows, 398962 columns, 2150910 non zero, 54863 binaries, 690 generals. I tried many cplex parameter tuning but It cannot solve to optimality even after running more than 24 hours.

    Then I wanted to try Benders strategy in CPLEX 12.9. I ran with below parameters but after running more than 1 hour it goes out of memory (24 GB RAM).

                    model.SetParam(Cplex.Param.RootAlgorithm, 4);
                    model.SetParam(Cplex.Param.NodeAlgorithm, 2);
                    model.SetParam(Cplex.Param.Barrier.Crossover, 2);
                    model.SetParam(Cplex.Param.Benders.Strategy, 3);
                    model.SetParam(Cplex.Param.MIP.Tolerances.MIPGap, 0.05);

    Kindly guide me what is the proper way of using Benders strategy. Whether my problem it suitable to solve by benders.

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: CPLEX 12.9 Benders strategy

    Posted Fri December 20, 2019 02:09 PM

    It is hard to say whether your problem is a good candidate for Benders decomposition -- that depends on the nature of the constraints, not just the dimensions -- but I doubt that Benders would be the reason for running out of memory. There are a number of things you can try to avoid using up RAM. One is to set Cplex.Param.MIP.Strategy.File to either 3 or 4. If you do so, you might consider increasing the value of Cplex.Param.WorkMem; the default is 2 GB, and you seem to have a fair bit more than that available.

    The "nuclear" option, I think, is to set the strategy to depth-first. That's generally a pretty slow way to solve a MIP, but it is likely to be the most parsimonious with respect to tree size.

    Paul

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: CPLEX 12.9 Benders strategy

    Posted Tue December 24, 2019 06:44 PM

    Originally posted by: EdKlotz


    At what point did CPLEX run out of memory?   Please post the node log of the problematic run.   If you have 24 GB of RAM, CPLEX should be able to run for quite a while on a model of your size, although it ultimately depends on the number of active nodes in the search tree, and Paul's memory saving suggestions can definitely help.   But I would not expect CPLEX to run out of memory very early in the Benders solve.

     

    That said, CPLEX requires some continuous variables for the automatic benders associated with setting the Benders strategy parameter to 3 to work, and your description suggests that you have all integer variables.   Instead of trying to get Benders to work, you may want to take a closer look at the node log and try to figure out how to get better performance with regular branch and cut on your model.    Some resources that might help with that include

     

    https://www.slideshare.net/IBMOptimization/2013-11-informsminingthenodelog

     

    and

     

    https://www.ibm.com/support/pages/cplex-performance-tuning-mixed-integer-programs

     

    Give those a shot.   If you are still having trouble, considering posting a node log of a problematic run to this forum.

     


    #CPLEXOptimizers
    #DecisionOptimization