Overview | Group | Tree | Graph | Index | Concepts |
This function creates and returns a node evaluator (an instance of
IloNodeEvaluator
) that implements Slice-Based Search in a
Concert Technology model.
A discrepancy is a right move in the path from the root of the search tree to the
current node. The intuition is that a left move (the first goal in an IlcOr
goal)
is better than a right move (the second goal). Thus, by limiting the number of discrepancies, we
try to stick close to the search heuristics (the goals to search for a solution of the problem being solved).
This implementation of Slice-Based Search divides the search tree into slices. Slice k
corresponds to the open nodes of the search tree with a number of discrepancies between
k*step
and (k + 1)*step - 1
. The node evaluator indicates that the search
should explore slice 0
, then slice 1
, then slice 2
, and so on.
This evaluator also discards nodes with a number of discrepancies greater than maxDiscrepancy
.
This technique is appropriate with constraint programming and generally offers better performance than
depth-first search.
This function returns an instance of IloNodeEvaluator
for use with
the member functions IloSolver::startNewSearch
and
IloSolver::solve
. An instance of IloSolver
extracts the node evaluator that it returns as an instance of IlcNodeEvaluator
for use during a Solver search.
See Also:
IloApply, IloNodeEvaluator, IlcNodeEvaluator