[SCIP] A few questions on SCIP_VARSTATUS
Leon Eifler
eifler at zib.de
Mon Feb 19 15:07:29 CET 2024
Hi Rolf,
> 1. SCIP_VARSTATUS has the values SCIP_VARSTATUS_LOOSE and
> SCIP_VARSTATUS_COLUMN for variables in the transformed problem.
> From the documentation, it is not clear to me how these differ from
> each other. How do these two differ in SCIP?
if a variable has been created but is not in the LP, it is considered
loose. As far as I know, all variables will be created with status
SCIP_VARSTATUS_LOOSE, and will be set to SCIP_VARSTATUS_COLUMN once the
LP relaxation is created. The difference is really only important if you
are doing column generation, where newly priced in variables will not
have a column yet.
> 2. Which status types from SCIP_VARSTATUS are allowed in transformed
> constraints returned by SCIP?
I think everything except SCIP_VARSTATUS_ORIGINAL.
> 3. What is the correct way, in presolving, to access the (so far)
> presolved constraint matrix formed by all linear constraints of the
> problem? I see a lot of implementations in SCIP call
> SCIPmatrixCreate(), but there is no documentation pointing to this
> method. Should I use this, or are there other alternatives?
Yes, if you need the problem matrix then you need to use `SCIPmatrixCreate`
> 4. Is there a method which returns only the set of active variables in
> SCIP? If I understand correctly, the active variables are those that
> are not fixed or aggregated during presolving. (SCIPgetActiveVars()
> returns only the active counterparts)
If you call SCIPgetVars in any solving stage other than
SCIP_STAGE_PROBLEM, it will only return the active variables. Whenever a
variable is fixed/(multi)aggregated/negated the variable is removed
from `transprob->vars` array and added to `transprob->fixedvars`
Best,
Leon
More information about the Scip
mailing list