# search.hh File Reference

### (Revision: 15233)

`#include <gecode/kernel.hh>`

`#include <gecode/support/auto-link.hpp>`

`#include <gecode/search/exception.hpp>`

`#include <gecode/search/statistics.hpp>`

`#include <gecode/search/cutoff.hpp>`

`#include <gecode/search/options.hpp>`

`#include <gecode/search/stop.hpp>`

`#include <gecode/search/engine.hpp>`

`#include <gecode/search/base.hpp>`

`#include <gecode/search/build.hpp>`

`#include <gecode/search/traits.hpp>`

`#include <gecode/search/sebs.hpp>`

`#include <gecode/search/dfs.hpp>`

`#include <gecode/search/bab.hpp>`

`#include <gecode/search/lds.hpp>`

`#include <gecode/search/rbs.hpp>`

`#include <gecode/search/pbs.hpp>`

Go to the source code of this file.

## Classes | |

class | Gecode::Search::Statistics |

Search engine statistics More... | |

class | Gecode::Search::Cutoff |

Base class for cutoff generators for restart-based meta engine. More... | |

class | Gecode::Search::CutoffConstant |

Cutoff generator for constant sequence. More... | |

class | Gecode::Search::CutoffLinear |

Cutoff generator for linear sequence. More... | |

class | Gecode::Search::CutoffLuby |

Cutoff generator for the Luby sequence. More... | |

class | Gecode::Search::CutoffGeometric |

Cutoff generator for the geometric sequence. More... | |

class | Gecode::Search::CutoffRandom |

Cutoff generator for the random sequence. More... | |

class | Gecode::Search::CutoffAppend |

Cutoff generator appending two cutoff generators. More... | |

class | Gecode::Search::CutoffMerge |

Cutoff generator merging two cutoff generators. More... | |

class | Gecode::Search::CutoffRepeat |

Cutoff generator that repeats a cutoff from another cutoff generator. More... | |

class | Gecode::Search::Options |

Search engine options More... | |

class | Gecode::Search::Stop |

Base-class for Stop-object. More... | |

class | Gecode::Search::NodeStop |

Stop-object based on number of nodes More... | |

class | Gecode::Search::FailStop |

Stop-object based on number of failures More... | |

class | Gecode::Search::TimeStop |

Stop-object based on time More... | |

class | Gecode::Search::Engine |

Search engine implementation interface More... | |

class | Gecode::Search::Base< T > |

Base-class for search engines. More... | |

class | Gecode::Search::Builder |

A class for building search engines. More... | |

class | Gecode::SEBs |

Passing search engine builder arguments. More... | |

class | Gecode::DFS< T > |

Depth-first search engine. More... | |

class | Gecode::BAB< T > |

Depth-first branch-and-bound search engine. More... | |

class | Gecode::LDS< T > |

Limited discrepancy search engine. More... | |

class | Gecode::RBS< T, E > |

Meta-engine performing restart-based search. More... | |

class | Gecode::PBS< T, E > |

Meta engine using a portfolio of search engines. More... | |

## Namespaces | |

namespace | Gecode |

Gecode toplevel namespace | |

namespace | Gecode::Search |

Search engines | |

namespace | Gecode::Search::Sequential |

Sequential search engine implementations | |

namespace | Gecode::Search::Parallel |

Parallel search engine implementations | |

namespace | Gecode::Search::Meta |

Meta search engine implementations | |

namespace | Gecode::Search::Meta::Sequential |

Sequential meta search engine implementations | |

namespace | Gecode::Search::Meta::Parallel |

Parallel meta search engine implementations | |

namespace | Gecode::Search::Config |

Search configuration | |

## Defines | |

#define | GECODE_SEARCH_EXPORT |

#define | GECODE_LIBRARY_NAME "Search" |

## Typedefs | |

typedef Search::Builder * | Gecode::SEB |

Type for a search engine builder. | |

## Functions | |

template<class T , class E > | |

Engine * | Gecode::Search::build (Space *s, const Options &opt) |

Build an engine of type E for a script T. | |

template<class T > | |

T * | Gecode::dfs (T *s, const Search::Options &o=Search::Options::def) |

Invoke depth-first search engine for subclass T of space s with options o. | |

template<class T > | |

SEB | Gecode::dfs (const Search::Options &o=Search::Options::def) |

Return a depth-first search engine builder. | |

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<class T > | |

SEB | Gecode::bab (const Search::Options &o=Search::Options::def) |

Return a depth-first branch-and-bound search engine builder. | |

template<class T > | |

T * | Gecode::lds (T *s, const Search::Options &o=Search::Options::def) |

Invoke limited-discrepancy search for s as root node and optionso. | |

template<class T > | |

SEB | Gecode::lds (const Search::Options &o=Search::Options::def) |

Return a limited discrepancy search engine builder. | |

template<class T , template< class > class E> | |

T * | Gecode::rbs (T *s, const Search::Options &o) |

Perform restart-based search. | |

template<class T , template< class > class E> | |

SEB | Gecode::rbs (const Search::Options &o) |

Return a restart search engine builder. | |

template<class T , template< class > class E> | |

Engine * | Gecode::Search::Meta::sequential (T *master, const Search::Statistics &stat, Options &opt) |

Build a sequential engine. | |

template<class T , template< class > class E> | |

Engine * | Gecode::Search::Meta::sequential (T *master, SEBs &sebs, const Search::Statistics &stat, Options &opt, bool best) |

Build a sequential engine. | |

template<class T , template< class > class E> | |

Engine * | Gecode::Search::Meta::parallel (T *master, const Search::Statistics &stat, Options &opt) |

Build a parallel engine. | |

template<class T , template< class > class E> | |

Engine * | Gecode::Search::Meta::parallel (T *master, SEBs &sebs, const Search::Statistics &stat, Options &opt, bool best) |

Build a parallel engine. | |

template<class T , template< class > class E> | |

T * | Gecode::pbs (T *s, const Search::Options &o=Search::Options::def) |

Run a portfolio of search engines. | |

template<class T > | |

SEB | Gecode::pbs (const Search::Options &o=Search::Options::def) |

Return a portfolio search engine builder. | |

## Variables | |

const bool | Gecode::Search::Config::clone = true |

Whether engines create a clone when being initialized. | |

const double | Gecode::Search::Config::threads = 1.0 |

Number of threads to use. | |

const unsigned int | Gecode::Search::Config::c_d = 8 |

Create a clone after every c_d commits (commit distance). | |

const unsigned int | Gecode::Search::Config::a_d = 2 |

Create a clone during recomputation if distance is greater than a_d (adaptive distance). | |

const unsigned int | Gecode::Search::Config::steal_limit = 3 |

Minimal number of open nodes for stealing. | |

const unsigned int | Gecode::Search::Config::initial_delay = 5 |

Initial delay in milliseconds for all but first worker thread. | |

const unsigned int | Gecode::Search::Config::d_l = 5 |

Default discrepancy limit for LDS. | |

const double | Gecode::Search::Config::base = 1.5 |

Base for geometric restart sequence. | |

const unsigned int | Gecode::Search::Config::slice = 250 |

Size of a slice in a portfolio and scale factor for restarts(in number of failures). | |

const unsigned int | Gecode::Search::Config::nogoods_limit = 128 |

Depth limit for no-good generation during search. |