MultiAgentDecisionProcess  Release 0.2.1
Perseus Class Reference

Perseus contains basic functionality for the Perseus planner. More...

#include <Perseus.h>

+ Inheritance diagram for Perseus:
+ Collaboration diagram for Perseus:

Public Member Functions

bool CheckConvergence (const std::vector< double > &VB, const std::vector< double > &VBnew, int iter) const
virtual void ExportValueFunction (const std::string &filename) const =0
 Exports the computed value function in a simple text format used by Tony Cassandra for .alpha files.
std::string GetIdentification () const
virtual double GetQ (const JointBeliefInterface &b, Index jaI) const =0
virtual double GetQ (const JointBeliefInterface &b, Index jaI, int &betaMaxI) const =0
virtual double GetQ (const JointBeliefInterface &b, Index t, Index jaI) const =0
virtual double GetQ (const JointBeliefInterface &b, Index t, Index jaI, int &betaMaxI) const =0
int GetVerbose () const
void Initialize ()
 Perseus (const PlanningUnitDecPOMDPDiscrete &pu)
 (default) Constructor
virtual void Plan ()=0
int SampleNotImprovedBeliefIndex (std::vector< bool > stillNeedToBeImproved, int nrNotImproved) const
 Sample an index of a belief in the set which has not been improved.
void SetComputeVectorForEachBelief (bool compute)
void SetDryrun (bool dryrun)
void SetIdentification (std::string identification)
void SetInitializeWithImmediateReward (bool initReward)
void SetInitializeWithZero (bool initZero)
void SetMaximumNumberOfIterations (int nr)
void SetMinimumNumberOfIterations (int nr)
void SetResultsFilename (std::string filename)
void SetSaveIntermediateValueFunctions (bool save)
void SetSaveTimings (bool save)
virtual void SetValueFunction (const std::string &filename)=0
void SetVerbose (int verbose)
virtual ~Perseus ()
 Destructor.
- Public Member Functions inherited from AlphaVectorPlanning
 AlphaVectorPlanning (const PlanningUnitDecPOMDPDiscrete &pu)
 (default) Constructor
GaoVectorSet BackProject (const ValueFunctionPOMDPDiscrete &v) const
 Back projects a value function.
GaoVectorSet BackProject (const VectorSet &v) const
 Back projects a value function, represented as a VectorSet.
GaoVectorSet BackProjectMonahan (const QFunctionsDiscrete &Qs) const
GaoVectorSet BackProjectMonahan (const ValueFunctionPOMDPDiscrete &V) const
VectorSet CrossSum (const VectorSet &A, const VectorSet &B) const
 Compute the cross-sum of two vector sets.
void ExportPOMDPFile (const std::string &filename) const
 Exports the POMDP to file named filename.
ValueFunctionPOMDPDiscrete GetImmediateRewardValueFunction () const
 Returns the value function induced by the reward model.
const
PlanningUnitDecPOMDPDiscrete
GetPU () const
 Returns a ref to the PlanningUnit.
void MonahanCrossSum (const GaoVectorSet &G, ValueFunctionPOMDPDiscrete &V, Index a, bool doIncPrune) const
ValueFunctionPOMDPDiscrete Prune (const ValueFunctionPOMDPDiscrete &V) const
 Prune a valuefunction.
VectorSet Prune (const VectorSet &V) const
 Prune a VectorSet.
BeliefSet SampleBeliefs (ArgumentHandlers::Arguments args) const
 Sample a belief set according to the arguments.
QFunctionsDiscrete ValueFunctionToQ (const ValueFunctionPOMDPDiscrete &V) const
virtual ~AlphaVectorPlanning ()
 Destructor.
- Public Member Functions inherited from TimedAlgorithm
void AddTimedEvent (const std::string &id, clock_t duration)
 Adds event of certain duration, e.g., an external program call.
std::vector< double > GetTimedEventDurations (const std::string &id)
 Returns all stored durations (in s) for a particular event.
void LoadTimers (const std::string &filename)
 Load timing info from file filename.
void PrintTimers () const
 Print stored timing info.
void PrintTimersSummary () const
 Sums data and prints out a summary.
void SaveTimers (const std::string &filename) const
 Save collected timing info to file filename.
void SaveTimers (std::ofstream &of) const
 Save collected timing info to ofstream of.
void StartTimer (const std::string &id) const
 Start to time an event identified by id.
