3 #include <geneial/namespaces.h>
7 geneial_private_namespace(geneial)
9 geneial_private_namespace(operation)
11 geneial_private_namespace(crossover)
13 using ::geneial::population::Population;
14 using ::geneial::population::chromosome::MultiValueChromosome;
15 using ::geneial::operation::coupling::BaseCouplingOperation;
17 geneial_export_namespace
19 class MultiValueChromosomeNPointCrossoverSettings
57 RANDOM_WIDTH, RANDOM_MIN_WIDTH, EQUIDISTANT_WIDTH
60 MultiValueChromosomeNPointCrossoverSettings(
const unsigned int crossOverPoints,
const width_settings width_setting,
61 const unsigned int min_width = 1) :
62 _crossOverPoints(crossOverPoints), _width_setting(width_setting), _min_width(min_width)
64 assert(crossOverPoints > 0);
65 assert(width_setting != RANDOM_MIN_WIDTH || min_width > 1);
68 virtual ~MultiValueChromosomeNPointCrossoverSettings()
72 unsigned int getCrossOverPoints()
const
74 return _crossOverPoints;
77 void setCrossOverPoints(
const unsigned int crossOverPoints)
79 _crossOverPoints = crossOverPoints;
82 unsigned int getMinWidth()
const
87 void setMinWidth(
const unsigned int minWidth)
89 _min_width = minWidth;
92 width_settings getWidthSetting()
const
94 return _width_setting;
97 void setWidthSetting(
const width_settings widthSetting)
99 _width_setting = widthSetting;
103 unsigned int _crossOverPoints;
104 width_settings _width_setting;
105 unsigned int _min_width;