[SCIP] Accessing final simplex tableau for strong branching children nodes
Marc Pfetsch
pfetsch at mathematik.tu-darmstadt.de
Fri Jun 18 18:35:51 CEST 2021
Dear Prateek!
> Is it possible to extract the final solution, i.e., values of the
> decision variables, in each of the strong branching children nodes?
>
> I came to this function in|lp.c|, `SCIPcolGetStrongbranch`. I don't see
> a way to extract the final solution (values of the decision variables)
> of each of the children nodes from this function. |sbup| and |sbdown|
> probably refer to the objective value. Can I also get the final
> solution? If so, what should I use?
This does not seem to be easy, since the behavior probably depends on
the LP solver. What you can do, is to modify the function
SCIPlpiStrongbranchFrac() in lpi_XYZ.c, where XYZ is your used LP
solver. You can then get the solution, if the particular LP-solver
allows you to (SoPlex for instance will, since we use the ordinary solve
routines internally).
Note, however, that strong branching is usually run with an iteration
limit. If the dual simplex is used (which is advisable due to hot
start), you will not necessarily get a feasible solution.
> If the above is doable, is it also possible to read the final simplex
> tableau for each of the children nodes? Specifically, shadow prices and
> reduced costs?
If you modify the LP-interface then usually yes. Note, however, that
this might depend on the LP-solver. For instance, I am not sure whether
the CPLEX function CPXstrongbranch() allows you to extract this
information after it has been called. Again for SoPlex this should be
possible.
> I am aware that all of the above relies on solving the children nodes
> exactly, which might not be the case with strong branching. Can you also
> confirm if the default settings allow for exact solving for the strong
> branching children?
This again will depend on the LP-solver, for instance, if special
functions are called like for CPLEX. For most solvers, the solution
should be "exact" (i.e., up to numerical tolerances) if the iteration
limit is large enough.
Best
Marc
More information about the Scip
mailing list