[Scip] Pricing generates an already existing column

Cristina Núñez del Toro cristina.nunez at upc.edu
Wed May 28 19:19:27 CEST 2014


Hello Martin and Gerarld,

Thanks for your valuable ideas. I've done your suggestions without almost
any changes:

About Martin's:

1. I've check over again my reduced cost computation.
2. I changed the floating point check for the reduced cost. Now I use
   if( SCIPisNegative(scip, redcost) ) instead of if( redcost < 0? )
3. I was using CPLEX 12.5 as the LP solver. I installed Soplex 2.0.0,
however some (not the same) columns are still repeated.

About Gerald's :

1. The initial flag of the variables in the initial RMP is now TRUE.
2. I have changed to SCIPchgVarUbLazy(scip, var, 1.0) for all the binary
variables (the initials and the new ones generated by the pricing routine).
After doing this, for my proof (and small) instance, I got only 1 repeated
variable instead of 57 !!! Unfortunately, for larger instances, there are
still generated a lot of repeated columns.

My question about printing "t_" on the initial variables was mainly to
discard the idea of acceding to transformed values/data.

Let me give you more details about my problem. I'm working on a RMP
obtained by discarding some sets of constraints from an original problem I
am studying. I have 2 sets of variables, the first ones are declared as
binary, and the seconds as integer. The RMP contains all the necessary
integer variables but only a few amount of the binary . To generate new
columns to add to the RMP, I solve a pricing problem taking into account
the constraints I've dropped before. Of course, I use the dual values of
the RMP as input data for the objective function coefficients of the
pricing problem. When the pricing problem gives me a column that already
exists in the RMP (initial or previously generated), I check the LP
solution (actually confirmed as optimal) and I get that, for the repeated
variable, the reduced cost is negative and the LP value is 0. In fact, the
reduced cost value is equal to the objective function of the pricing
problem!!! So, I hardly doubt about any mistake on the computation of the
pricing problem. Because all the generated variables are binary, the lower
and upper bounds are 0.0 and 1.0 ( I have already set the lazy upper bound
as 1.0 as suggested ).  I can't not understand how an optimal LP solution
contains a variable with this values. That is the reason of my previous
idea of acceding to transformed data. A quite interesting issue is that, in
some cases, the variable is gets FALSE when I look for SCIPvarIsInLP(). How
is possible for a variable that is not in the LP problem to contain such LP
and reduced cost values? Even that your comment about branching was focus
on variables with upper bound = 0, now I am thinking that maybe the
branching rule is somehow forbidding some of the variables. How can I check
this behaviour?  I do not use any special rule for the branching. All the
branching procedure is set as default.



Thank you in advance,

Best regards,

---
Cristina Nuñez
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20140528/df976ea2/attachment.html>


More information about the Scip mailing list