23 #include "../common/exception.hpp"
24 #include "../framework/packer.hpp"
26 #include "../common/version.hpp"
33 : tau_(tau), s_(assume_unrewarded) {
47 std::vector<double> weights;
48 weights.reserve(arms.size());
50 for (
size_t i = 0; i < arms.size(); ++i) {
52 weights.push_back(std::exp(expectation /
tau_));
67 const std::string& arm_id,
bool put_diff(const diff_t &diff)
jubatus::util::math::random::mtrand rand_
bool reset(const std::string &player_id)
void get_diff(diff_t &diff) const
int select_by_weights(const std::vector< double > &weights, mtrand &rand)
bool reset(const std::string &player_id)
bool register_arm(const std::string &arm_id)
bool register_reward(const std::string &player_id, const std::string &arm_id, double reward)
void pack(framework::packer &pk) const
#define JUBATUS_EXCEPTION(e)
jubatus::util::data::unordered_map< std::string, arm_info_map > diff_t
double get_expectation(const std::string &player_id, const std::string &arm_id) const
storage::version get_version() const
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
softmax(bool assume_unrewarded, double tau)
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 unpack(msgpack::object o)
std::string select_arm(const std::string &player_id)
bool delete_arm(const std::string &arm_id)
void mix(const diff_t &lhs, diff_t &rhs) const
static void mix(const table_t &lhs, table_t &rhs)
arm_info_map get_arm_info_map(const std::string &player_id) const
bool delete_arm(const std::string &arm_id)
bool register_reward(const std::string &player_id, const std::string &arm_id, double reward)
arm_info_map get_arm_info(const std::string &player_id) const