[SCIP] local unlocking
James Cussens
james.cussens at bristol.ac.uk
Fri Feb 21 21:24:50 CET 2025
Hi Stefan,
Thanks, that is useful info. It may be that I will have to implement some of what is normally done as "dual presolving" (whether in the dualfix propagator or within the setppc constraint handler) during solving to get the propagations that follow from local removal of locks.
James
James Cussens
Room MVB 3.26
School of Computer Science, University of Bristol
Phone: +44 (0)117 455 8723
https://jcussens.github.io/
________________________________
From: Stefan Vigerske <svigerske at gams.com>
Sent: 20 February 2025 08:53
To: James Cussens <james.cussens at bristol.ac.uk>; scip at zib.de <scip at zib.de>
Subject: Re: [SCIP] local unlocking
Hi,
recreating a constraint seems a lot of effort indeed. I also don't think
that anything uses information about which constraints use which
variables during solve.
But you can update variable locks via SCIPaddVarLocksType(). You just
should also make sure to put the locks back when the locally fixed
variables are unfixed when SCIP moves to a different part of the tree.
The variable localboundchange events are useful for that.
My guess is that it isn't too harmful if the locks are wrong during
solve, though, since variable fixings based on information from locks
happens only during presolve, and during solve the locks are mainly used
to guide primal heuristics. But I may have forgotten about something.
Stefan
On 19/02/2025 15:57, James Cussens wrote:
> Hi all,
>
> I have a constraint handler with the following property: when some variables in a constraint are locally fixed (to appropriate values) then some other variables can be (locally) removed from the constraint. Note that this is different from propagation (sometimes these removable-from-the-constraint variables can have their domains reduced, sometimes not). I'm thinking about how to implement this. One option would be to remove the original constraint and then replace it with a local version of the constraint with the removable-from-the-constraint variables no longer present. Is this the best approach? I'm worried that I'll end up spending a lot of time creating new local constraints. I guess I'm interested if there is a 'nice' way of locally removing locks on variables.
>
> James
>
> James Cussens
> Room MVB 3.26
> School of Computer Science, University of Bristol
> Phone: +44 (0)117 455 8723
> https://jcussens.github.io/
>
>
> _______________________________________________
> 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/20250221/156b0cca/attachment.html>
More information about the Scip
mailing list