3 #include <geneial/core/operations/replacement/BaseReplacementOperation.h>
4 #include <geneial/utility/mixins/EnableMakeShared.h>
7 geneial_private_namespace(geneial)
9 geneial_private_namespace(operation)
11 geneial_private_namespace(replacement)
13 using ::geneial::operation::coupling::BaseCouplingOperation;
14 using ::geneial::operation::selection::BaseSelectionOperation;
15 using ::geneial::utility::EnableMakeShared;
17 geneial_export_namespace
23 template<
typename FITNESS_TYPE>
24 class ReplaceRandomOperation:
public BaseReplacementOperation<FITNESS_TYPE>,
25 public EnableMakeShared<ReplaceRandomOperation<FITNESS_TYPE>>
28 unsigned int getAmountToReplace(
const Population<FITNESS_TYPE> &population,
29 const typename coupling::BaseCouplingOperation<FITNESS_TYPE>::offspring_result_set &offspring)
const;
32 explicit ReplaceRandomOperation(
const std::shared_ptr<const BaseReplacementSettings> &settings) :
33 BaseReplacementOperation<FITNESS_TYPE>(settings)
39 virtual ~ReplaceRandomOperation()
43 void doReplace(Population<FITNESS_TYPE> &population,
44 const typename BaseSelectionOperation<FITNESS_TYPE>::selection_result_set &parents,
45 typename BaseCouplingOperation<FITNESS_TYPE>::offspring_result_set &offspring,
46 BaseManager<FITNESS_TYPE> &manager)
const override;
48 class Builder :
public BaseReplacementOperation<FITNESS_TYPE>::Builder
51 Builder():BaseReplacementOperation<FITNESS_TYPE>::Builder()
54 typename BaseReplacementOperation<FITNESS_TYPE>::ptr create()
override
57 ReplaceRandomOperation<FITNESS_TYPE>::makeShared(this->_settings)
68 #include <geneial/core/operations/replacement/ReplaceRandomOperation.hpp>