Vowpal Wabbit
Loading...
Searching...
No Matches
Namespaces | Functions
explore_internal.h File Reference
#include "vw/common/hash.h"
#include "vw/common/random.h"
#include "vw/common/random_details.h"
#include "vw/explore/explore_error_codes.h"
#include <algorithm>
#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstring>
#include <numeric>
#include <stdexcept>
#include <vector>

Namespaces

namespace  VW
 
namespace  VW::explore
 
namespace  VW::explore::details
 

Functions

template<typename It >
int VW::explore::details::generate_epsilon_greedy (float epsilon, uint32_t top_action, It pmf_first, It pmf_last, std::random_access_iterator_tag)
 
template<typename InputIt , typename OutputIt >
int VW::explore::details::generate_softmax (float lambda, InputIt scores_first, InputIt scores_last, std::input_iterator_tag, OutputIt pmf_first, OutputIt pmf_last, std::random_access_iterator_tag)
 
template<typename InputIt , typename OutputIt >
int VW::explore::details::generate_bag (InputIt top_actions_first, InputIt top_actions_last, std::input_iterator_tag, OutputIt pmf_first, OutputIt pmf_last, std::random_access_iterator_tag)
 
template<typename It >
int VW::explore::details::enforce_minimum_probability (float uniform_epsilon, bool consider_zero_valued_elements, It pmf_first, It pmf_last, std::random_access_iterator_tag)
 
template<typename It >
int VW::explore::details::mix_with_uniform (float uniform_epsilon, It pmf_first, It pmf_last, std::random_access_iterator_tag)
 
template<typename It >
int VW::explore::details::sample_after_normalizing (uint64_t seed, It pmf_first, It pmf_last, uint32_t &chosen_index, std::input_iterator_tag)
 
template<typename It >
int VW::explore::details::sample_after_normalizing (const char *seed, It pmf_first, It pmf_last, uint32_t &chosen_index, std::random_access_iterator_tag pmf_category)
 
template<typename ActionIt >
int VW::explore::details::swap_chosen (ActionIt action_first, ActionIt action_last, std::forward_iterator_tag, uint32_t chosen_index)
 
template<typename It >
int VW::explore::details::sample_scores (uint64_t *p_seed, It scores_first, It scores_last, uint32_t &chosen_index, std::random_access_iterator_tag)
 
template<typename It >
int VW::explore::details::sample_pdf (uint64_t *p_seed, It pdf_first, It pdf_last, float &chosen_value, float &pdf_value, std::random_access_iterator_tag)
 
template<typename It >
int VW::explore::generate_epsilon_greedy (float epsilon, uint32_t top_action, It pmf_first, It pmf_last)
 Experimental: Generates epsilon-greedy style exploration distribution. More...
 
template<typename InputIt , typename OutputIt >
int VW::explore::generate_softmax (float lambda, InputIt scores_first, InputIt scores_last, OutputIt pmf_first, OutputIt pmf_last)
 Generates softmax style exploration distribution. More...
 
template<typename InputIt , typename OutputIt >
int VW::explore::generate_bag (InputIt top_actions_first, InputIt top_actions_last, OutputIt pmf_first, OutputIt pmf_last)
 Generates an exploration distribution according to votes on actions. More...
 
template<typename It >
int VW::explore::enforce_minimum_probability (float uniform_epsilon, bool consider_zero_valued_elements, It pmf_first, It pmf_last)
 Updates the pmf to ensure each action is explored with at least minimum_uniform/num_actions. More...
 
template<typename It >
int VW::explore::mix_with_uniform (float uniform_epsilon, It pmf_first, It pmf_last)
 Mix original PMF with uniform distribution. More...
 
template<typename It >
int VW::explore::sample_after_normalizing (uint64_t seed, It pmf_first, It pmf_last, uint32_t &chosen_index)
 Sample an index from the provided pmf. If the pmf is not normalized it will be updated in-place. More...
 
template<typename It >
int VW::explore::sample_after_normalizing (const char *seed, It pmf_first, It pmf_last, uint32_t &chosen_index)
 Sample an index from the provided pmf. If the pmf is not normalized it will be updated in-place. More...
 
template<typename ActionsIt >
int VW::explore::swap_chosen (ActionsIt action_first, ActionsIt action_last, uint32_t chosen_index)
 
template<typename It >
int VW::explore::sample_pdf (uint64_t *p_seed, It pdf_first, It pdf_last, float &chosen_value, float &pdf_value)
 Sample a continuous value from the provided pdf. More...