[Scip] Pricing generates an already existing column

Cristina Núñez del Toro cristina.nunez at upc.edu
Mon May 19 14:10:26 CEST 2014


Dear all,

I'm working on a B&Price algorithm for a minimization MIP and I realized
that sometimes the algorithm generates already existing columns.


I have found a couple of similar cases in the mailing list archives and
tried the suggestions found there:


   - The delay flag of the pricer is set to TRUE, as is the initial flag
   for the new variables.
   - The variables are added via SCIPaddPricedVar.
   - The upper bound on the integer variables are set as SCIPinfinity. (the
   upper bound on binary variable are set as 1.0)
   - All constraints are set as modifiable
   - The solution status of the LP when the pricer is called by calling
   SCIPgetLPSolstat() is Optimal.

However, when I checked SCIPvarIsInLP for the variable added in the
previous iteration of the pricer, I got two different results:

   1. For the repeated variable which are equal to an initial variable from
   the Restricted Master Problem, SCIPvarIsInLP() is sometimes FALSE!
   I printed the name, the reduced cost and the LP value of all the active
   variables in the previous iteration of the pricer with
   SCIPvarIsActive(var), SCIPvarGetName(var) and SCIPgetVarRedcost(scip, var),
   SCIPgetSolVal(scip, NULL, var). I got printed the names of all the initial
   variables (including the one which is repeated) but with an initial "t_".
   Does that mean that they are "transformed variables" ?? I didn't expect
   that since I include the transformation of the variables in the
   initialization of the pricing (SCIP_DECL_PRICERINIT(ObjPricer::scip_init)
   by using SCIP_CALL(SCIPgetTransformedVar(scip, var, &var) .
   The reduced cost and the LP value of the initial repeated variable are
   negative and zero, respectively.
   2. For the repeated variables which are equal to earlier added pricing
   variables, SCIPvarIsInLP() is always TRUE! When I printed the name, reduced
   cost and LP value for the earlier added pricing variables, the name of the
   variables are printed without "t_". The reduced cost and the LP value of
   the repeated variable are negative and zero, respectively.

However, in both cases, the status of the repeated variable is not original
when SCIPvarGetStatus(var).

Do you have any clue that can help me?

Thanks in advance,

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


More information about the Scip mailing list