Go to the documentation of this file.
27 #ifndef AlpsKnowledgePool_h_
28 #define AlpsKnowledgePool_h_
36 #include "CoinError.hpp"
64 virtual std::pair<AlpsKnowledge*, double>
getKnowledge()
const = 0;
73 double> >& kls)
const = 0;
virtual int getNumKnowledges() const =0
Return size of the pool.
AlpsKnowledgePoolType type_
virtual std::pair< AlpsKnowledge *, double > getBestKnowledge() const =0
Query the best knowledge in the pool.
virtual void getAllKnowledges(std::vector< std::pair< AlpsKnowledge *, double > > &kls) const =0
Get a reference to all the knowledges in the pool.*/.
virtual int getMaxNumKnowledges() const =0
Query the quantity limit of knowledges.
virtual void addKnowledge(AlpsKnowledge *nk, double priority)=0
Add a knowledge to pool.
This is an abstract base class, fixing an API for pool types of Alps, AlpsNodePool,...
AlpsKnowledgePool(AlpsKnowledgePoolType type)
Default constructor.
virtual std::pair< AlpsKnowledge *, double > getKnowledge() const =0
Check the first item in the pool.
The abstract base class of Alps knowledges generated during the search.
virtual void popKnowledge()=0
Pop the first knowledge from the pool.
virtual bool hasKnowledge() const =0
Check whether the pool is empty.
virtual ~AlpsKnowledgePool()
Destructor.
virtual void setMaxNumKnowledges(int num)=0
Set the quantity limit of knowledges that can be stored in the pool.
AlpsKnowledgePool & operator=(AlpsKnowledgePool const &)
Disable copy assignment operator.