[Scip] problem with cleanupcolsroot and colagelimit

Sebastian Ruther Sebastian.Ruther at uon.edu.au
Fri Jun 29 15:39:36 MEST 2012


  Hello,

unfortunately I have not been able to overcome numerical troubles that I 
have been having for years. I have been in contact with people at SCIP 
and GUROBI but unfortunately they were not able to figure out why the 
problems are so hard to solve. The LPs are well conditioned and all 
coefficients and RHS are fine.

Anyhow, at this point I need to approach it from a different angle.

I've solved several LPs (with and without advanced basis) using CPLEX 
interactive shell and found that there is no tool that is a clear 
winner. However, the performances can vary between say 2 sec and 600+ 
seconds for the same LP. Is there a way for SCIP to tell CPLEX to use 
all of its optimizers in parallel?

The other avenue is to drastically reduce the number of columns in the 
master problem. Gerald once wrote something about this on the mailing 
list (see original email below). For some reason none of that seems to 
work for me. For example I use
     SCIP_CALL( SCIPsetBoolParam(scip, "lp/cleanupcolsroot", TRUE) );
     SCIP_CALL( SCIPsetBoolParam(scip, "lp/cleanupcols", TRUE) );
and set the dynamic flag for priced variables to TRUE.
The transformed problem has 301 rows. The entry in column "cols" in the 
SCIP output keeps increasing at the same rate as entries in "vars" and 
increases past 301 one columns. But the number of basic variables is 
equal to the number of constraints in the LP so how can this happen? 
Just to make sure I'm not fooled by the output I checked with 
SCIPgetNLPCols(scip) and yes that number keeps increasing as well. So it 
seems to not delete the non-basic variables.

SCIP removes columns from the LP when I use  "lp/colagelimit". However 
not the way I expected or should I say at the rate expected. The number 
of variables in the LP should be #rows x colagelimit. But there are a 
lot more columns in the LP after just a few iterations.

Cheers,
Sebastian


Gerald's email:
You cannot directly limit the number of columns in the LP, but you can 
change some parameters so that SCIP deletes columns from the LP faster.
The parameter "lp/colagelimit" defines the age, i.e. the number of 
consecutive LP solving calls for which the column had value 0.0, after 
which the column is removed from the LP. You can decrease it (per 
default it is set to 10) in order to remove variables from the LP faster.
Alternatively or in addition to that, you can set the parameters 
"lp/cleanupcols" and "lp/cleanupcolsroot" to TRUE, so that all non-basic 
columns created at this node which have value 0.0 are deleted from the LP.
For both variants, you need to set the "removable" parameter to TRUE for 
the variables created in the pricing process.



More information about the Scip mailing list