void StopTimer (const std::string &id) const
 Stop to time an event identified by id.
 TimedAlgorithm ()
 (default) Constructor
virtual ~TimedAlgorithm ()
 Destructor.

Static Public Member Functions

static std::string BackupTypeToString (const QAVParameters &params)
static QAVParameters ProcessArguments (const ArgumentHandlers::Arguments &args)
- Static Public Member Functions inherited from AlphaVectorPlanning
static void ExportBeliefSet (const BeliefSet &B, const std::string &filename)
 Exports a belief set to a file.
static void ExportPOMDPFile (const std::string &filename, const PlanningUnitDecPOMDPDiscrete *pu)
 Exports the POMDP represented by pu to file named filename.
static void ExportValueFunction (const std::string &filename, const ValueFunctionPOMDPDiscrete &V)
 Exports a value function V to file named filename.
static void ExportValueFunction (const std::string &filename, const QFunctionsDiscrete &Q)
 Exports a Q functions Q to file named filename.
static void ExportValueFunction (const std::string &filename, const QFunctionsDiscreteNonStationary &Q)
 Exports a Q functions Q to file named filename.
static std::vector< int > GetDuplicateIndices (const VectorSet &V)
 Returns a vector<int> which for each vector k in V specifies whether it is unique, in which case vector<int>[k] is set to -1, or whether it is a duplicate of another vector l in V, in which case vector<int>[k] is set to the index of l, where 0 <= l < V.size()).
static ValueFunctionPOMDPDiscrete GetImmediateRewardValueFunction (const PlanningUnitDecPOMDPDiscrete *pu)
 Returns the value function induced by the reward model of pu.
static ValueFunctionPOMDPDiscrete ImportValueFunction (const std::string &filename)
 Imports a value function from a file named filename.
static
QFunctionsDiscreteNonStationary 
ImportValueFunction (const std::string &filename, size_t nr, size_t nrA, size_t nrS)
static ValueFunctionPOMDPDiscrete QFunctionsToValueFunction (const QFunctionsDiscrete &Q)
static QFunctionsDiscrete ValueFunctionToQ (const ValueFunctionPOMDPDiscrete &V, size_t nrA, size_t nrS)
static bool VectorIsInValueFunction (const AlphaVector &alpha, const ValueFunctionPOMDPDiscrete &V)

Protected Member Functions

GaoVectorSet BackupStageLeadIn (const ValueFunctionPOMDPDiscrete &V) const
void BackupStageLeadOut (GaoVectorSet Gao) const
virtual std::vector< double > GetImmediateRewardBeliefSet () const =0
QFunctionsDiscreteNonStationary GetInitialNonStationaryQFunctions () const
QFunctionsDiscrete GetInitialQFunctions () const
ValueFunctionPOMDPDiscrete GetInitialValueFunction () const
virtual void InitializeBeliefs (int nrB, bool uniquify)=0
template<class VF >
void PlanEndOfIteration (const VF &V)
void PlanEndOfIteration () const
void PlanLeadIn ()
void PlanLeadOut ()
template<class VF >
void PlanStartOfIteration (int iter, const std::vector< double > &VB, const VF &V) const
void PrintMaxRewardInBeliefSet () const
 Prints the maximum immediate reward present in the belief set.
virtual void StoreValueFunction (const ValueFunctionPOMDPDiscrete &V)
virtual void StoreValueFunction (const QFunctionsDiscrete &Q)
virtual void StoreValueFunction (const QFunctionsDiscreteNonStationary &Q)
void UpdateValueFunctionName ()

Protected Attributes

bool _m_beliefsInitialized
 Whether or not the belief set has been set.
double _m_bestValue
bool _m_computeVectorForEachBelief
bool _m_dryrun
std::string _m_identification
std::string _m_resultsFilename
bool _m_storeIntermediateValueFunctions
bool _m_storeTimings
std::string _m_valueFunctionFilename

Private Member Functions

size_t GetSize (const ValueFunctionPOMDPDiscrete &V) const
size_t GetSize (const QFunctionsDiscrete &Q) const
size_t GetSize (const QFunctionsDiscreteNonStationary &Q) const

Private Attributes

bool _m_initializeWithImmediateReward
bool _m_initializeWithZero
int _m_maximumNumberOfIterations
int _m_minimumNumberOfIterations
const
PlanningUnitDecPOMDPDiscrete
_m_pu
int _m_verbose

Detailed Description

Perseus contains basic functionality for the Perseus planner.

