Feature Selection Toolbox FST4
UTIA · Czech Academy of Sciences
Loading...
Searching...
No Matches
FST::Search_Monte_Carlo_Threaded< RETURNTYPE, DIMTYPE, SUBSET, CRITERION > Class Template Reference

DEPRECATED shim: threaded version of randomized search that repeatedly samples random subsets. More...

#include <search_monte_carlo_threaded.hpp>

Inheritance diagram for FST::Search_Monte_Carlo_Threaded< RETURNTYPE, DIMTYPE, SUBSET, CRITERION >:
FST::Search_Monte_Carlo< RETURNTYPE, DIMTYPE, SUBSET, CRITERION > FST::Search< RETURNTYPE, DIMTYPE, SUBSET, CRITERION >

Public Types

typedef Search_Monte_Carlo< RETURNTYPE, DIMTYPE, SUBSET, CRITERION > parent
 base class: the merged Monte Carlo search this shim configures with a threaded engine
typedef parent::PEvaluatorEngine PEvaluatorEngine
 the candidate-evaluation engine type, inherited from parent
Public Types inherited from FST::Search_Monte_Carlo< RETURNTYPE, DIMTYPE, SUBSET, CRITERION >
typedef Search< RETURNTYPE, DIMTYPE, SUBSET, CRITERION > parent
 base class alias
typedef std::shared_ptr< CRITERION > PCriterion
 shared pointer to the criterion the search optimizes
typedef std::shared_ptr< SUBSET > PSubset
 shared pointer to a feature subset
typedef Candidate_Evaluator< RETURNTYPE, DIMTYPE, SUBSET, CRITERION > EVALUATORENGINE
 the injected evaluation-strategy interface (sequential in-line or thread-pooled)
typedef std::shared_ptr< EVALUATORENGINE > PEvaluatorEngine

Public Member Functions

 Search_Monte_Carlo_Threaded (const unsigned int max_threads=2, const unsigned long trials_limit=1000, const unsigned long time_limit=0, const unsigned int time_limit_check_freq=10)
 Constructs a Search_Monte_Carlo configured with a Candidate_Evaluator_Threaded engine of max_threads workers.
Public Member Functions inherited from FST::Search_Monte_Carlo< RETURNTYPE, DIMTYPE, SUBSET, CRITERION >
 Search_Monte_Carlo (const unsigned long long trials_limit=1000, const unsigned long time_limit=0, const unsigned int time_limit_check_freq=1, PEvaluatorEngine engine=PEvaluatorEngine())
 engine defaults to sequential in-line evaluation if not supplied; see set_stopping_condition() for trials_limit / time_limit / time_limit_check_freq
virtual bool search (const DIMTYPE target_d, RETURNTYPE &result, const PSubset sub, const PCriterion crit, std::ostream &os=std::cout) override
 samples random subsets of target_d features (of randomized size if target_d==0: from the configured range or inclusion probability, see set_cardinality_randomization(), or uniformly from [1,n] when neither is set) until the stopping condition is met, and returns the best one + its criterion value; false if no candidate was evaluated successfully. target_d must be smaller than the full feature count - drawing all n features at random is not a search (unlike Search_Exhaustive, which accepts target_d==n)
void set_stopping_condition (const unsigned long long trials_limit=1000, const unsigned long time_limit=0, const unsigned int time_limit_check_freq=100)
 set maximum number of random trials or maximum time in seconds or both; trials_limit and time_limit both 0 is replaced by a limit of 1000 trials, time_limit_check_freq 0 by 100 (the elapsed time is read once per that many trials; the constructor asks for 1, i.e. a check per trial)
void set_cardinality_randomization (const DIMTYPE d_from, const DIMTYPE d_to)
 generate subset size first from [d_from,d_to], then randomly choose exactly that number of features
void set_cardinality_randomization (const float d_prob)
 for each feature roll the dice and select it with probability d_prob
void reset_cardinality_randomization ()
 clears both ways of randomizing the subset size (the constructor calls this); with neither of them in effect a target_d==0 search draws each probe's size uniformly from [1,n]
virtual std::ostream & print (std::ostream &os) const override
 writes a human-readable identification of the search and its configuration; base default writes nothing

Additional Inherited Members

Protected Attributes inherited from FST::Search_Monte_Carlo< RETURNTYPE, DIMTYPE, SUBSET, CRITERION >
PEvaluatorEngine _engine
 injected evaluation strategy (sequential-inline or thread-pooled); defaulted in the constructor if not supplied
unsigned long _time_limit
 max time allowed to be spent in seconds
unsigned long long _trials_limit
 max no of candidates evaluated (64-bit: counts candidates, see the LLP64 note on Candidate_Evaluator::BestCallback)
unsigned int _time_limit_check_freq
 number of trials before next time check
DIMTYPE _d_from
 lower bound of the random subset size range; see set_cardinality_randomization(const DIMTYPE, const DIMTYPE)
DIMTYPE _d_to
 upper bound of the random subset size range
float _d_prob
 active d_prob must be from (0,1]; generates random subset of random size where the mean size over a series of calls is d_prob*no_of_all_features

Detailed Description

template<class RETURNTYPE, typename DIMTYPE, class SUBSET, class CRITERION>
class FST::Search_Monte_Carlo_Threaded< RETURNTYPE, DIMTYPE, SUBSET, CRITERION >

DEPRECATED shim: threaded version of randomized search that repeatedly samples random subsets.

Deprecated
Deprecated since FST4 4.0; scheduled for removal in the next major release — construct the merged class with a Candidate_Evaluator_Threaded engine instead.

Kept for source compatibility with earlier FST4 sources, written when the threaded and the sequential variant were separate classes. This class is now nothing but a Search_Monte_Carlo constructed with a Candidate_Evaluator_Threaded engine; prefer doing that directly in new code.

Note
Random candidates are generated on the calling (master) thread from the FST::fst_rand() stream and their results are consumed in generation order, so a threaded run yields exactly the same result as a sequential one at the same seed, whatever the thread count (see Candidate_Evaluator_Threaded).

Constructor & Destructor Documentation

◆ Search_Monte_Carlo_Threaded()

template<class RETURNTYPE, typename DIMTYPE, class SUBSET, class CRITERION>
FST::Search_Monte_Carlo_Threaded< RETURNTYPE, DIMTYPE, SUBSET, CRITERION >::Search_Monte_Carlo_Threaded ( const unsigned int max_threads = 2,
const unsigned long trials_limit = 1000,
const unsigned long time_limit = 0,
const unsigned int time_limit_check_freq = 10 )
inlineexplicit

Constructs a Search_Monte_Carlo configured with a Candidate_Evaluator_Threaded engine of max_threads workers.

Parameters
max_threadspool capacity for the threaded engine (must be greater than zero, asserted)
trials_limitmaximum number of random subsets to sample (forwarded to Search_Monte_Carlo)
time_limitwall-clock time budget in seconds, 0 = unlimited (forwarded to Search_Monte_Carlo)
time_limit_check_freqhow often (in trials) the time limit is checked (forwarded to Search_Monte_Carlo)

The documentation for this class was generated from the following file:
Copyright © 2000–present ÚTIA, Institute of Information Theory and Automation of the Czech Academy of Sciences · Contacts · This site sets no cookies and uses no analytics.