SCIPshrinkDisjunctiveVarSet

Function SCIPshrinkDisjunctiveVarSet 

Source
pub unsafe extern "C" fn SCIPshrinkDisjunctiveVarSet(
    scip: *mut SCIP,
    vars: *mut *mut SCIP_VAR,
    bounds: *mut f64,
    boundtypes: *mut c_uint,
    redundants: *mut c_uint,
    nvars: c_int,
    nredvars: *mut c_int,
    nglobalred: *mut c_int,
    setredundant: *mut c_uint,
    glbinfeas: *mut c_uint,
    fullshortening: c_uint,
) -> SCIP_RETCODE
Expand description

@defgroup PublicSpecialPresolveMethods Special Methods @ingroup PublicPresolverMethods @brief methods commonly used for presolving

@{ / /** try to reduce the necessary variable in a set of variables with corresponding bounds and boundtypes for which one must be fulfilled

e.g. a set of logicor or bounddisjunctive constraint variables would be such a set

consider the following set:

x1 >= 1, x2 >= 3, x3 >= 1, x4 <= 0

by (global) implication data (cliques, implications, and variable bounds) we have also the following implications given:

x1 >= 1 => x3 >= 1 x2 >= 2 => x3 >= 1 x4 <= 0 => x1 >= 1

Because of the last implication x4 is redundant, because x1 >= 1 would also be fulfilled in the variable set, so we can reduce the set by x4. Also, the both other implications and x3 >= 1 (in the given variable set) all imply exactly x3 >= 1, so we tighten the global lower bound of x3 to 1 and the set of variables gets redundant.