22 #include "../common/exception.hpp"
23 #include "../framework/packer.hpp"
24 #include "../common/version.hpp"
31 : s_(assume_unrewarded) {
42 for (
size_t i = 0; i < arms.size(); ++i) {
49 double log_total_trial = std::log(total_trial);
51 double score_max = -DBL_MAX;
53 for (
size_t i = 0; i < arms.size(); ++i) {
56 double score = exp + std::sqrt(2 * log_total_trial / a.
trial_count);
57 if (score > score_max) {
74 const std::string& arm_id,
void unpack(msgpack::object o)
bool reset(const std::string &player_id)
bool delete_arm(const std::string &arm_id)
storage::version get_version() const
bool register_reward(const std::string &player_id, const std::string &arm_id, double reward)
bool put_diff(const diff_t &diff)
ucb1(bool assume_unrewarded)
arm_info_map get_arm_info(const std::string &player_id) const
#define JUBATUS_EXCEPTION(e)
std::string select_arm(const std::string &player_id)
bool register_reward(const std::string &player_id, const std::string &arm_id, double reward)
jubatus::util::data::unordered_map< std::string, arm_info_map > diff_t
bool reset(const std::string &player_id)
const std::vector< std::string > & get_arm_ids() const
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)
jubatus::util::data::unordered_map< std::string, arm_info > arm_info_map
void get_diff(diff_t &diff) const
static void mix(const table_t &lhs, table_t &rhs)
arm_info get_arm_info(const std::string &player_id, const std::string &arm_id) const
arm_info_map get_arm_info_map(const std::string &player_id) const
bool delete_arm(const std::string &arm_id)
void mix(const diff_t &lhs, diff_t &rhs) const
void pack(framework::packer &pk) const
bool register_arm(const std::string &arm_id)