Overview | Group | Tree | Graph | Index | Concepts |
This function creates and returns a goal, using the optional numeric selector. If the variable has already been bound to a value, then this goal does nothing and succeeds. Otherwise, it sets a choice point and then alters the domain of the variable in recursive attempts to bind the variable. The way the goal alters the domain of the variable depends on the class of the variable and its optional selector. In other words, it tries values of the variable in an intelligent attempt to find a solution.
This function 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 an Integer or Enumerated Variable
When the variable is an integer variable or an enumerated variable, this function tries all values in the domain of the variable in the order indicated by the selector, removing those that fail at each trial, setting a choice point, and trying again recursively.
When the Variable Is a Set Variable
When the variable is a set variable, this function uses the selector to choose an element from the possible elements of the set to add to the required set of the variable. By default, the selector tries integers in ascending order. If failure occurs, the element is removed from the possible set, and another element is tried.
Differs from IloBestInstantiate
This goal differs from the goal returned by the function
IloBestInstantiate
because this goal will try all values
in the domain of the variable according to the selector until it succeeds or until the domain
is exhausted, whereas IloBestInstantiate
tries only one.
Float
and
type Int
, it is preferable to use the function IloDichotomize
with floating-point variables.<ilsolver/ilosolverint.>
<ilsolver/ilosolverset.>
See Also:
IloBestInstantiate, IloDichotomize, IloGenerate, IloGoal, IlcInstantiate