MultiAgentDecisionProcess  Release 0.2.1
AlphaVectorPlanning Class Reference

AlphaVectorPlanning provides base functionality for alpha-vector based POMDP or BG techniques. More...

#include <AlphaVectorPlanning.h>

+ Inheritance diagram for AlphaVectorPlanning:
+ Collaboration diagram for AlphaVectorPlanning:

Public Member Functions

 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 Initialize ()
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 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)

Private Types

typedef
boost::numeric::ublas::compressed_vector
< double > 
SparseVector

Private Member Functions

GaoVectorSet BackProjectFull (const VectorSet &v) const
 Implements equation (3.11) of PhD thesis Matthijs.
GaoVectorSet BackProjectSparse (const VectorSet &v) const
 Implements equation (3.11) of PhD thesis Matthijs.
void DeInitialize ()

Private Attributes

bool _m_initialized
std::vector< const
ObservationModelMapping::Matrix * > 
_m_O
std::vector< const
ObservationModelMappingSparse::SparseMatrix * > 
_m_Os
std::vector< std::vector
< SparseVector * > > 
_m_OsForBackup
const
PlanningUnitDecPOMDPDiscrete
_m_pu
 A pointer to the PlanningUnit (which can only be a PlanningUnitDecPOMDPDiscrete or derived type).
std::vector< const
TransitionModelMapping::Matrix * > 
_m_T
std::vector< const
TransitionModelMappingSparse::SparseMatrix * > 
_m_Ts
std::vector< std::vector
< SparseVector * > > 
_m_TsForBackup
std::vector< std::vector
< std::vector< SparseVector * > > > 
_m_TsOsForBackup
bool _m_useSparse

Detailed Description

AlphaVectorPlanning provides base functionality for alpha-vector based POMDP or BG techniques.

Definition at line 62 of file AlphaVectorPlanning.h.

Member Typedef Documentation

typedef boost::numeric::ublas::compressed_vector<double> AlphaVectorPlanning::SparseVector
private

Definition at line 76 of file AlphaVectorPlanning.h.

Constructor & Destructor Documentation

AlphaVectorPlanning::AlphaVectorPlanning ( const PlanningUnitDecPOMDPDiscrete pu)
AlphaVectorPlanning::~AlphaVectorPlanning ( )
virtual

Destructor.

Definition at line 84 of file AlphaVectorPlanning.cpp.

References DeInitialize().

Member Function Documentation

GaoVectorSet AlphaVectorPlanning::BackProject ( const ValueFunctionPOMDPDiscrete v) const

Back projects a value function.

Definition at line 201 of file AlphaVectorPlanning.cpp.

References _m_useSparse, BackProjectFull(), and BackProjectSparse().

Referenced by BackProjectMonahan(), and Perseus::BackupStageLeadIn().

GaoVectorSet AlphaVectorPlanning::BackProject ( const VectorSet v) const

Back projects a value function, represented as a VectorSet.

Implements equation (3.11) of PhD thesis Matthijs.

Definition at line 230 of file AlphaVectorPlanning.cpp.

References _m_useSparse, BackProjectFull(), and BackProjectSparse().

GaoVectorSet AlphaVectorPlanning::BackProjectFull ( const VectorSet v) const
private
GaoVectorSet AlphaVectorPlanning::BackProjectMonahan ( const QFunctionsDiscrete Qs) const

Definition at line 681 of file AlphaVectorPlanning.cpp.

References QFunctionsToValueFunction().

GaoVectorSet AlphaVectorPlanning::BackProjectSparse ( const VectorSet v) const
private
VectorSet AlphaVectorPlanning::CrossSum ( const VectorSet A,
const VectorSet B 
) const

Compute the cross-sum of two vector sets.

Definition at line 611 of file AlphaVectorPlanning.cpp.

Referenced by MonahanCrossSum().

void AlphaVectorPlanning::DeInitialize ( )
private

Definition at line 166 of file AlphaVectorPlanning.cpp.

References _m_O, _m_Os, _m_OsForBackup, _m_T, _m_Ts, _m_TsForBackup, and _m_TsOsForBackup.

Referenced by Initialize(), and ~AlphaVectorPlanning().

void AlphaVectorPlanning::ExportBeliefSet ( const BeliefSet B,
const std::string &  filename 
)
static

Exports a belief set to a file.

Definition at line 1135 of file AlphaVectorPlanning.cpp.

void AlphaVectorPlanning::ExportPOMDPFile ( const std::string &  filename) const

Exports the POMDP to file named filename.

Definition at line 1045 of file AlphaVectorPlanning.cpp.

References ExportPOMDPFile(), and GetPU().

void AlphaVectorPlanning::ExportValueFunction ( const std::string &  filename,
const ValueFunctionPOMDPDiscrete V 
)
static

Exports a value function V to file named filename.

Export is in a simple text format used by Tony Cassandra for .alpha files.

The format is simply:

<action>

<action>

Definition at line 877 of file AlphaVectorPlanning.cpp.

Referenced by ExportValueFunction().

void AlphaVectorPlanning::ExportValueFunction ( const std::string &  filename,
const QFunctionsDiscrete Q 
)
static

Exports a Q functions Q to file named filename.

Definition at line 833 of file AlphaVectorPlanning.cpp.

References ExportValueFunction(), and QFunctionsToValueFunction().

void AlphaVectorPlanning::ExportValueFunction ( const std::string &  filename,
const QFunctionsDiscreteNonStationary Q 
)
static

