MultiAgentDecisionProcess
BGIP_IncrementalSolverInterface Class Referenceabstract

BGIP_IncrementalSolverInterface is an interface for BGIP_Solvers that can incrementally return multiple solutions. More...

#include <BGIP_IncrementalSolverInterface.h>

Inheritance diagram for BGIP_IncrementalSolverInterface:
[legend]

Public Member Functions

bool AllSolutionsHaveBeenReturned () const
 
 BGIP_IncrementalSolverInterface (const boost::shared_ptr< const BayesianGameIdenticalPayoffInterface > &bg, size_t nrDesiredSolutions=INT_MAX)
 
bool GetNextJointPolicyAndValue (boost::shared_ptr< JointPolicyDiscretePure > &jpol, double &value)
 Gets the next solution from the Incremental CBG solver. More...
 
virtual ~BGIP_IncrementalSolverInterface ()
 
- Public Member Functions inherited from BayesianGameIdenticalPayoffSolver
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 bool GetNextJointPolicyAndValueSpecific (boost::shared_ptr< JointPolicyDiscretePure > &jpol, double &value)=0
 The specific implementation that should be implemented by the derived class: More...
 
- Protected Member Functions inherited from BayesianGameIdenticalPayoffSolver
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...
 

Protected Attributes

size_t _m_nrSolutionsReturned
 The number of solutions we already returned (not computed) More...
 

Detailed Description

BGIP_IncrementalSolverInterface is an interface for BGIP_Solvers that can incrementally return multiple solutions.

Constructor & Destructor Documentation

BGIP_IncrementalSolverInterface::BGIP_IncrementalSolverInterface ( const boost::shared_ptr< const BayesianGameIdenticalPayoffInterface > &  bg,
size_t  nrDesiredSolutions = INT_MAX 
)
inline
virtual BGIP_IncrementalSolverInterface::~BGIP_IncrementalSolverInterface ( )
inlinevirtual

Member Function Documentation

bool BGIP_IncrementalSolverInterface::AllSolutionsHaveBeenReturned ( ) const
inline
bool BGIP_IncrementalSolverInterface::GetNextJointPolicyAndValue ( boost::shared_ptr< JointPolicyDiscretePure > &  jpol,
double &  value 
)
inline

Gets the next solution from the Incremental CBG solver.

If a next solution does not exist, for instance because of upper and lower bounds on the solution value, the function will return false instead of true.

References GetNextJointPolicyAndValueSpecific().

virtual bool BGIP_IncrementalSolverInterface::GetNextJointPolicyAndValueSpecific ( boost::shared_ptr< JointPolicyDiscretePure > &  jpol,
double &  value 
)
protectedpure virtual

The specific implementation that should be implemented by the derived class:

Implemented in BGIP_SolverBranchAndBound< JP >, BGIP_SolverAlternatingMaximization< JP >, and BGIP_SolverBruteForceSearch< JP >.

Referenced by GetNextJointPolicyAndValue().

Member Data Documentation

size_t BGIP_IncrementalSolverInterface::_m_nrSolutionsReturned
protected

The number of solutions we already returned (not computed)