[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