[SCIP] correct way to fix variables locally in consprop

Marc Pfetsch pfetsch at mathematik.tu-darmstadt.de
Sat Nov 18 19:42:35 CET 2023



On 18/11/2023 18:24, Brannon King wrote:
>> However, I have an issue in that I get overconstrained (non-optimal)
>> results if I call branchVar inside consenfolp...
> 
> Well, I thought it was related to branchVar, but actually, if I return
> infeasible there, it also fails. It was my understanding that
> consenfolp should return infeasible (or branch) when the relaxed
> solution (obtained via getSolVal) was infeasible. I only expect my
> constraint (modeled in the custom handler) to hold at optimal
> solutions. There may be many relaxed solutions that violate it on the
> way to optimum, but branching shouldn't eliminate those potential
> paths. Maybe I misunderstood how to handle this scenario in
> consenfolp.

I probably do not understand what you want to actually achieve, but this 
sounds as if you trying to solve a bilevel problem in which you have an 
optimality condition as constraint, i.e., some of the variables have to 
be optimal solutions to a second level optimization problem. If you have 
this, then you can enforce your constraints on such solutions. However, 
I think that you need completely different techniques for this case. The 
most usual would be to try to encode the optimality conditions (like KKT 
conditions) into your problem (if such are available).

In any case for implementing consenfolp you need a clear definition of 
what it means to be feasible.


More information about the Scip mailing list