|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--ilog.concert.IloColumnArray
Objects of the class IloColumnArray
are used to create an
array of variables using column-wise modeling. In column-wise modeling,
newly constructed variables are inserted into existing modeling
objects. The term column-wise comes from linear programing, where
the constraints are typically represented as a matrix. Adding new
variables to the optimization problem corresponds to adding columns to
the constraint matrix.
This is the procedure for column-wise modeling:
Start with the set of modeling objects of these classes
IloObjective
,IloRange
, andIloLPMatrix
For each of these objects call
IloMPModeler.columnArray
, with the object as a parameter,
along with the other parameters needed to install an array of new
variables in the existing modeling objects. See the
IloMPModeler.columnArray()
documentation
for details of these parameters.
The IloColumnArray
objects can then be linked to an
aggregate IloColumnArray
object with the method
IloColumnArray.and
, which will include all the individual
objects. If the new variables are to be installed in only one modeling
object, there is no need to use the method and
.
The IloColumnArray
object constructed this way is now ready to
be used to create an array of new variables and install them in the
existing modeling objects, as described by the IloColumnArray
object. This is done by passing the IloColumnArray
object as a
parameter to the constructor methods for arrays of variables, for example
IloMPModeler.numVarArray
or
IloMPModeler.intVarArray
. The newly created variables will
immediately be part of the existing modeling objects that have been used for
constructing the IloColumnArray
object.
The following example shows how to create an array of two new
variables with the bounds 0
and 1
and how to install them in
an objective and a range constraint, with linear coefficients all set to
1
:
IloNumVar[] newColumns(IloMPModeler modeler, IloObjective obj, IloRange rng) { double[] ones = {1.0, 1.0}; IloColumnArray objcol = modeler.columnArray(obj, ones); IloColumnArray rngcol = modeler.columnArray(rng, ones); return modeler.numVarArray(objcol.and(rngcol), 0.0, 1.0); }
IloMPModeler.columnArray(IloObjective, double[])
,
IloMPModeler.columnArray(IloLPMatrix, int, int[][], double[][])
,
IloMPModeler.columnArray(IloRange, double[])
,
IloMPModeler.numVarArray(IloColumnArray, double[], double[])
,
IloMPModeler.intVarArray(IloColumnArray, int[], int[])
,
IloMPModeler.semiContVarArray(IloColumnArray, double[],
double[], IloNumVarType[])
Nested Class Summary | |
static class |
IloColumnArray.SizeMismatchException
An exception that indicates a mismatched number of variables. |
Constructor Summary | |
IloColumnArray()
|
Method Summary | |
abstract int |
getSize()
Returns the number of variables that are created by the invoking IloColumnArray object. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public IloColumnArray()
Method Detail |
public abstract int getSize()
IloColumnArray
object. Every IloColumnArray
object is suitable for constructing a variable array of a specific length.
The length must be the same in each IloColumnArray
when
combining IloColumnArray
objects
with the method and
.
IloColumnArray
object.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |