Semi-continuous variables.
For a list of all members of this type, see ISemiContVar Members.
Objects implementing this interface represent constrained semi-continuous modeling variables. Semi-continuous variables implement the interface INumVar the superinterface of numeric variables. In an instance of INumVar
, lb or LB denotes the lower bound of the variable, and ub or UB denotes its upper bound. The upper bound need not be finite. In an instance of the derived interface ISemiContVar
, sclb or SCLB denotes the semi-continuous lower bound. The semi-continuous lower bound must not be negative. An attempt to assign a negative value to sclb will raise an error.
In formal terms, if lb <= 0, then a semi-continuous variable is a numeric variable with the feasible set of {0, [sclb, ub]}, where 0 < sclb < ub; otherwise, for other values of lb, the feasible set of a semi-continuous variable is the intersection of the interval [lb, ub] with the set {0, [sclb, ub]}. The semi-continuous lower bound sclb may differ from the lower bound of an ordinary numeric variable in that the semi-continuous variable is restricted to the semi-continuous region. For example, the following conditions declare the bounds of a semi-continuous variable and the corresponding feasible region, where square brackets denote a closed interval (that is, an interval including its endpoint).
When numerical bounds are given to an integer variable (such as an instance of IIntVar
or INumVar
with Type = Int) in the constructors or via a modifier (such as setUB
, setLB
, setBounds
), they are inwardly rounded to an integer value. UB is rounded down, and LB is rounded up.
With lb
as the lower bound, ub
as the upper bound, and sclb
as the semi-continuous lower bound of the variable, the feasible region of a semi-continuous variable is defined like this:
{lb <= x <= ub: x >= sclb || x == 0}
As ISemiContVar
is an extension of INumVar
, semi-continuous variables can appear wherever regular variables can appear; that is, as variables in expressions, in constraints, and so forth.
Semi-continuous variables are created by the methods IMPModeler.SemiContVar and SemiContVarArray.
See also IMPModeler.SemiContVar and SemiContVarArray.Namespace: ILOG.Concert
Assembly: ILOG.CPLEX (in ILOG.CPLEX.dll)