[SCIP] The strange behavior of the CONSENFOLP callback assertion

Mathieu Besançon mathieu.besancon at gmail.com
Thu Aug 3 18:03:19 CEST 2023


Dear Abbas,

1. The price-and-cut-loop happens before the constraint handler is called,
this corresponds to the step where the LP relaxation has been solved, and
the rounds of cuts (from separator plugins) have already happened.

2. consenfoXYZ acts on a primal solution by adding a constraint, cut, or
something else. In contrast, the check function only computes whether a
violation of the constraint represented by the constraint handler is
present at the current solution, and returns whether the solution is
feasible or infeasible.
https://www.scipopt.org/doc/html/CONS.php

2 bis. I am not sure to understand what you mean by this one. Is the
solution feasible for your constraint? If yes, you can just use
SCIP_FEASIBLE as a result. If this solution is not feasible, then you can
do one of the actions detailed in the documentation page linked above. If
the only possible thing is determining the current solution as infeasible,
then the ENFO constraint can use a result SCIP_INFEASIBLE.

3. I don't think create data is necessary for a constraint handler but not
sure on this one.

Best,
Mathieu


On Sat, Jul 29, 2023 at 9:05 AM Abbas Omidi <abb.omidi at gmail.com> wrote:

> Dear support team,
>
> I am working on the problem, and I am willing to use SCIP's*onshdlr*
> callback, preferably PySCIPopt, to check how the constraints might be
> added to the model. The problem I have is a simple linear program, MILP,
> that is solved optimality. I sum up my questions as follows and am
> wondering if, you can advise me.
>
> 1) As the definition of *consenfolp/consenfops *is very specific and
> contains the term *price-and-cut loop*, What does the price-and-cut loop
> mean?
>
> 2) What is the difference between *consenfolp/consenfops *and *conscheck* when
> applied to the model?
>
> 2) As my problem has a primal feasible solution, actually optimal one,
> and already other callbacks seem to work fine, how is it possible to reject
> the constraints/solution by *consenfolp/consenfops*?
>
> 3) Is it still necessary to use *conshdlr.createData* when we want to add
> the constraint?
>
>
> (The link <http://listserv.zib.de/pipermail/scip/2023-July/004687.html>
> to my previous post)
> Best regards
> Abbas
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
>


-- 
Mathieu Besançon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20230803/0b41c9c5/attachment.html>


More information about the Scip mailing list