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_RETCODEExpand 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.