3 #include <geneial/core/operations/selection/BaseSelectionOperation.h>
4 #include <geneial/utility/mixins/EnableMakeShared.h>
9 geneial_private_namespace(geneial)
11 geneial_private_namespace(operation)
13 geneial_private_namespace(selection)
15 using ::geneial::utility::EnableMakeShared;
17 geneial_export_namespace
23 template<
typename FITNESS_TYPE>
24 class UniformRandomSelection:
public BaseSelectionOperation<FITNESS_TYPE>,
25 public virtual EnableMakeShared<UniformRandomSelection<FITNESS_TYPE>>
28 UniformRandomSelection(
const std::shared_ptr<BaseSelectionSettings> &settings) :
29 BaseSelectionOperation<FITNESS_TYPE>(settings)
33 virtual ~UniformRandomSelection()
37 virtual typename BaseSelectionOperation<FITNESS_TYPE>::selection_result_set doSelect(
38 const Population<FITNESS_TYPE> &population, BaseManager<FITNESS_TYPE> &manager)
const override;
40 class Builder :
public BaseSelectionOperation<FITNESS_TYPE>::Builder
44 Builder() : BaseSelectionOperation<FITNESS_TYPE>::Builder()
48 typename BaseSelectionOperation<FITNESS_TYPE>::ptr create()
override
50 return UniformRandomSelection<FITNESS_TYPE>::makeShared(this->_settings);
62 #include <geneial/core/operations/selection/UniformRandomSelection.hpp>