Decision Optimization

Decision Optimization

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

 View Only
Expand all | Collapse all

Dual simplex faster in cutting plane?

  • 1.  Dual simplex faster in cutting plane?

    Posted Mon May 05, 2014 09:23 AM

    Originally posted by: Zacharie_ALES


    Hello,

    I have heard that the dual simplex algorithm is a good choice in a cutting plane strategy since adding a cut in the primal corresponds to the addition of a variable in the dual (and so the previous basis is still dual feasible).

    According to the documentation cplex is doing this automatically:

    "Currently, the behavior of the automatic setting is that CPLEX® almost always invokes the dual simplex algorithm when it is solving an LP model from scratch. When it is continuing from an advanced basis, it will check whether the basis is primal or dual feasible, and choose the primal or dual simplex algorithm accordingly." (from the parameters reference manual of cplex 12.1, in the RootAlg section)

    To test this I consider a given problem that I solve with cplex (java API). During the resolution many cuts are generated at the root thanks to a UserCutCallback class. To see the influence of the root algorithm I try different values of the parameter RootAlg (I was expecting better results with the dual simplex). However, the time to solve the continuous problem seems to be roughly similar in each cases.

    Is it normal? Does cplex use the fact that the basis is still dual feasible?

    If not do you know if I can enable it? (or if I can do it manually by getting the basis for example)

    Thanks for your help.

     


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Dual simplex faster in cutting plane?

    Posted Mon May 12, 2014 02:33 AM

    Originally posted by: RWunderling


    Which algorithm performs best always depends on the problem at hand, which is exactly why CPLEX offers a choice of algorithms.  This allows you to pick the one that works best in your case. Only experiments will tell which one this is, though you are right that more often than not, the dual algorithm is best suited for cutting plane algorithms since it allows to restart from a previous dual feasible solution.  In fact, CPLEX will restart from the previous basis (extended with basic statuses for the newly added constraints), unless you for it to start from scratch by changing the CPX_PARAM_ADVIND (AdvInd) parameter.  Note that you have to take care about maintaining a dual feasible basis in case you also delete cuts - you should only delete cuts that have become basic, or you would generally destroy your previous basis.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: Dual simplex faster in cutting plane?

    Posted Tue May 13, 2014 07:49 AM

    Originally posted by: Zacharie_ALES


    Ok perfect, thanks!


    #CPLEXOptimizers
    #DecisionOptimization