[Scip] User constraints checking

Gerald Gamrath gamrath at zib.de
Tue Aug 11 00:04:21 CEST 2015


Dear Abdelkader,

the first line of the log shows that SCIP found a feasible solution with 
value -3. After that, SCIP is only looking for solutions with a strictly 
better objective value. The infeasibility reported is for this updated 
problem, which means that no improving solution does exist. This is 
clear when looking at your problem, because all (binary) variables have 
an objective coefficient of -1 and are set to 1 in the solution. By the 
way: your linear constraint allows only that solution.

So why is this solution accepted? This is because the flags of the 
created constraint are wrong: If you have a look at the last lines of 
usercons.cpp, you see that you set only the propagate flag to TRUE when 
creating your constraint, but the default is to have the first five 
bools set to TRUE. For example, number 3 and 4 are for enforcement and 
check of solutions. If those are set to FALSE, SCIP won't call the 
callbacks on this constraint (which might be useful for cuts, for example).

Best,
Gerald

Am 10.08.2015 um 23:35 schrieb Abdelkader Ouali:
> Dear Gerald,
>
> In order to clarify my situation, I made a quick example containing a 
> user constraint handler which stays always infeasible, I set both 
> scip_check and scip_enfolp to return SCIP_INFEASIBLE.
>
> When checking scip logs during solving process, i found a message 
> claims infeasibility :
> *feasible solution found by trivial heuristic after 0.0 seconds, 
> objective value -3.000000e+00*
> *presolving:*
> *propagator <pseudoobj> detected infeasibility*
> *
> *
> but after that, I get :
> *SCIP Status        : problem is solved [optimal solution found]*
> *Solving Time (sec) : 0.00*
> *Solving Nodes      : 0*
> *Primal Bound       : -3.00000000000000e+00 (1 solutions)*
> *Dual Bound         : -3.00000000000000e+00*
> *Gap                : 0.00 %*
>
> SCIP should print [infeasible] rather then [optimal solution found]
> Please find the source code and the file containing SCIP logs for the 
> example in the attachment.
>
> Best regards
> ---
> A. Ouali
>
>
> ------------------------------------------------------------------------
> Date: Mon, 10 Aug 2015 18:55:41 +0200
> From: gamrath at zib.de
> To: oualiaek at hotmail.fr; scip at zib.de
> Subject: Re: [Scip] User constraints checking
>
> Dear Abdelkader,
>
> can you send some more information and perhaps the output of SCIP? I 
> cannot imagine that SCIP states that the problem is infeasible but 
> prints a solution afterwards.
>
> The scip_check method is mainly used to check feasibility of solutions 
> generated by heuristics. Checking whether the node LP solution is 
> feasible is done by the scip_enfolp method, which should normally do 
> something to enforce feasibility, e.g., add a constraint or perform 
> branching, but can also just return infeasible. If you did not modify 
> this method to always return infeasible, it might happen that LP 
> solutions are accepted to be feasible.
>
> Best,
> Gerald
>
> On 10.08.2015 14:30, Abdelkader Ouali wrote:
>
>     Dear SCIP users,
>
>     I am implementing my own constraints using the constraint handler
>     as explained in the TSP example of SCIP,
>     The problem I am facing is the feasibility checking with my own
>     constraints, which they don't include problem variables in their
>     scope, but use them to check the feasibility of other given
>     information,
>     In order to see if SCIP respond to my constraints, I set the
>     callback function scip_check returns always infeasible. In solving
>     stage, SCIP detects the infeasibility, but after that it prints
>     solutions that ignore my constraints.
>
>     I want to know what is going on inside SCIP ! it detects
>     infeasibility but rather prints infeasible solutions.
>
>     Thanks in advance for any explanations.
>     ---
>     A. Ouali
>
>
>     _______________________________________________
>     Scip mailing list
>     Scip at zib.de  <mailto:Scip at zib.de>
>     http://listserv.zib.de/mailman/listinfo/scip
>
>

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


More information about the Scip mailing list