| 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