Search engines
[Programming models]
Classes | |
| class | Gecode::Search::Statistics |
| Search engine statistics More... | |
| class | Gecode::Search::Options |
| Search engine options More... | |
| class | Gecode::DFS< T > |
| Depth-first search engine. More... | |
| class | Gecode::BAB< T > |
| Depth-first branch-and-bound search engine. More... | |
| class | Gecode::RBS< E, T > |
| Meta-engine performing restart-based search. More... | |
Namespaces | |
| namespace | Gecode::Search::Config |
Search configuration | |
Modules | |
| Stop-objects for stopping search | |
Functions | |
| template<class T > | |
| T * | Gecode::bab (T *s, const Search::Options &o=Search::Options::def) |
| Perform depth-first branch-and-bound search for subclass T of space s and options o. | |
| template<template< class > class E, class T > | |
| T * | Gecode::rbs (T *s, const Search::Options &o) |
| Perform restart-based search. | |
Detailed Description
Defines search engines. All search engines support recomputation. The behaviour of recomputation is controlled by a passing a search option object (see the class Gecode::Search::Options).
Requires
#include <gecode/search.hh>
Function Documentation
| T * Gecode::bab | ( | T * | s, | |
| const Search::Options & | o = Search::Options::def | |||
| ) | [inline] |
Perform depth-first branch-and-bound search for subclass T of space s and options o.
Additionally, s must implement a member function
virtual void constrain(const T& t)
Whenever exploration requires to add a constraint to the space c currently being explored, the engine executes c.constrain(t) where t is the so-far best solution.
| T * Gecode::rbs | ( | T * | s, | |
| const Search::Options & | o | |||
| ) | [inline] |
Perform restart-based search.
The engine uses the Cutoff sequence supplied in the options o to periodically restart the search of an engine of type E.
The class T can implement member functions
virtual void master(unsigned long int i, const Space* s)
and
virtual void slave(unsigned long int i, const Space* s)
Whenever exploration restarts or a solution is found, the engine executes the functions on the master and slave space. For more details, consult "Modeling and Programming with Gecode".
