[Scip] SCIPcreateVar - initial

Mathieu Larose mat087 at gmail.com
Fri Apr 15 17:12:31 MEST 2011


Thank you for the workaround.

I think you mean "prob" instead of "transprob" (version 2.0.1).


Mathieu


On Fri, Apr 15, 2011 at 8:26 AM, Tobias Achterberg <achterberg at zib.de>wrote:

> There already is a function to do both checks at once, namely
> SCIPprobAllColsInLP().
>
> So please change the condition to
>
>  if( stored && SCIPprobAllColsInLP(transprob, set, lp) )
>
>
> This is equivalent, but nicer.
>
>
> Tobias
>
>
>
> Stefan Vigerske wrote:
>
>> 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
>>>
>>
>> _______________________________________________
>> Scip mailing list
>> Scip at zib.de
>> http://listserv.zib.de/mailman/listinfo/scip
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserv.zib.de/mailman/private/scip/attachments/20110415/3ccf3696/attachment.html


More information about the Scip mailing list