MultiAgentDecisionProcess
PartialPolicyPoolInterface Class Referenceabstract

PartialPolicyPoolInterface is an interface for PolicyPools containing Partial Joint Policies. More...

#include <PartialPolicyPoolInterface.h>

Inheritance diagram for PartialPolicyPoolInterface:
[legend]

Public Member Functions

size_t Empty () const
 return whether the number of items in the policy pool is 0 More...
 
virtual
PartialPolicyPoolItemInterface_sharedPtr 
GetBestRanked () const =0
 returns the contained item with the highest value. More...
 
virtual void Init (const Interface_ProblemToPolicyDiscretePure *pu)=0
 Initializes the Policy pool with the empty joint policy. More...
 
virtual void Insert (PartialPolicyPoolItemInterface_sharedPtr ppi)=0
 Add a PolicyPoolItem to the Pool. More...
 
virtual
PartialPolicyPoolInterface
operator= (const PartialPolicyPoolInterface &o)=0
 Copy assignment operator. More...
 
virtual void Pop (PartialPolicyPoolItemInterface_sharedPtr ppiToBeRemoved=PartialPolicyPoolItemInterface_sharedPtr())=0
 Removes the item returned by 'Select'. More...
 
virtual void PopBestRanked ()=0
 remove the GetBestRanked() item More...
 
virtual void Prune (double v)=0
 prune the items in the policy pool with exp.value < v More...
 
virtual
PartialPolicyPoolItemInterface_sharedPtr 
Select () const =0
 The 'Select' operator from refGMAA. More...
 
virtual size_t Size () const =0
 return teh number of items in the policy pool More...
 
virtual std::string SoftPrint () const =0
 
virtual void Union (PartialPolicyPoolInterface_sharedPtr pp)=0
 add all elements of pp to 'this'. More...
 
virtual ~PartialPolicyPoolInterface ()
 (default) Constructor More...
 

Detailed Description

PartialPolicyPoolInterface is an interface for PolicyPools containing Partial Joint Policies.

Constructor & Destructor Documentation

virtual PartialPolicyPoolInterface::~PartialPolicyPoolInterface ( )
inlinevirtual

(default) Constructor

Copy constructor. Destructor.

Member Function Documentation

size_t PartialPolicyPoolInterface::Empty ( ) const
inline

return whether the number of items in the policy pool is 0

...

References Size().

virtual PartialPolicyPoolItemInterface_sharedPtr PartialPolicyPoolInterface::GetBestRanked ( ) const
pure virtual

returns the contained item with the highest value.

This function returns a pointer to the PartialPolicyPoolItemInterface contained in this Policy pool with the highest (heuristic) value.

Heuristic is between brackets, because this function is typically used when we found lower bounds (i.e. full policies) and then select the maximum lowerbound.

Implemented in PolicyPoolPartialJPolValPair.

Referenced by GeneralizedMAAStarPlanner::Prune().

virtual void PartialPolicyPoolInterface::Init ( const Interface_ProblemToPolicyDiscretePure pu)
pure virtual

Initializes the Policy pool with the empty joint policy.

A pointer to a Interface_ProblemToPolicyDiscretePure is needed to create the joint policy.

Implemented in PolicyPoolPartialJPolValPair.

virtual void PartialPolicyPoolInterface::Insert ( PartialPolicyPoolItemInterface_sharedPtr  ppi)
pure virtual

Add a PolicyPoolItem to the Pool.

...

Implemented in PolicyPoolPartialJPolValPair.

virtual PartialPolicyPoolInterface& PartialPolicyPoolInterface::operator= ( const PartialPolicyPoolInterface o)
pure virtual

Copy assignment operator.

This must be implemented by the derived class (with this prototype). For an example, see PolicyPoolJPolValPair.

For now, this function is purely abstract. Might there be some members added to this (base) class, then an implementation could be made. This should then be called using PartialPolicyPoolInterface::operator=(o) from the copy assignment operator of the derived class. See also http://www.icu-project.org/docs/papers/cpp_report/the_assignment_operator_revisited.html.

Implemented in PolicyPoolPartialJPolValPair.

virtual void PartialPolicyPoolInterface::Pop ( PartialPolicyPoolItemInterface_sharedPtr  ppiToBeRemoved = PartialPolicyPoolItemInterface_sharedPtr())
pure virtual

Removes the item returned by 'Select'.

This removes the next PolicyPoolItem (a wrapper for a partial joint policy, together with some properties), as would be returned by 'Select'.

Implemented in PolicyPoolPartialJPolValPair.

virtual void PartialPolicyPoolInterface::PopBestRanked ( )
pure virtual

remove the GetBestRanked() item

Removes the PartialPolicyPoolItemInterface contained in this Policy pool with the highest (heuristic) value. (as is returned by GetBestRanked() )

Implemented in PolicyPoolPartialJPolValPair.

Referenced by GeneralizedMAAStarPlanner::Prune().

virtual void PartialPolicyPoolInterface::Prune ( double  v)
pure virtual

prune the items in the policy pool with exp.value < v

...

Implemented in PolicyPoolPartialJPolValPair.

virtual PartialPolicyPoolItemInterface_sharedPtr PartialPolicyPoolInterface::Select ( ) const
pure virtual

The 'Select' operator from refGMAA.

This returns a reference to the next PolicyPoolItem (a wrapper for a partial joint policy, together with some properties).

The returned PolicyPoolItem is not removed from the PolicyPool.

Implemented in PolicyPoolPartialJPolValPair.

virtual size_t PartialPolicyPoolInterface::Size ( ) const
pure virtual

return teh number of items in the policy pool

...

Implemented in PolicyPoolPartialJPolValPair.

Referenced by Empty(), and GeneralizedMAAStarPlanner::Prune().

virtual std::string PartialPolicyPoolInterface::SoftPrint ( ) const
pure virtual
virtual void PartialPolicyPoolInterface::Union ( PartialPolicyPoolInterface_sharedPtr  pp)
pure virtual

add all elements of pp to 'this'.

...

Implemented in PolicyPoolPartialJPolValPair.