FRAMES NO FRAMES

Class IlcMTNodeEvaluatorI

Definition file: ilsolver/search.h
Include file: <ilsolver/ilosolver.h>

This implementation class derives from the abstract implementation class IlcNodeEvaluatorI. Instances of IlcMTNodeEvaluatorI are implementation objects of node evaluators for multithreaded search.

Handle and Implementation Classes

A node evaluator is an object in Concert Technology. Like other Concert Technology entities, a node evaluator is implemented by means of two classes: a handle class and an implementation class. In other words, an instance of the class IlcNodeEvaluator (a handle) contains a data member (the handle pointer) that points to an instance of the class IlcNodeEvaluatorI (its implementation object).

Purpose of a Node Evaluator

A node evaluator is linked to the life cycle of an open node. When a node is created, the member function evaluate is called to evaluate the node. When the solver has to decide whether it should jump to another node, it calls the member function subsume.

A node evaluator has its own life cycle:

Implementing Your Own Node Evaluator

You implement a node evaluator much the same way as you implement a search selector.

The function IlcMTMinimizeVar returns an instance of IlcMTSearchSelector. In the documentation of that function, we describe part of its implementation details. From that description, you see how a search selector is used and what you must include in your own implementation of a search selector.

To get an idea of how to implement your own node evaluator, see IlcMTMinimizeVar.

See Also:

Constructor Summary
public IlcMTNodeEvaluatorI(IloSolver s, IlcBool duplicate)
Method Summary
public voidaddFloatVar(IlcFloatVar v, const char * name)
public voidaddIntVar(IlcIntVar v, const char * name)
public IlcFloatVargetFloatVar(IloSolver s, IlcFloatVarRef ref) const
public IlcFloatVarRefgetFloatVarRef(const char *) const
public IlcIntVargetIntVar(IloSolver s, IlcIntVarRef ref) const
public IlcIntVarRefgetIntVarRef(const char * name) const
Inherited Methods from IlcNodeEvaluatorI
duplicateEvaluator, evaluate, init, subsume
Constructor Detail

IlcMTNodeEvaluatorI

public IlcMTNodeEvaluatorI(IloSolver s, IlcBool duplicate)

This constructor creates a node evaluator for multithreaded search. The parameter duplicate indicates whether the object is an internal copy used by the solver (duplicate = IlcTrue), or whether it is just a template.


Method Detail

addFloatVar

public void addFloatVar(IlcFloatVar v, const char * name)

This member function stores the constrained floating-point variable v under the name indicated by name.


addIntVar

public void addIntVar(IlcIntVar v, const char * name)

This member function stores the constrained integer variable v under the name indicated by name.


getFloatVar

public IlcFloatVar getFloatVar(IloSolver s, IlcFloatVarRef ref) const

This member function retrieves the variable stored by the solver s under the name corresponding to the reference ref.


getFloatVarRef

public IlcFloatVarRef getFloatVarRef(const char *) const

This member function retrieves all the constrained floating-point variables stored under the name indicated by name.


getIntVar

public IlcIntVar getIntVar(IloSolver s, IlcIntVarRef ref) const

This member function retrieves the variable stored by the solver s under the name corresponding to the reference ref.


getIntVarRef

public IlcIntVarRef getIntVarRef(const char * name) const

This member function retrieves all the constrained integer variables stored under the name indicated by name.