MultiAgentDecisionProcess
|
BGIP_SolverAlternatingMaximization implements an approximate solver for identical payoff Bayesian games, based on alternating maximization. More...
#include <BGIP_SolverAlternatingMaximization.h>
Public Member Functions | |
BGIP_SolverAlternatingMaximization (const boost::shared_ptr< const BayesianGameIdenticalPayoffInterface > &bg, unsigned int nrRestarts=10, int verbose=0, size_t nrSolutions=1) | |
(default) Constructor More... | |
bool | GetNextJointPolicyAndValueSpecific (boost::shared_ptr< JointPolicyDiscretePure > &jpol, double &value) |
The specific implementation that should be implemented by the derived class: More... | |
bool | IsExactSolver () const |
Methods should indicated whether they compute exact (optimal) solutions or not. More... | |
void | SetCBGlowerBound (double lb) |
void | SetCBGupperBound (double upperbound) |
double | Solve () |
The methods that performs the planning. More... | |
~BGIP_SolverAlternatingMaximization () | |
Destructor. More... | |
Public Member Functions inherited from BGIP_IncrementalSolverInterface_T< JP > | |
BGIP_IncrementalSolverInterface_T (const boost::shared_ptr< const BayesianGameIdenticalPayoffInterface > &bg, size_t nrDesiredSolutions=INT_MAX) | |
virtual boost::shared_ptr < JointPolicyDiscretePure > | GetNewJpol () const |
this gives a implementation of GetNewJpol (specified in BayesianGameIdenticalPayoffSolver) More... | |
Public Member Functions inherited from BGIP_IncrementalSolverInterface | |
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 JointPolicyPureVector & | GetJointPolicyPureVector () const |
boost::shared_ptr< JPPVValuePair > | GetNextSolutionJPPV () 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 |
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 | 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 | ~BayesianGameIdenticalPayoffSolver () |
Destructor. More... | |
Private Member Functions | |
double | ComputeBestResponse (JP &jpolBG, Index optimizingAgentI) |
Private Attributes | |
double | _m_deadlineInSeconds |
unsigned int | _m_nrRestarts |
bool | _m_solved |
int | _m_verbose |
Additional Inherited Members | |
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 inherited from BGIP_IncrementalSolverInterface | |
size_t | _m_nrSolutionsReturned |
The number of solutions we already returned (not computed) More... | |
BGIP_SolverAlternatingMaximization implements an approximate solver for identical payoff Bayesian games, based on alternating maximization.
The template argument JP represents the joint policy class the solver should return.
|
inline |
(default) Constructor
|
inline |
Destructor.
|
inlineprivate |
References DEBUG_CBR, BayesianGameIdenticalPayoffSolver::Evaluate(), BayesianGameIdenticalPayoffSolver::GetBGIPI(), BayesianGameBase::GetNrActions(), BayesianGameBase::GetNrJointTypes(), BayesianGameBase::GetNrTypes(), BayesianGameBase::GetProbability(), BayesianGameIdenticalPayoffInterface::GetUtility(), BayesianGameBase::IndividualToJointActionIndices(), BayesianGameBase::JointToIndividualActionIndices(), and BayesianGameBase::JointToIndividualTypeIndices().
Referenced by BGIP_SolverAlternatingMaximization< JP >::Solve().
|
inlinevirtual |
The specific implementation that should be implemented by the derived class:
Implements BGIP_IncrementalSolverInterface.
References BayesianGameIdenticalPayoffSolver::GetNextSolutionJPPV(), BayesianGameIdenticalPayoffSolver::GetNextSolutionPJPDP(), BayesianGameIdenticalPayoffSolver::IsEmptyJPPV(), BayesianGameIdenticalPayoffSolver::IsEmptyPJPDP(), and BGIP_SolverAlternatingMaximization< JP >::Solve().
|
inlinevirtual |
Methods should indicated whether they compute exact (optimal) solutions or not.
Implements BayesianGameIdenticalPayoffSolver.
|
inlinevirtual |
Implements BayesianGameIdenticalPayoffSolver.
|
inlinevirtual |
Implements BayesianGameIdenticalPayoffSolver.
|
inlinevirtual |
The methods that performs the planning.
Returns the expected reward.
Implements BayesianGameIdenticalPayoffSolver.
References BGIP_SolverAlternatingMaximization< JP >::_m_nrRestarts, BayesianGameIdenticalPayoffSolver::_m_solution, BayesianGameIdenticalPayoffSolver::AddSolution(), BayesianGameIdenticalPayoffSolver::CheckDeadline(), BGIP_SolverAlternatingMaximization< JP >::ComputeBestResponse(), DEBUG_BGIP_SOLVER_AM_SOLVE, BayesianGameIdenticalPayoffSolver::Evaluate(), BayesianGameIdenticalPayoffSolver::GetBGIPI(), TimeTools::GetDeltaTimeDouble(), BGIP_IncrementalSolverInterface_T< JP >::GetNewJpol(), BayesianGameIdenticalPayoffSolver::GetNrFoundSolutions(), BayesianGameIdenticalPayoffSolver::GetResultsOFStream(), BayesianGameIdenticalPayoffSolver::GetTimingsOFStream(), BayesianGameIdenticalPayoffSolver::GetWriteAnyTimeResults(), BayesianGameIdenticalPayoffSolver::InitDeadline(), and BGIPSolution::SoftPrint().
Referenced by BGIP_SolverAlternatingMaximization< JP >::GetNextJointPolicyAndValueSpecific().
|
private |
|
private |
Referenced by BGIP_SolverAlternatingMaximization< JP >::Solve().
|
private |
|
private |