21 #include "../common/exception.hpp"
22 #include "../framework/packer.hpp"
23 #include "../common/version.hpp"
30 : eps_(eps), s_(assume_unrewarded) {
31 if (eps < 0 || 1 < eps) {
47 result = arms[
rand_.next_int(arms.size())];
52 for (
size_t i = 1; i < arms.size(); ++i) {
72 const std::string& arm_id,
arm_info_map get_arm_info(const std::string &player_id) const
void mix(const diff_t &lhs, diff_t &rhs) const
epsilon_greedy(bool assume_unrewarded, double eps)
bool put_diff(const diff_t &diff)
bool reset(const std::string &player_id)
bool delete_arm(const std::string &arm_id)
std::string select_arm(const std::string &player_id)
bool register_reward(const std::string &player_id, const std::string &arm_id, double reward)
bool register_arm(const std::string &arm_id)
#define JUBATUS_EXCEPTION(e)
jubatus::util::data::unordered_map< std::string, arm_info_map > diff_t
bool register_reward(const std::string &player_id, const std::string &arm_id, double reward)
double get_expectation(const std::string &player_id, const std::string &arm_id) const
const std::vector< std::string > & get_arm_ids() const
void unpack(msgpack::object o)
void notify_selected(const std::string &player_id, const std::string &arm_id)
void get_diff(table_t &diff) const
bool register_arm(const std::string &arm_id)
bool put_diff(const table_t &diff)
storage::version get_version() const
jubatus::util::data::unordered_map< std::string, arm_info > arm_info_map
jubatus::util::math::random::mtrand rand_
static void mix(const table_t &lhs, table_t &rhs)
void pack(framework::packer &pk) const
arm_info_map get_arm_info_map(const std::string &player_id) const
bool delete_arm(const std::string &arm_id)
void get_diff(diff_t &diff) const
bool reset(const std::string &player_id)