Exports a Q functions Q to file named filename.

Definition at line 841 of file AlphaVectorPlanning.cpp.

References ExportValueFunction().

vector< int > AlphaVectorPlanning::GetDuplicateIndices ( const VectorSet V)
static

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()).

Definition at line 1206 of file AlphaVectorPlanning.cpp.

References PrintTools::PrintVectorCout(), and Globals::PROB_PRECISION.

Referenced by BackProjectFull(), and BackProjectSparse().

ValueFunctionPOMDPDiscrete AlphaVectorPlanning::GetImmediateRewardValueFunction ( ) const

Returns the value function induced by the reward model.

Definition at line 1008 of file AlphaVectorPlanning.cpp.

References GetPU().

Referenced by PerseusStationary::GetImmediateRewardBeliefSet().

ValueFunctionPOMDPDiscrete AlphaVectorPlanning::GetImmediateRewardValueFunction ( const PlanningUnitDecPOMDPDiscrete pu)
static
ValueFunctionPOMDPDiscrete AlphaVectorPlanning::ImportValueFunction ( const std::string &  filename)
static

Imports a value function from a file named filename.

Function lacks error checking.

Definition at line 907 of file AlphaVectorPlanning.cpp.

References AlphaVector::SetAction(), AlphaVector::SetBetaI(), and AlphaVector::SetValues().

Referenced by ImportValueFunction(), and PerseusStationary::SetValueFunction().

QFunctionsDiscreteNonStationary AlphaVectorPlanning::ImportValueFunction ( const std::string &  filename,
size_t  nr,
size_t  nrA,
size_t  nrS 
)
static

Definition at line 853 of file AlphaVectorPlanning.cpp.

References ImportValueFunction(), and ValueFunctionToQ().

void AlphaVectorPlanning::MonahanCrossSum ( const GaoVectorSet G,
ValueFunctionPOMDPDiscrete V,
Index  a,
bool  doIncPrune 
) const
ValueFunctionPOMDPDiscrete AlphaVectorPlanning::Prune ( const ValueFunctionPOMDPDiscrete V) const

Prune a valuefunction.

Definition at line 718 of file AlphaVectorPlanning.cpp.

References PlanningUnitMADPDiscrete::GetNrStates(), and GetPU().

Referenced by MonahanCrossSum().

VectorSet AlphaVectorPlanning::Prune ( const VectorSet V) const

Prune a VectorSet.

Definition at line 775 of file AlphaVectorPlanning.cpp.

QFunctionsDiscrete AlphaVectorPlanning::ValueFunctionToQ ( const ValueFunctionPOMDPDiscrete V) const
QFunctionsDiscrete AlphaVectorPlanning::ValueFunctionToQ ( const ValueFunctionPOMDPDiscrete V,
size_t  nrA,
size_t  nrS 
)
static

Definition at line 1162 of file AlphaVectorPlanning.cpp.

References AlphaVector::SetAction().

Member Data Documentation

bool AlphaVectorPlanning::_m_initialized
private

Definition at line 86 of file AlphaVectorPlanning.h.

Referenced by AlphaVectorPlanning(), and Initialize().

std::vector<const ObservationModelMapping::Matrix* > AlphaVectorPlanning::_m_O
private

Definition at line 71 of file AlphaVectorPlanning.h.

Referenced by BackProjectFull(), DeInitialize(), and Initialize().

std::vector<const ObservationModelMappingSparse::SparseMatrix* > AlphaVectorPlanning::_m_Os
private

Definition at line 74 of file AlphaVectorPlanning.h.

Referenced by BackProjectSparse(), DeInitialize(), and Initialize().

std::vector<std::vector<SparseVector* > > AlphaVectorPlanning::_m_OsForBackup
private

Definition at line 78 of file AlphaVectorPlanning.h.

Referenced by DeInitialize(), and Initialize().

const PlanningUnitDecPOMDPDiscrete* AlphaVectorPlanning::_m_pu
private

A pointer to the PlanningUnit (which can only be a PlanningUnitDecPOMDPDiscrete or derived type).

Definition at line 68 of file AlphaVectorPlanning.h.

Referenced by GetPU(), and SampleBeliefs().

std::vector<const TransitionModelMapping::Matrix* > AlphaVectorPlanning::_m_T
private

Definition at line 70 of file AlphaVectorPlanning.h.

Referenced by BackProjectFull(), DeInitialize(), and Initialize().

std::vector<const TransitionModelMappingSparse::SparseMatrix* > AlphaVectorPlanning::_m_Ts
private

Definition at line 73 of file AlphaVectorPlanning.h.

Referenced by BackProjectSparse(), DeInitialize(), and Initialize().

std::vector<std::vector<SparseVector* > > AlphaVectorPlanning::_m_TsForBackup
private

Definition at line 77 of file AlphaVectorPlanning.h.

Referenced by DeInitialize(), and Initialize().

std::vector<std::vector<std::vector<SparseVector* > > > AlphaVectorPlanning::_m_TsOsForBackup
private

Definition at line 79 of file AlphaVectorPlanning.h.

Referenced by BackProjectSparse(), DeInitialize(), and Initialize().

bool AlphaVectorPlanning::_m_useSparse
private

Definition at line 81 of file AlphaVectorPlanning.h.

Referenced by AlphaVectorPlanning(), BackProject(), and Initialize().


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