[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