1#ifndef RANDOM_TABULAR_POLICY_H
2#define RANDOM_TABULAR_POLICY_H
5#include "cuberl/base/cubeai_config.h"
10#include <torch/torch.h>
45 template<
typename MatType>
57 template<
typename VecTp>
64 template<
typename MatType>
72 template<
typename VecTp>
96 mutable std::mt19937 generator_;
104 auto vector = cuberl::utils::pytorch::TorchAdaptor::to_vector<real_t>(vec);
106 std::uniform_int_distribution<uint_t> distribution(0, vector.size()-1);
107 return distribution(generator_);
112template<
typename VecTp>
117 std::uniform_int_distribution<uint_t> distribution(0, vec.size()-1);
118 return distribution(generator_);
122template<
typename VecTp>
125 std::uniform_int_distribution<uint_t> distribution(0, vec.size()-1);
126 return distribution(generator_);
class RandomTabularPolicy
Definition random_tabular_policy.h:23
RandomTabularPolicy(uint_t seed)
Constructor Initialize with a seed.
RandomTabularPolicy()
Constructor.
uint_t output_type
The type returned when calling this->operator()
Definition random_tabular_policy.h:30
output_type operator()(const MatType &q_map, uint_t state_idx) const
operator(). Given a
void reset() noexcept
Reset the policy.
Definition random_tabular_policy.h:84
void on_episode(uint_t) noexcept
any actions the policy should perform on the given episode index
Definition random_tabular_policy.h:79
output_type get_action(const MatType &q_map, uint_t state_idx)
get_action. Given a
std::size_t uint_t
uint_t
Definition bitrl_types.h:43
Various utilities used when working with RL problems.
Definition cuberl_types.h:16