Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  How to get preprocessed columns and rows.

    Posted 08/22/14 02:49 AM

    Originally posted by: Yigiter


    Hi,

    We use Cplex (from c++ concert ) for solving LP formulation of set partitioning problem. We use this information to obtain a feasible solution to an IP model. To increase the efficiency of our algorithm, we need to eliminate columns and rows of the model. Cplex already does this by preprocessing pretty efficiently.

    1. Can we only run presolve step for MIP model.

    2. And can we get these eliminated column and row indices? 

    Thanks


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: How to get preprocessed columns and rows.

    Posted 08/22/14 03:10 AM

    This information is only available when using the callable library. If you only use Concert for building your model then it should be pretty easy to switch over to using the callable library. This would also eliminate copying the model from concert to the core engine and would thus save some time and memory.

    But what are you going to do with the information about eliminated rows and columns? CPLEX presolve may do much more than eliminating redundant rows and columns. It may aggregate columns and perform other reductions (like changing bounds of variables). Elimination of columns/rows may only be valid in conjunction with those other reductions. So the plain set of eliminated rows/columns may not be useful to you.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: How to get preprocessed columns and rows.

    Posted 08/22/14 03:33 AM

    Originally posted by: Yigiter


    We solve very large set partitioning models, which CPLEX can not solve to optimality. Due to the high degeneracy, CPLEX cannot return even a good feasible solutions in a reasonable time. Therefore, we implement a Lagrangian relaxation heuristic and a dual ascent procedure to obtain good feasible solutions. Dual ascent procedure iteratively performs constraint-wise reduced cost update so eliminating redundant rows and columns will save considerable amount of time.

    The people in this area perform preprocessing algorithms to eliminate dominated rows and columns. The rules are really simple but it must be performed in an efficient way. As far as we know, CPLEX can detect the row and column dominations very quickly. This is why, we prefer to use CPLEX rather than implementing our own.


    #CPLEXOptimizers
    #DecisionOptimization