MultiAgentDecisionProcess
BayesianGameIdenticalPayoffSolver Class Referenceabstract

BayesianGameIdenticalPayoffSolver is an interface for solvers for Bayesian games with identical payoff. More...

#include <BayesianGameIdenticalPayoffSolver.h>

Inheritance diagram for BayesianGameIdenticalPayoffSolver:
[legend]

Public Member Functions

void AddSolution (const JointPolicyPureVector &jp, double value)
 
void AddSolution (const JointPolicyPureVectorForClusteredBG &jp, double value)
 
void AddSolution (LIndex jpolIndex, double value)
 
 BayesianGameIdenticalPayoffSolver (const boost::shared_ptr< const BayesianGameIdenticalPayoffInterface > &bg, size_t nrDesiredSolutions=1)
 (default) Constructor More...
 
double Evaluate (const JointPolicyPureVector &jpolBG) const
 
double Evaluate (const JointPolicyPureVectorForClusteredBG &jpolBG) const
 
boost::shared_ptr< const
BayesianGameIdenticalPayoffInterface
GetBGIPI () const
 
double GetExpectedReward () const
 
const boost::shared_ptr
< JointPolicy
GetJointPolicy () const
 
const JointPolicyPureVectorGetJointPolicyPureVector () const
 
virtual boost::shared_ptr
< JointPolicyDiscretePure
GetNewJpol () const
 returns a new policy to be used with this BayesianGameIdenticalPayoffSolver More...
 
boost::shared_ptr< JPPVValuePairGetNextSolutionJPPV () const
 
boost::shared_ptr
< PartialJPDPValuePair
GetNextSolutionPJPDP () const
 
size_t GetNrDesiredSolutions () const
 
size_t GetNrFoundSolutions () const
 Gets the found number of solutions. More...
 
double GetPayoff () const
 
std::ofstream * GetResultsOFStream () const
 
std::ofstream * GetTimingsOFStream () const
 
bool GetWriteAnyTimeResults () const
 
bool IsEmptyJPPV () const
 
bool IsEmptyPJPDP () const
 
virtual bool IsExactSolver () const =0
 Methods should indicated whether they compute exact (optimal) solutions or not. More...
 
void PopNextSolutionJPPV ()
 
void PopNextSolutionPJPDP ()
 
void SaveSolution (const std::string &filename) const
 
void SetAnyTimeResults (bool turn_on, std::ofstream *results, std::ofstream *timings)
 Turns Anytime results on and of. More...
 
virtual void SetCBGlowerBound (double lowerbound)=0
 
virtual void SetCBGupperBound (double ub)=0
 
virtual void SetDeadline (double deadlineInSeconds)
 To limit the amount of time the solver uses. More...
 
void SetNrDesiredSolutions (size_t n)
 Gets the desired number of solutions to be returned. More...
 
std::string SoftPrintSolution () const
 
virtual double Solve ()=0
 The methods that performs the planning. More...
 
virtual ~BayesianGameIdenticalPayoffSolver ()
 Destructor. More...
 

Protected Member Functions

virtual void CheckDeadline (const std::string &errorMessage) const
 Checks whether the deadline has expired. Throws EDeadline. More...
 
virtual void InitDeadline ()
 Should be called at the beginning of Solve(). More...
 

Private Attributes

double _m_deadlineInSeconds
 To limit the amount of time the solver uses. More...
 
boost::shared_ptr< const
BayesianGameIdenticalPayoffInterface
_m_referredBG
 
std::ofstream * _m_results_f
 the file to which writes the results are written More...
 
BGIPSolution _m_solution
 Stores the solution found by the solver. More...
 
tms _m_timeAtStartOfSolving
 
std::ofstream * _m_timings_f
 the file to which writes the timings of the results are written More...
 
bool _m_writeAnyTimeResults
 boolean that indicates whether anytime results should be written More...
 

Detailed Description

BayesianGameIdenticalPayoffSolver is an interface for solvers for Bayesian games with identical payoff.

