SCIPcomputeDecompVarsLabels

Function SCIPcomputeDecompVarsLabels 

Source
pub unsafe extern "C" fn SCIPcomputeDecompVarsLabels(
    scip: *mut SCIP,
    decomp: *mut SCIP_DECOMP,
    conss: *mut *mut SCIP_CONS,
    nconss: c_int,
) -> SCIP_RETCODE
Expand description

creates a decomposition of the variables from a labeling of the constraints

NOTE: by default, the variable labeling is based on a Dantzig-Wolfe decomposition. This means that constraints in named blocks have have precedence over linking constraints. If a variable exists in constraints from two or more named blocks, then this variable is marked as a linking variable. If a variable occurs in exactly one named block i>=0, it is assigned label i. Variables which are only in linking constraints are unlabeled. However, SCIPdecompGetVarsLabels() will label them as linking variables.

If the variables should be labeled for the application of Benders’ decomposition, the decomposition must be flagged explicitly via SCIPdecompSetUseBendersLabels(). With this setting, the presence in linking constraints takes precedence over the presence in named blocks. Now, a variable is considered linking if it is present in at least one linking constraint and an arbitrary number of constraints from named blocks.