Gecode::Search::Par::BAB< Tracer > Class Template Reference

Parallel branch-and-bound engine More...

`#include <bab.hh>`

## Classes

class | Worker
| Parallel branch-and-bound search worker More...

## Public Member Functions

Worker * | worker (unsigned int i) const
| Provide access to worker i.
Public Member Functions inherited from Gecode::Search::Par::Engine< Tracer >
const Options & | opt (void) const
| Provide access to search options.
unsigned int | workers (void) const
| Return number of workers.
Cmd | cmd (void) const
| Return current command.
void | block (void)
| Block all workers.
void | release (Cmd c)
| Release all workers.
void | wait (void)
| Ensure that worker waits.
void | ack_terminate (void)
| For worker to acknowledge termination command.
virtual void | terminated (void)
| For worker to register termination.
void | wait_terminate (void)
| For worker to wait until termination is legal.
void | terminate (void)
| For engine to peform thread termination.
void | ack_reset_start (void)
| For worker to acknowledge start of reset cycle.
void | ack_reset_stop (void)
| For worker to acknowledge stop of reset cycle.
void | wait_reset (void)
| For worker to wait for all workers to reset.
void | idle (void)
| Report that worker is idle.
void | busy (void)
| Report that worker is busy.
void | stop (void)
| Report that worker has been stopped.
| Engine (const Options &o)
| Initialize with options o.
virtual Space * | next (void)
| Return next solution (NULL, if none exists or search has been stopped).
virtual bool | stopped (void) const
| Check whether engine has been stopped.
Public Member Functions inherited from Gecode::Search::Engine
virtual | ~Engine (void)
| Destructor.
Public Member Functions inherited from Gecode::Support::Terminator
virtual | ~Terminator ()
| Destructor.

## Protected Attributes

Worker ** | _worker
| Array of worker references.
Space * | best
| Best solution so far.
Protected Attributes inherited from Gecode::Search::Par::Engine< Tracer >
Options | _opt
| Search options.
volatile Cmd | _cmd
| The current command.
Support::Mutex | _m_wait
| Mutex for forcing workers to wait.
Support::Mutex | _m_term
| Mutex for access to termination information.
volatile unsigned int | _n_term_not_ack
| Number of workers that have not yet acknowledged termination.
Support::Event | _e_term_ack
| Event for termination acknowledgment.
Support::Mutex | _m_wait_terminate
| Mutex for waiting for termination.
volatile unsigned int | _n_not_terminated
| Number of not yet terminated workers.
Support::Event | _e_terminate
| Event for termination (all threads have terminated).
Support::Mutex | _m_reset
| Mutex for access to reset information.
volatile unsigned int | _n_reset_not_ack
| Number of workers that have not yet acknowledged reset.
Support::Event | e_reset_ack_start
| Event for reset acknowledgment started.
Support::Event | e_reset_ack_stop
| Event for reset acknowledgment stopped.
Support::Mutex | m_wait_reset
| Mutex for waiting for reset.
Support::Mutex | m_search
| Mutex for search.
Support::Event | e_search
| Event for search (solution found, no more solutions, search stopped).
Support::DynamicQueue< Space *, Heap > | solutions
| Queue of solutions.
volatile unsigned int | n_busy
| Number of busy workers.
volatile bool | has_stopped
| Whether a worker had been stopped.

## Search control

void | solution (Space *s)
| Report solution s.

## Engine interface

| BAB (Space *s, const Options &o)
| Initialize for space s with options o.
virtual Statistics | statistics (void) const
| Return statistics.
virtual void | reset (Space *s)
| Reset engine to restart at space s.
virtual void | constrain (const Space &b)
| Constrain future solutions to be better than b.
virtual NoGoods & | nogoods (void)
| Constrain Return no-goods.
virtual | ~BAB (void)
| Destructor.

## Additional Inherited Members

Public Types inherited from Gecode::Search::Par::Engine< Tracer >
enum | Cmd { C_WORK , C_WAIT , C_RESET , C_TERMINATE }
| Commands from engine to workers. More...
Static Public Member Functions inherited from Gecode::HeapAllocated
static void * | operator new (size_t s)
| Memory management.
static void | operator delete (void *p)
| Free memory allocated from heap.
bool | signal (void) const
| Whether search state changed such that signal is needed.

## Detailed Description

template<class Tracer>
class Gecode::Search::Par::BAB< Tracer >

Parallel branch-and-bound engine

Definition at line 43 of file bab.hh.

## Constructor & Destructor Documentation

## BAB()

template<class Tracer>

Gecode::Search::Par::BAB< Tracer >::BAB | ( | Space * | s,
|  | const Options & | o )

inline

Initialize for space s with options o.

Definition at line 81 of file bab.hpp.

## ~BAB()

template<class Tracer>

Gecode::Search::Par::BAB< Tracer >::~BAB | ( | void |  | ) |

virtual

Destructor.

Definition at line 416 of file bab.hpp.

## Member Function Documentation

## worker()

template<class Tracer>

BAB< Tracer >::Worker * Gecode::Search::Par::BAB< Tracer >::worker | ( | unsigned int | i | ) | const

inline

Provide access to worker i.

Definition at line 46 of file bab.hpp.

## solution()

template<class Tracer>

void Gecode::Search::Par::BAB< Tracer >::solution | ( | Space * | s | ) |

inline

Report solution s.

Definition at line 117 of file bab.hpp.

## statistics()

template<class Tracer>

Statistics Gecode::Search::Par::BAB< Tracer >::statistics | ( | void |  | ) | const

virtual

Return statistics.

Implements Gecode::Search::Engine.

Definition at line 178 of file bab.hpp.

## reset()

template<class Tracer>

void Gecode::Search::Par::BAB< Tracer >::reset | ( | Space * | s | ) |

virtual

Reset engine to restart at space s.

Reimplemented from Gecode::Search::Engine.

Definition at line 360 of file bab.hpp.

## constrain()

template<class Tracer>

void Gecode::Search::Par::BAB< Tracer >::constrain | ( | const Space & | b | ) |

virtual

Constrain future solutions to be better than b.

Reimplemented from Gecode::Search::Engine.

Definition at line 187 of file bab.hpp.

## nogoods()

template<class Tracer>

NoGoods & Gecode::Search::Par::BAB< Tracer >::nogoods | ( | void |  | ) |

virtual

Constrain Return no-goods.

Reimplemented from Gecode::Search::Engine.

Definition at line 389 of file bab.hpp.

## Member Data Documentation

## _worker

template<class Tracer>

Worker** Gecode::Search::Par::BAB< Tracer >::_worker

protected

Array of worker references.

Definition at line 100 of file bab.hh.

## best

template<class Tracer>

Space* Gecode::Search::Par::BAB< Tracer >::best

protected

Best solution so far.

Definition at line 102 of file bab.hh.

The documentation for this class was generated from the following files:

- gecode/search/par/bab.hh
- gecode/search/par/bab.hpp