Overview | Group | Tree | Graph | Index | Concepts |
This function creates and returns a goal in a Concert Technology model. The goal
attempts to assign values to the constrained floating-point variables in the array
vars
. To do so, it recursively searches half the domain of each variable
in the array at a time.
If the current variable is not yet bound, IloDichotomize
sets a
choice point, replaces the complete domain of the variable by one half of the domain
and calls itself recursively. If failure occurs then, it replaces the domain of the
current variable by the other half, and tries again recursively.
IloDichotomize
chooses the order in which to try to bind variables in
the array based on the argument of type IlcChooseFloatIndex
. If no choice
criterion is passed, IloDichotomize
will recursively consider the first
variable in the array until it is instantiated and then proceed to the next one.
When the argument increaseMin
is IloTrue
, the upper half
of the domain is tried first. When increaseMin
is IloFalse
,
the lower half of the domain is tried first.
When the optional argument precision
is strictly positive, at each
choice point, the domains of the variables are reduced more than usual. This reduction
is the same as the one performed by the goal IloGenerateBounds
.
This function returns an instance of IloGoal
for use
with the member functions IloSolver::startNewSearch
and
IloSolver::solve
. IloDichotomize
is extracted to
IlcGenerate
. An instance of IloSolver
extracts
the goal that it returns as an instance of IlcGoal
for use
during a Solver search.
This function works on numerical variables of type Float
and type Int
.
For an IloNumVarArray
of either type Float
or
type Int
, IloDichotomize
is extracted to IlcGenerate
. IlcGenerate
takes a variable
(chosen by _choose
) and if uninstantiated considers the two halves of
the domain (according to increaseMinFirst
. It then repeats this. If no
_choose
selector is given it will recursively consider the first variable
until it is instantiated and then proceed to the next one.
For an IloNumVar
of either type Float
or type Int
,
IloDichotomize
is extracted to IlcInstantiate
. IlcInstantiate
takes a variable
(chosen by _choose
) and if uninstantiated considers the two halves of
the domain (according to increaseMinFirst
. It then repeats this. If no
_choose
selector is given it will recursively consider the first variable
until it is instantiated and then proceed to the next one.
See Also:
IloGoal, IloSplit, IlcDichotomize, IlcGenerate, IlcInstantiate