This is the non-templated version, hence the two versions of Evaluate().

Constructor & Destructor Documentation

BayesianGameIdenticalPayoffSolver::BayesianGameIdenticalPayoffSolver ( const boost::shared_ptr< const BayesianGameIdenticalPayoffInterface > &  bg,
size_t  nrDesiredSolutions = 1 
)

(default) Constructor

takes a reference to the BG to be solved. nrDesiredSolutions is the number of solutions that the solver should return. I.e., if set higher than 1, it returns the k best found joint policies.

virtual BayesianGameIdenticalPayoffSolver::~BayesianGameIdenticalPayoffSolver ( )
inlinevirtual

Destructor.

Member Function Documentation

void BayesianGameIdenticalPayoffSolver::AddSolution ( const JointPolicyPureVectorForClusteredBG jp,
double  value 
)
inline
void BayesianGameIdenticalPayoffSolver::AddSolution ( LIndex  jpolIndex,
double  value 
)
inline
void BayesianGameIdenticalPayoffSolver::CheckDeadline ( const std::string &  errorMessage) const
protectedvirtual
double BayesianGameIdenticalPayoffSolver::GetExpectedReward ( void  ) const
inline
const boost::shared_ptr<JointPolicy> BayesianGameIdenticalPayoffSolver::GetJointPolicy ( void  ) const
inline
const JointPolicyPureVector& BayesianGameIdenticalPayoffSolver::GetJointPolicyPureVector ( void  ) const
inline
size_t BayesianGameIdenticalPayoffSolver::GetNrFoundSolutions ( ) const
inline
double BayesianGameIdenticalPayoffSolver::GetPayoff ( ) const
inline
virtual void BayesianGameIdenticalPayoffSolver::InitDeadline ( )
inlineprotectedvirtual
virtual bool BayesianGameIdenticalPayoffSolver::IsExactSolver ( ) const
pure virtual
void BayesianGameIdenticalPayoffSolver::SaveSolution ( const std::string &  filename) const
inline

References BGIPSolution::Save().

void BayesianGameIdenticalPayoffSolver::SetAnyTimeResults ( bool  turn_on,
std::ofstream *  results,
std::ofstream *  timings 
)

Turns Anytime results on and of.

When turning on, valid ofstream pointers must be provided for the results and timings file.

References _m_results_f, _m_timings_f, and _m_writeAnyTimeResults.

virtual void BayesianGameIdenticalPayoffSolver::SetDeadline ( double  deadlineInSeconds)
inlinevirtual
void BayesianGameIdenticalPayoffSolver::SetNrDesiredSolutions ( size_t  n)
inline
std::string BayesianGameIdenticalPayoffSolver::SoftPrintSolution ( ) const
inline

Member Data Documentation

double BayesianGameIdenticalPayoffSolver::_m_deadlineInSeconds
private

To limit the amount of time the solver uses.

Referenced by CheckDeadline().

boost::shared_ptr<const BayesianGameIdenticalPayoffInterface> BayesianGameIdenticalPayoffSolver::_m_referredBG
private

Referenced by GetNewJpol().

std::ofstream* BayesianGameIdenticalPayoffSolver::_m_results_f
private

the file to which writes the results are written

Referenced by SetAnyTimeResults().

BGIPSolution BayesianGameIdenticalPayoffSolver::_m_solution
private

Stores the solution found by the solver.

Referenced by BGIP_SolverAlternatingMaximization< JP >::Solve().

tms BayesianGameIdenticalPayoffSolver::_m_timeAtStartOfSolving
private

Referenced by CheckDeadline().

std::ofstream* BayesianGameIdenticalPayoffSolver::_m_timings_f
private

the file to which writes the timings of the results are written

Referenced by SetAnyTimeResults().

bool BayesianGameIdenticalPayoffSolver::_m_writeAnyTimeResults
private

boolean that indicates whether anytime results should be written

Referenced by SetAnyTimeResults().