Overview | Group | Tree | Graph | Index | Concepts |
This function creates and returns a goal, using the numeric selector
indicated by select
. If the variable var
has
already been bound to a value, then this goal does nothing and
succeeds. Otherwise, it sets a choice point and alters the domain of
var
in an attempt to assign a value to var
. The
way the goal alters the domain of var
varies, depending on the
class of var
and its argument select
.
When it takes an instance of the class IloEnv
as a parameter, it
returns an instance of IloGoal
for use with
the member functions IloSolver::startNewSearch
and IloSolver::solve
. An instance of IloSolver
extracts the goal that it returns as an instance
of IlcGoal
for use during a Solver
search.
When the Variable Is Integer or an Enumerated Variable
If its argument var
has already been bound,
IloBestInstantiate
does nothing and succeeds. Otherwise, it
sets a choice point and binds the invoking constrained variable to a value
from its domain. If the optional argument select
is provided,
then that value is chosen by select
; otherwise, the values are
tried in ascending order when the values are integers. If a failure occurs,
the tried-and-failed value is removed from the domain, and
IloBestInstantiate
succeeds.
When the Variable Is a Set of Variables
If var
has already been bound, then
IloBestInstantiate
does nothing and succeeds. Otherwise, it
sets a choice point, then adds an element of the possible set to
the required set of var
. The added element is chosen
by select
, if that optional argument is provided; otherwise,
the values are tried in ascending order when the values are integers. If
failure occurs, the element is removed from the possible set of
var
, and IloBestInstantiate
succeeds.
Differs from IloInstantiate
This goal differs from the one returned by the function IloInstantiate
. This goal tries only one value, chosen
according to select
, whereas when a failure occurs,
IloInstantiate
continues to try other values
according to select
until the domain of var
is
exhausted.
Float
and
type Int
, it is preferable to use the function IloDichotomize
with floating-point variables.See Also:
IloGoal, IloInstantiate, IlcBestInstantiate