Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only

Matlab - CPXpreaddrows - preserving pre-solved model and basis

  • 1.  Matlab - CPXpreaddrows - preserving pre-solved model and basis

    Posted 09/30/13 02:23 PM

    Originally posted by: ManolisB


    Dear all,

    I am user of CPLEX 12.5 accessed through Matlab 2012b (all 32 bit).

    I am interested in solving a large LP model, modifying it by adding rows and resolving it. Since I would like this to happen in the most effective way, it would be useful if the  new solution could use the pre-solved optimal basis of the previous solution. According to the user manual Advanced Programming Techniques/Advanced Presolved routines section, (http://pic.dhe.ibm.com/infocenter/cosinfoc/v12r5/index.jsp?topic=%2Filog.odms.cplex.help%2FCPLEX%2FUsrMan%2Ftopics%2Fprogr_adv%2Fpresolve_adv%2F01_presolve_title_synopsis.html )

    to do so I should,

    1) Change the value of the parameter Cplex.preprocessing.reduce to 0 or 1 so that: 

         - the pre-processor is aware of my intended modifications and does not apply any reductions that would make the pre-solved model not valid after I have made my modifications.

        -  the pre-solved model is retained and the optimal basis of the pre-solved model is retained within the object model.

    2) Change the Cplex.advance parameter to 1 so that advance start information is used.

    3) Make my modifications (adding rows) using CPXpreaddrows routine. This routine will make the required changes to both the pre-solved model and the original model data and there is an advantage from both warm starting the new solution and from taking advantage of the still valid pre-processor reductions.(e.g. warm-starting from the pre-solved model's optimal basis and not the original model's optimal basis that is the default)

    While for making other modifications (e.g. adding columns) the user manual states that normal model building routines ( e.g. CPXaddcols )can be used, for adding rows only the special purpose  CPX - pre- addrows routine is recommended.

    Now,according to my understanding, with the Matlab interface the CPXpreaddrows is not available. There is only the equivalent of CPXaddrows. 

    So my question is, is it possible that Cplex.Addrows in Matlab doubles for both the CPXpreaddrows and CPXaddrows and can still be used ?

    If not, provided that I got all the above right, is there another way around it ?

    Thanks,

    Manolis

     

     

     

     


    #CPLEXOptimizers
    #DecisionOptimization