|
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 |