Namespace: ILOG.CPLEX
Assembly: ILOG.CPLEX (in ILOG.CPLEX.dll) Version: 22.1.1.0
Syntax
| C# |
|---|
public virtual void BasicPresolve( INumVar[] vars, double[] redlb, double[] redub, IRange[] rngs, bool[] redundant ) |
| Visual Basic |
|---|
Public Overridable Sub BasicPresolve ( _ vars As INumVar(), _ redlb As Double(), _ redub As Double(), _ rngs As IRange(), _ redundant As Boolean() _ ) |
Parameters
- vars
- Type: array<ILOG.Concert..::..INumVar>[]()[][]
The variables to query for possibly tightened bounds.
- redlb
- Type: array<System..::..Double>[]()[][]
The possibly tightened lower bounds.
- redub
- Type: array<System..::..Double>[]()[][]
The possibly tightened upper bounds.
- rngs
- Type: array<ILOG.Concert..::..IRange>[]()[][]
The constraints to query for redundancy.
- redundant
- Type: array<System..::..Boolean>[]()[][]
The boolean values reporting redundancy.
Remarks
This method can be used to compute tighter bounds for the variables of a model and to detect redundant constraints in the model extracted to the invoking Cplex object. For every variable specified by the argument vars, this method will return possibly tightened bounds in the corresponding elements of redlb and redub. Similarly, for every constraint specified by the argument rngs, this method will return a boolean value reporting whether or not the constraint is redundant in the model in the corresponding element of redundant.
The output arrays redlb and redub must have lengths greater than or equal to the length of the input array vars. Similarly, the output array rstat must have a length greater than or equal to the the length of the input array rngs.
For a semicontinuous or semi-integer variable, this method produces the lower bound of the variable, not the semicontinuous or semi-integer lower bound. If this method produces a lower bound less than or equal to zero, then the variable persists as a semicontinuous or semi-integer variable. In contrast, if this method produces a lower bound strictly greater than zero, then basic presolve has concluded that zero can be eliminated from the domain of the variable. Consequently, it is possible to change the type of the variable from semicontinuous to continuous or from semi-integer to integer. Afterwards, you can use the tightened bound without affecting the feasible region of the model.