AIToolbox
A library that offers tools for AI problem solving.
Utils.hpp File Reference
#include <cstddef>
#include <iterator>
#include <numeric>
#include <AIToolbox/Utils/Core.hpp>
#include <AIToolbox/Utils/Probability.hpp>
#include <AIToolbox/Utils/Polytope.hpp>
#include <AIToolbox/POMDP/Types.hpp>
#include <AIToolbox/POMDP/TypeTraits.hpp>
#include <boost/functional/hash.hpp>

Go to the source code of this file.

Namespaces

 AIToolbox
 
 AIToolbox::POMDP
 

Functions

std::strong_ordering AIToolbox::POMDP::operator<=> (const VEntry &lhs, const VEntry &rhs)
 This function lexicographically sorts VEntries. More...
 
bool AIToolbox::POMDP::operator== (const VEntry &lhs, const VEntry &rhs)
 
VEntry AIToolbox::POMDP::makeVEntry (size_t S, size_t a, size_t O)
 This function creates and zeroes a VEntry. More...
 
size_t AIToolbox::POMDP::hash_value (const VEntry &v)
 This function enables hashing of VEntries with boost::hash. More...
 
const MDP::Values & AIToolbox::POMDP::unwrap (const VEntry &ve)
 This function is used as iterator projection to obtain the Values of a VEntry. More...
 
ValueFunction AIToolbox::POMDP::makeValueFunction (size_t S)
 This function creates a default ValueFunction. More...
 
double AIToolbox::POMDP::weakBoundDistance (const VList &oldV, const VList &newV)
 This function returns a weak measure of distance between two VLists. More...
 
template<IsModel M>
auto AIToolbox::POMDP::makeSOSA (const M &m)
 This function creates the SOSA matrix for the input POMDP. More...
 
template<IsModel M>
void AIToolbox::POMDP::updateBeliefUnnormalized (const M &model, const Belief &b, const size_t a, const size_t o, Belief *bRet)
 Creates a new belief reflecting changes after an action and observation for a particular Model. More...
 
template<IsModel M>
Belief AIToolbox::POMDP::updateBeliefUnnormalized (const M &model, const Belief &b, const size_t a, const size_t o)
 Creates a new belief reflecting changes after an action and observation for a particular Model. More...
 
template<IsModel M>
void AIToolbox::POMDP::updateBelief (const M &model, const Belief &b, const size_t a, const size_t o, Belief *bRet)
 Creates a new belief reflecting changes after an action and observation for a particular Model. More...
 
template<IsModel M>
Belief AIToolbox::POMDP::updateBelief (const M &model, const Belief &b, const size_t a, const size_t o)
 Creates a new belief reflecting changes after an action and observation for a particular Model. More...
 
template<IsModel M>
void AIToolbox::POMDP::updateBeliefPartial (const M &model, const Belief &b, const size_t a, Belief *bRet)
 This function partially updates a belief. More...
 
template<IsModel M>
Belief AIToolbox::POMDP::updateBeliefPartial (const M &model, const Belief &b, const size_t a)
 This function partially updates a belief. More...
 
template<IsModel M>
void AIToolbox::POMDP::updateBeliefPartialUnnormalized (const M &model, const Belief &b, const size_t a, const size_t o, Belief *bRet)
 This function terminates the unnormalized update of a partially updated belief. More...
 
template<IsModel M>
Belief AIToolbox::POMDP::updateBeliefPartialUnnormalized (const M &model, const Belief &b, const size_t a, const size_t o)
 This function terminates the unnormalized update of a partially updated belief. More...
 
template<IsModel M>
void AIToolbox::POMDP::updateBeliefPartialNormalized (const M &model, const Belief &b, const size_t a, const size_t o, Belief *bRet)
 This function terminates the normalized update of a partially updated belief. More...
 
template<IsModel M>
Belief AIToolbox::POMDP::updateBeliefPartialNormalized (const M &model, const Belief &b, const size_t a, const size_t o)
 This function terminates the normalized update of a partially updated belief. More...
 
template<IsModel M>
double AIToolbox::POMDP::beliefExpectedReward (const M &model, const Belief &b, const size_t a)
 This function computes an immediate reward based on a belief rather than a state. More...
 
template<typename ActionRow >
void AIToolbox::POMDP::crossSumBestAtBelief (const Belief &b, const ActionRow &row, VEntry *outp, double *value=nullptr)
 This function computes the best VEntry for the input belief from the input VLists. More...
 
template<typename ActionRow >
VEntry AIToolbox::POMDP::crossSumBestAtBelief (const Belief &b, const ActionRow &row, const size_t a, double *value=nullptr)
 This function allocates and computes the best VEntry for the input belief from the input VLists. More...
 
template<typename Projections >
VEntry AIToolbox::POMDP::crossSumBestAtBelief (const Belief &b, const Projections &projs, double *value=nullptr)
 This function computes the best VEntry for the input belief across all actions. More...
 
template<IsModel M>
std::tuple< size_t, double > AIToolbox::POMDP::bestConservativeAction (const M &pomdp, MDP::QFunction immediateRewards, const Belief &initialBelief, const VList &lbVList, MDP::Values *alpha=nullptr)
 This function obtains the best action with respect to the input VList. More...
 
template<bool useLP = true, IsModel M>
std::tuple< size_t, double > AIToolbox::POMDP::bestPromisingAction (const M &pomdp, const MDP::QFunction &immediateRewards, const Belief &belief, const MDP::QFunction &ubQ, const UpperBoundValueFunction &ubV, Vector *vals=nullptr)
 This function obtains the best action with respect to the input QFunction and UbV. More...