[SCIP] My Branch-and-Cut algorithm says that problem is infeasible even though it has a solution

Gerald Gamrath gamrath at zib.de
Fri Mar 22 12:39:31 CET 2019


Dear Matheus,

can you check the bounds of your variables after SCIP claimed 
infeasibility? Or check whether it did some presolve reductions?
I would guess that duality fixing fixed some (or all) or your variables 
to 0.

Just looking at your problem in the beginning, there is no constraint 
that hinders SCIP to set a variable to 0, which would also be the best 
value w.r.t. the objective function.
If your constraint handler will add such constraints later, it should 
add down locks to all potentially involved variables in the CONSLOCK 
callback.
Perhaps you forgot to implement this callback? If you don't set the 
locks, SCIP assumes that it can safely set these variables to their 
lower bound.

Best,
Gerald

On 19.03.19 19:56, Matheus Ota wrote:
> Hello all,
>
> I'm currently implementing a Branch-and-Cut algorithm using SCIP. I've 
> already implemented the Constraint Handler that add the constraints 
> during the Branch-and-Bound procedure. The problem is that, after 
> adding some constraints, SCIP says that the problem has become 
> infeasible, even though it clearly has a solution. For example, in 
> this problem:
> OBJECTIVE
>   Sense            : minimize
> VARIABLES
>   [binary] <x_3,2>: obj=5, original bounds=[0,1]
>   [binary] <x_3,0>: obj=8.9443, original bounds=[0,1]
>   [binary] <x_3,1>: obj=8, original bounds=[0,1]
>   [binary] <x_2,3>: obj=5, original bounds=[0,1]
>   [binary] <x_2,1>: obj=5, original bounds=[0,1]
>   [binary] <x_2,0>: obj=5, original bounds=[0,1]
>   [binary] <x_1,3>: obj=8, original bounds=[0,1]
>   [binary] <x_1,2>: obj=5, original bounds=[0,1]
>   [binary] <x_1,0>: obj=8.9443, original bounds=[0,1]
>   [binary] <x_0,3>: obj=8.9443, original bounds=[0,1]
>   [binary] <x_0,1>: obj=8.9443, original bounds=[0,1]
>   [binary] <x_0,2>: obj=5, original bounds=[0,1]
>
> After the Constraint Handler (in the CONSEPALP method) adds:
> 1 <= +1<t_x_3,1> +1<t_x_2,1> +1<t_x_0,1> <= 1e+20
> 1 <= +1<t_x_2,3> +1<t_x_1,3> +1<t_x_0,3> <= 1e+20
>
> SCIP says that problem is infeasible, even though it clearly has a 
> solution (setting all variables to 1, for example). Any thoughs here?
>
> Thanks,
> Matheus
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20190322/fd048cf6/attachment.html>


More information about the Scip mailing list