[Scip] Strange behavior

Gerald Gamrath gamrath at zib.de
Tue Jun 19 13:28:39 MEST 2012


Hi Aurélien,

just to clarify how that happens at all: SCIP has an original and a 
transformed problem. Before presolving, the original problem is copied 
into the transformed one and all presolving and solving is done on the 
transformed problem, which in your case was solved to optimality. After 
solving was done, SCIP double-checks the solution with respect to the 
original, unchanged problem and tells you when the solution is not 
feasible there.

This can happen due to numerics, e.g., if some constraints were scaled 
in the transformed problem and the error was small enough there, but 
slightly too high in the original problem. That's definitely not the 
reason in your case, because the constraint is violated a lot. It can 
also happen because of wrong settings, as Stefan mentioned, or there 
might be a bug in SCIP or in your constraint handler.

In order to identify where the problem is located, please do as Stefan 
suggests.

Best,
Gerald

Am 19.06.2012 13:07, schrieb Stefan Heinz:
> Hi Aurélien,
>
> hard to tell where the issue is. You could write the pricer problem to a
> file via SCIPprintOrigProblem()
>
> http://scip.zib.de/doc/html/scip_8h.html#ab0fbe8783e109c1f89e47c63103a70e0
>
> and try to solve it with (plain) SCIP. Does that issue occur as well
> send us the instance. If that issue does not occur check if the
> constraints of the pricer problem are created "correctly". That mean,
> for example, that the check flag is set to TRUE.
>
> Best Stefan
>
> How do you create the constraint
> On 06/15/12 15:25, Aurélien Questel wrote:
>> Hi everyone,
>> I'm currently working on a B&Price algorithm, using a second scip instance to solve my pricing problem.
>>
>> I have a strange behavior on some instances.
>> Here is the output at the end of my pricer solving :
>>
>> SCIP Status        : problem is solved [optimal solution found]
>> Solving Time (sec) : 0.03
>> Solving Nodes      : 6
>> Primal Bound       : -1.69360996591490e+10 (2 solutions)
>> Dual Bound         : -1.69360996591490e+10
>> Gap                : 0.00 %
>>    [linear]<consCapa>: 0<= +5<y_11->11>[B] +5<y_11->8>[B] +5<y_11->9>[B] +5<y_12->12>[B] +5<y_12->4>[B] +5<y_12->7>[B] +5<y_12->8>[B] +5<y_12->11>[B] +5<y_11->12>[B] +5<y_13->13>[B] +5<y_13->9>[B] +5<y_13->10>[B] +5<y_14->14>[B] +5<y_14->5>[B] +5<y_14->8>[B] +5<y_14->11>[B] +5<y_11->14>[B] +5<y_15->15>[B] +5<y_15->5>[B] +5<y_15->7>[B] +5<y_15->8>[B] +5<y_15->12>[B] +5<y_12->15>[B] +5<y_16->16>[B] +5<y_16->1>[B] +5<y_16->3>[B] +5<y_16->4>[B] +5<y_16->7>[B] +5<y_16->12>[B] +5<y_12->16>[B] +5<y_17->17>[B] +5<y_17->2>[B] +5<y_17->6>[B] +5<y_17->10>[B] +5<y_17->13>[B] +5<y_13->17>[B] +5<y_18->18>[B] +5<y_18->2>[B] +5<y_18->9>[B] +5<y_18->10>[B] +5<y_18->11>[B] +5<y_11->18>[B] +5<y_18->12>[B] +5<y_12->18>[B] +5<y_19->19>[B] +5<y_19->1>[B] +5<y_19->3>[B] +5<y_19->6>[B] +5<y_19->7>[B] +5<y_19->16>[B] +5<y_16->19>[B] +5<y_20->20>[B] +5<y_20->5>[B] +5<y_20->9>[B] +5<y_20->11>[B] +5<y_11->20>[B] +5<y_20->13>[B] +5<y_13->20>[B] +5<y_20->14>[B] +5<y_14->20>[B]<= 20;
>> violation: right hand side is violated by 280
>>
>>
>> I just can't figure how scip can state he found a "best solution" while a constraint of the original problem is violated ?
>> (on this solution all my 'y' variables are set to 1, and other original constraints are violated too)
>> Do you have any clue where my mistake can be ?
>>
>> It happens when I use all the plugins :
>>       SCIP_CALL( SCIPincludeDefaultPlugins(_scipPricer) );
>>       /* include 2 connexity constraint handlers */
>> 	SCIP_CALL( SCIPincludeObjConshdlr(_scipPricer, new QRing2ConCliHdlr(_scipPricer, _Pd), FALSE) );
>>
>> Or only these ones :
>>
>>     SCIP_CALL( SCIPincludeConshdlrLinear(_scipPricer) );
>>     SCIP_CALL( SCIPincludeConshdlrIntegral(_scipPricer) );
>>     SCIP_CALL( SCIPincludeNodeselBfs(_scipPricer) );
>>     SCIP_CALL( SCIPincludeReaderCip(_scipPricer) );
>>
>>     /* DISPLAY *
>>     SCIP_CALL( SCIPincludeDispDefault(scip) );
>>     SCIP_CALL( SCIPincludeDialogDefault(scip) );
>>     /* include 2 connexity constraint handlers */
>>     SCIP_CALL( SCIPincludeObjConshdlr(_scipPricer, new QRing2ConCliHdlr(_scipPricer, _Pd), FALSE) );
>>
>>
>>
>> Thanks for all
>>
>> Best,
>>
>> Aurélien Questel
>>
>>
>> PS : the statistics are joint to this mail
>>
>>
>>
>>
>> _______________________________________________
>> 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





More information about the Scip mailing list