Definition at line 47 of file Perseus.h.

Constructor & Destructor Documentation

Perseus::Perseus ( const PlanningUnitDecPOMDPDiscrete pu)

(default) Constructor

Definition at line 37 of file Perseus.cpp.

References SetMaximumNumberOfIterations(), SetMinimumNumberOfIterations(), and UpdateValueFunctionName().

Perseus::~Perseus ( )
virtual

Destructor.

Definition at line 57 of file Perseus.cpp.

Member Function Documentation

string Perseus::BackupTypeToString ( const QAVParameters params)
static

Definition at line 317 of file Perseus.cpp.

References QAVParameters::backup, BG, QAVParameters::bgBackupType, and POMDP.

bool Perseus::CheckConvergence ( const std::vector< double > &  VB,
const std::vector< double > &  VBnew,
int  iter 
) const
virtual void Perseus::ExportValueFunction ( const std::string &  filename) const
pure virtual

Exports the computed value function in a simple text format used by Tony Cassandra for .alpha files.

Implemented in PerseusStationary.

Referenced by PlanEndOfIteration(), and PlanStartOfIteration().

virtual std::vector<double> Perseus::GetImmediateRewardBeliefSet ( ) const
protectedpure virtual

Implemented in PerseusStationary.

Referenced by PrintMaxRewardInBeliefSet().

QFunctionsDiscreteNonStationary Perseus::GetInitialNonStationaryQFunctions ( ) const
protected
virtual double Perseus::GetQ ( const JointBeliefInterface b,
Index  jaI 
) const
pure virtual

Implemented in PerseusStationary.

virtual double Perseus::GetQ ( const JointBeliefInterface b,
Index  jaI,
int &  betaMaxI 
) const
pure virtual

Implemented in PerseusStationary.

virtual double Perseus::GetQ ( const JointBeliefInterface b,
Index  t,
Index  jaI 
) const
pure virtual

Implemented in PerseusStationary.

virtual double Perseus::GetQ ( const JointBeliefInterface b,
Index  t,
Index  jaI,
int &  betaMaxI 
) const
pure virtual

Implemented in PerseusStationary.

size_t Perseus::GetSize ( const ValueFunctionPOMDPDiscrete V) const
inlineprivate

Definition at line 62 of file Perseus.h.

Referenced by GetSize(), and PlanStartOfIteration().

size_t Perseus::GetSize ( const QFunctionsDiscrete Q) const
inlineprivate

Definition at line 64 of file Perseus.h.

size_t Perseus::GetSize ( const QFunctionsDiscreteNonStationary Q) const
inlineprivate

Definition at line 71 of file Perseus.h.

References GetSize().

void Perseus::Initialize ( )

Reimplemented from AlphaVectorPlanning.

Definition at line 61 of file Perseus.cpp.

virtual void Perseus::InitializeBeliefs ( int  nrB,
bool  uniquify 
)
protectedpure virtual

Implemented in PerseusStationary.

Referenced by PlanLeadIn().

virtual void Perseus::Plan ( )
pure virtual
template<class VF >
void Perseus::PlanEndOfIteration ( const VF &  V)
inlineprotected
template<class VF >
void Perseus::PlanStartOfIteration ( int  iter,
const std::vector< double > &  VB,
const VF &  V 
) const
inlineprotected
void Perseus::PrintMaxRewardInBeliefSet ( ) const
protected

Prints the maximum immediate reward present in the belief set.

Definition at line 165 of file Perseus.cpp.

References _m_beliefsInitialized, GetIdentification(), GetImmediateRewardBeliefSet(), and GetVerbose().

Referenced by PlanLeadIn().

int Perseus::SampleNotImprovedBeliefIndex ( std::vector< bool >  stillNeedToBeImproved,
int  nrNotImproved 
) const

Sample an index of a belief in the set which has not been improved.

Definition at line 183 of file Perseus.cpp.

References PrintTools::PrintVectorCout().

Referenced by PerseusPOMDPPlanner::BackupStage(), PerseusBGPlanner::BackupStageSampling(), and PerseusBGPlanner::BackupStageSamplingAlt().

void Perseus::SetComputeVectorForEachBelief ( bool  compute)
inline

Definition at line 231 of file Perseus.h.

References _m_computeVectorForEachBelief.

void Perseus::SetDryrun ( bool  dryrun)
inline

Definition at line 245 of file Perseus.h.

References _m_dryrun.

