Generated on Thu Apr 11 14:00:08 2019 for Gecode by doxygen 1.6.3

Gecode::Search::Par::PBS< Collect > Class Template Reference

Parallel portfolio engine implementation. More...

#include <pbs.hh>

List of all members.

Public Member Functions

 PBS (Engine **s, Stop **so, unsigned int n, const Statistics &stat)
 Initialize.
virtual Spacenext (void)
 Return next solution (NULL, if none exists or search has been stopped).
virtual Statistics statistics (void) const
 Return statistics.
virtual bool stopped (void) const
 Check whether engine has been stopped.
virtual void constrain (const Space &b)
 Constrain future solutions to be better than b.
virtual ~PBS (void)
 Destructor.

Protected Member Functions

bool report (Slave< Collect > *slave, Space *s)
 Process report from slave, return false if solution was ignored.

Protected Attributes

Statistics stat
 Master statistics.
Slave< Collect > ** slaves
 Slave engines.
unsigned int n_slaves
 Number of slave engines.
unsigned int n_active
 Number of active slave engines.
bool slave_stop
 Whether a slave has been stopped.
volatile bool tostop
 Shared stop flag.
Collect solutions
 Collect solutions in this.
Support::Mutex m
 Mutex for synchronization.
unsigned int n_busy
 Number of busy slaves.
Support::Event idle
 Signal that number of busy slaves becomes zero.

Detailed Description

template<class Collect>
class Gecode::Search::Par::PBS< Collect >

Parallel portfolio engine implementation.

Definition at line 138 of file pbs.hh.


Constructor & Destructor Documentation

template<class Collect >
Gecode::Search::Par::PBS< Collect >::PBS ( Engine **  s,
Stop **  so,
unsigned int  n,
const Statistics stat 
) [inline]

Initialize.

The key invariant of the engine is as follows:

  • n_busy is always zero outside the next() function.
  • that entails, that locking is only needed insided next().
  • the slaves 0..n_active-1 still might not have exausted their search space.
  • the slaves n_active..n_slaves-1 have exhausted their search space.

Definition at line 155 of file pbs.hpp.

template<class Collect >
Gecode::Search::Par::PBS< Collect >::~PBS ( void   )  [inline, virtual]

Destructor.

Definition at line 284 of file pbs.hpp.


Member Function Documentation

template<class Collect>
bool Gecode::Search::Par::PBS< Collect >::report ( Slave< Collect > *  slave,
Space s 
) [inline, protected]

Process report from slave, return false if solution was ignored.

Definition at line 170 of file pbs.hpp.

template<class Collect >
Space * Gecode::Search::Par::PBS< Collect >::next ( void   )  [inline, virtual]

Return next solution (NULL, if none exists or search has been stopped).

Reimplemented from Gecode::Search::Par::Engine< Tracer >.

Definition at line 210 of file pbs.hpp.

template<class Collect >
Statistics Gecode::Search::Par::PBS< Collect >::statistics ( void   )  const [inline, virtual]

Return statistics.

Implements Gecode::Search::Engine.

Definition at line 262 of file pbs.hpp.

template<class Collect >
bool Gecode::Search::Par::PBS< Collect >::stopped ( void   )  const [inline, virtual]

Check whether engine has been stopped.

Reimplemented from Gecode::Search::Par::Engine< Tracer >.

Definition at line 256 of file pbs.hpp.

template<class Collect >
void Gecode::Search::Par::PBS< Collect >::constrain ( const Space b  )  [inline, virtual]

Constrain future solutions to be better than b.

Reimplemented from Gecode::Search::Engine.

Definition at line 272 of file pbs.hpp.


Member Data Documentation

template<class Collect>
Statistics Gecode::Search::Par::PBS< Collect >::stat [protected]

Master statistics.

Definition at line 142 of file pbs.hh.

template<class Collect>
Slave<Collect>** Gecode::Search::Par::PBS< Collect >::slaves [protected]

Slave engines.

Definition at line 144 of file pbs.hh.

template<class Collect>
unsigned int Gecode::Search::Par::PBS< Collect >::n_slaves [protected]

Number of slave engines.

Definition at line 146 of file pbs.hh.

template<class Collect>
unsigned int Gecode::Search::Par::PBS< Collect >::n_active [protected]

Number of active slave engines.

Definition at line 148 of file pbs.hh.

template<class Collect>
bool Gecode::Search::Par::PBS< Collect >::slave_stop [protected]

Whether a slave has been stopped.

Definition at line 150 of file pbs.hh.

template<class Collect>
volatile bool Gecode::Search::Par::PBS< Collect >::tostop [protected]

Shared stop flag.

Definition at line 152 of file pbs.hh.

template<class Collect>
Collect Gecode::Search::Par::PBS< Collect >::solutions [protected]

Collect solutions in this.

Reimplemented from Gecode::Search::Par::Engine< Tracer >.

Definition at line 154 of file pbs.hh.

template<class Collect>
Support::Mutex Gecode::Search::Par::PBS< Collect >::m [protected]

Mutex for synchronization.

Definition at line 156 of file pbs.hh.

template<class Collect>
unsigned int Gecode::Search::Par::PBS< Collect >::n_busy [protected]

Number of busy slaves.

Reimplemented from Gecode::Search::Par::Engine< Tracer >.

Definition at line 158 of file pbs.hh.

template<class Collect>
Support::Event Gecode::Search::Par::PBS< Collect >::idle [protected]

Signal that number of busy slaves becomes zero.

Definition at line 160 of file pbs.hh.


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