Hello,
I am implementing a custom branching rule in PySCIPOpt where candidate branches are evaluated by solving two probing LPs.
For an OPTIMAL probing LP, I compute the gain as:
gain = max(child_lp_obj - parent_lp_obj, 0.0)
However, I am unsure about the correct SCIP-compatible treatment of the following two cases:
SCIP_LPSOLSTAT.INFEASIBLE
SCIP_LPSOLSTAT.OBJLIMIT
My questions are:
-
When a probing LP is INFEASIBLE, what numerical value should be used as its gain when calling getBranchScoreMultiple()?
-
When a probing LP returns OBJLIMIT, should the gain be computed using SCIP's cutoff bound?
-
What should be used for an INFEASIBLE child before any incumbent exists and therefore before there is a finite cutoff bound?
-
In PySCIPOpt 5.4.1, Model.getCutoffbound() does not seem to be exposed. Is there another way to access SCIP's current cutoff bound?
-
Is getObjVal(original=False) equivalent to the cutoff bound once an incumbent exists, or can SCIP's internal cutoff bound differ from the incumbent objective?
I would like my custom probing-based branching score to reproduce SCIP's native strong-branching treatment of these cases as closely as possible.
Thank you!
Hello,
I am implementing a custom branching rule in PySCIPOpt where candidate branches are evaluated by solving two probing LPs.
For an OPTIMAL probing LP, I compute the gain as:
However, I am unsure about the correct SCIP-compatible treatment of the following two cases:
My questions are:
When a probing LP is INFEASIBLE, what numerical value should be used as its gain when calling getBranchScoreMultiple()?
When a probing LP returns OBJLIMIT, should the gain be computed using SCIP's cutoff bound?
What should be used for an INFEASIBLE child before any incumbent exists and therefore before there is a finite cutoff bound?
In PySCIPOpt 5.4.1, Model.getCutoffbound() does not seem to be exposed. Is there another way to access SCIP's current cutoff bound?
Is getObjVal(original=False) equivalent to the cutoff bound once an incumbent exists, or can SCIP's internal cutoff bound differ from the incumbent objective?
I would like my custom probing-based branching score to reproduce SCIP's native strong-branching treatment of these cases as closely as possible.
Thank you!