void Perseus::SetIdentification ( std::string  identification)

Definition at line 353 of file Perseus.cpp.

References _m_identification, and UpdateValueFunctionName().

void Perseus::SetInitializeWithImmediateReward ( bool  initReward)
inline

Definition at line 239 of file Perseus.h.

References _m_initializeWithImmediateReward.

void Perseus::SetInitializeWithZero ( bool  initZero)
inline

Definition at line 242 of file Perseus.h.

References _m_initializeWithZero.

void Perseus::SetMaximumNumberOfIterations ( int  nr)
inline

Definition at line 236 of file Perseus.h.

References _m_maximumNumberOfIterations.

Referenced by Perseus().

void Perseus::SetMinimumNumberOfIterations ( int  nr)
inline

Definition at line 234 of file Perseus.h.

References _m_minimumNumberOfIterations.

Referenced by Perseus().

void Perseus::SetResultsFilename ( std::string  filename)

Definition at line 359 of file Perseus.cpp.

References _m_resultsFilename, and UpdateValueFunctionName().

void Perseus::SetSaveIntermediateValueFunctions ( bool  save)
inline

Definition at line 214 of file Perseus.h.

References _m_storeIntermediateValueFunctions.

void Perseus::SetSaveTimings ( bool  save)
inline

Definition at line 217 of file Perseus.h.

References _m_storeTimings.

virtual void Perseus::SetValueFunction ( const std::string &  filename)
pure virtual

Implemented in PerseusStationary.

void Perseus::SetVerbose ( int  verbose)
inline

Definition at line 247 of file Perseus.h.

References _m_verbose.

void Perseus::StoreValueFunction ( const ValueFunctionPOMDPDiscrete V)
protectedvirtual

Reimplemented in PerseusStationary.

Definition at line 378 of file Perseus.cpp.

Referenced by PlanEndOfIteration().

void Perseus::StoreValueFunction ( const QFunctionsDiscrete Q)
protectedvirtual

Reimplemented in PerseusStationary.

Definition at line 383 of file Perseus.cpp.

void Perseus::StoreValueFunction ( const QFunctionsDiscreteNonStationary Q)
protectedvirtual

Definition at line 388 of file Perseus.cpp.

void Perseus::UpdateValueFunctionName ( )
protected

Member Data Documentation

bool Perseus::_m_beliefsInitialized
protected
double Perseus::_m_bestValue
protected

Definition at line 81 of file Perseus.h.

Referenced by PlanEndOfIteration(), and PlanStartOfIteration().

bool Perseus::_m_computeVectorForEachBelief
protected
bool Perseus::_m_dryrun
protected

Definition at line 100 of file Perseus.h.

Referenced by PlanEndOfIteration(), PlanStartOfIteration(), and SetDryrun().

std::string Perseus::_m_identification
protected

Definition at line 86 of file Perseus.h.

Referenced by GetIdentification(), and SetIdentification().

bool Perseus::_m_initializeWithImmediateReward
private
bool Perseus::_m_initializeWithZero
private

Definition at line 60 of file Perseus.h.

Referenced by GetInitialQFunctions(), GetInitialValueFunction(), and SetInitializeWithZero().

int Perseus::_m_maximumNumberOfIterations
private

Definition at line 55 of file Perseus.h.

Referenced by CheckConvergence(), and SetMaximumNumberOfIterations().

int Perseus::_m_minimumNumberOfIterations
private

Definition at line 54 of file Perseus.h.

Referenced by CheckConvergence(), and SetMinimumNumberOfIterations().

std::string Perseus::_m_resultsFilename
protected

Definition at line 86 of file Perseus.h.

Referenced by SetResultsFilename(), and UpdateValueFunctionName().

bool Perseus::_m_storeIntermediateValueFunctions
protected

Definition at line 94 of file Perseus.h.

Referenced by PlanStartOfIteration(), and SetSaveIntermediateValueFunctions().

bool Perseus::_m_storeTimings
protected

Definition at line 96 of file Perseus.h.

Referenced by PlanEndOfIteration(), PlanLeadOut(), and SetSaveTimings().

std::string Perseus::_m_valueFunctionFilename
protected

Definition at line 86 of file Perseus.h.

Referenced by PlanEndOfIteration(), and UpdateValueFunctionName().

int Perseus::_m_verbose
private

Definition at line 57 of file Perseus.h.

Referenced by GetVerbose(), and SetVerbose().


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