[Scip] SCIPcreateVar - initial

Stefan Vigerske stefan at math.hu-berlin.de
Fri Apr 15 12:28:04 MEST 2011


Hi,

thanks for the bugreport.

Here is a workaround:
Go to solve.c and search for
/* if the solution was accepted, the root node can be cut off by bounding */
if( stored && set->nactivepricers == 0 )

Then change the second line to
if( stored && set->nactivepricers == 0 && transprob->ncolvars == 
SCIPlpGetNCols(lp) )

What happens is that SCIP checks whether the initial solution of the LP 
is feasible. Since it is feasible and there are no active pricers, it 
also thinks that it is optimal and cuts off the root node. 
Unfortunately, the problem variable pricer does not count as real pricer 
and SCIP misses that not all variables are in the LP yet.

Stefan

PS: This is bug 127 in Bugzilla.


Am 14.04.2011 20:03, schrieb Mathieu Larose:
> Hi,
>
> Here is a small LP:
>
> min 99 * var1 + var2
> s.a
> var1 + var2 = 1
> 0<= var1<= 1
> 0<= var2<= 1
>
> Clearly, the optimal solution is var1 = 0, var2 = 1.
>
> Depending if variables are flagged as "initial" or "not initial", SCIP does
> not always find the optimal solution.
>
>
> Case 1: Both variables are flagged as "initial".
>
> Optimal solution found: var1 = 0, var2 = 1.
>
>
> Case 2: Both variables are flagged as "not initial".
>
> Optimal solution found: var1 = 0, var2 = 1.
>
>
> Case 3: var1 is flagged as "initial" and var2 is flagged as "not initial".
>
> Optimal solution found: var1 = 1, var2 = 0.
>
>
> Why does Case 3 find a suboptimal solution?
>
> (Test case is in attachment)
>
> Regards,
> Mathieu
>
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip



More information about the Scip mailing list