1#ifndef FSTSEARCHSEQSTEPSTRAIGHT_H
2#define FSTSEARCHSEQSTEPSTRAIGHT_H
102template<
class RETURNTYPE,
typename DIMTYPE,
class SUBSET,
class CRITERION>
105 typedef Sequential_Step<RETURNTYPE,DIMTYPE,SUBSET,CRITERION>
parent;
113 notify(
"Sequential_Step_Straight constructor.");
121 virtual std::ostream&
print(std::ostream& os)
const override {
122 if(
_engine->is_threaded()) os <<
"Sequential_Step_Straight(threads="<<
_engine->get_max_threads()<<
")";
123 else os <<
"Sequential_Step_Straight()";
131template<
class RETURNTYPE,
typename DIMTYPE,
class SUBSET,
class CRITERION>
136 assert(_generalization_level>=1 && _generalization_level<=sub->get_n());
144 on_result=[tracker](
const RETURNTYPE val,
const PSubset &csub,
const DIMTYPE) {tracker->add(val,csub);};
152 const DIMTYPE max_candidates =
_engine->is_threaded() ? sub->getNoOfCandidateSubsets(_generalization_level,
false) : 1;
153 _engine->initialize(crit, max_candidates, on_result);
155 bool b=sub->getFirstCandidateSubset(_generalization_level,
false);
158 if(!
_engine->add_candidate(sub))
return false;
160 b=sub->getNextCandidateSubset();
163 if(!
_engine->add_candidate(sub))
return false;
164 b=sub->getNextCandidateSubset();
168 DIMTYPE dummyfeature;
169 if(!
_engine->getBestResult(result,psub,dummyfeature))
return false;
171 assert(psub->get_n()==sub->get_n());
172 sub->stateless_copy(*psub);
Abstract candidate-evaluation strategy: the seam through which one search algorithm body evaluates ca...
Implements sequential in-line evaluation of a criterion on a set of subset candidates.
Implements sequential in-line evaluation of a criterion on a set of subset candidates.
Definition candidate_evaluator_sequential.hpp:62
Abstract candidate-evaluation strategy (sequential-inline vs. thread-pooled).
Definition candidate_evaluator.hpp:86
std::function< void(const RETURNTYPE, const PSubset &, const DIMTYPE)> ResultCallback
fired once per evaluated batch candidate: (criterion value, candidate, feature tag as passed to add_c...
Definition candidate_evaluator.hpp:94
Implements standard sequential selection step in sequential search type of methods.
Definition seq_step_straight.hpp:103
Sequential_Step_Straight(PEvaluatorEngine engine=PEvaluatorEngine())
engine defaults to sequential in-line evaluation (Candidate_Evaluator_Sequential) if not supplied; pa...
Definition seq_step_straight.hpp:111
Candidate_Evaluator< RETURNTYPE, DIMTYPE, SUBSET, CRITERION > EVALUATORENGINE
the injected evaluation-strategy interface (sequential in-line or thread-pooled)
Definition seq_step_straight.hpp:108
std::shared_ptr< CRITERION > PCriterion
shared pointer to the criterion the search optimizes
Definition seq_step_straight.hpp:106
PEvaluatorEngine _engine
injected evaluation strategy (sequential-inline or thread-pooled); defaulted in the constructor if no...
Definition seq_step_straight.hpp:128
std::shared_ptr< SUBSET > PSubset
shared pointer to a feature subset
Definition seq_step_straight.hpp:107
bool evaluate_candidates(RETURNTYPE &result, const PSubset sub, const PCriterion crit, const DIMTYPE _generalization_level=1, std::ostream &os=std::cout) override
evaluates every subset offered by sub->get*CandidateSubset() and leaves the highest-valued one in sub...
Definition seq_step_straight.hpp:132
Sequential_Step< RETURNTYPE, DIMTYPE, SUBSET, CRITERION > parent
base class alias
Definition seq_step_straight.hpp:105
virtual std::ostream & print(std::ostream &os) const override
writes "Sequential_Step_Straight(threads=N)" if the injected engine is threaded, else "Sequential_Ste...
Definition seq_step_straight.hpp:121
std::shared_ptr< EVALUATORENGINE > PEvaluatorEngine
Definition seq_step_straight.hpp:109
std::shared_ptr< Result_Tracker< RETURNTYPE, SUBSET > > PResultTracker
shared pointer to the result tracker enabled via enable_result_tracking()
Definition seq_step.hpp:103
PResultTracker _tracker
the assigned result tracker, or null (see enable_result_tracking()/result_tracker_active())
Definition seq_step.hpp:140
bool output_detailed() const
true only at the DETAILED output level
Definition seq_step.hpp:138
bool result_tracker_active() const
true if a result tracker was assigned via enable_result_tracking() and not since disabled
Definition seq_step.hpp:133
static void print(std::ostream &os, std::ostringstream &sos)
Writes sos's buffered content to os, serializing concurrent writers under FST_THREADED via a shared m...
Definition global.hpp:86
FST4 specific error passing class.
The Feature Selection Toolbox 4 library: every library component – data access, criteria and classifi...
Definition data_accessor.hpp:80
void notify(const std::string msg)
Prints msg followed by a newline via syncout::print(); a no-op unless the preprocessor macro DEBUG is...
Definition global.hpp:112
Defines interface for implementations of one selection step in sequential search type of methods.