EasyLocalpp  3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SearchEngines

SearchEngine classes are the algorithmic core of the framework. They are responsible for performing a run of a local search technique, starting from an initial state and leading to a final one. More...

Classes

class  EasyLocal::Core::FirstImprovement< Input, State, Move, CFtype >
 
class  EasyLocal::Core::LocalSearch< Input, State, Move, CFtype >
 
class  EasyLocal::Core::SearchEngine< Input, State, CFtype >
 

Detailed Description

SearchEngine classes are the algorithmic core of the framework. They are responsible for performing a run of a local search technique, starting from an initial state and leading to a final one.

EasyLocalpp comprises a hierarchy of searchengines. The base class SearchEngine has only Input and State templates, and is connected to the solvers, which have no knowledge about the neighborhood relations.

The class LocalSearch requires also the template Move, and the pointers to the necessary helpers. It also stores the basic data common to all derived classes: the current state, the current move, and the number of iterations.

The use of templates allows us to directly define objects of type State, such as current_state and best_state, rather than accessing them through pointers. This feature makes the construction and the copy of objects of type State completely transparent to the user, since it does not require any explicit cast operation or dynamic allocation.