[yul-phaser] Population: Add constructors to Individual to simplify initialization

This commit is contained in:
cameel
2020-02-19 17:26:34 +01:00
committed by Kamil Śliwak
parent cef01c961a
commit 2291cf78ac
3 changed files with 22 additions and 18 deletions
+1 -4
View File
@@ -157,10 +157,7 @@ vector<Individual> Population::chromosomesToIndividuals(
{
vector<Individual> individuals;
for (auto& chromosome: _chromosomes)
{
size_t fitness = _fitnessMetric.evaluate(chromosome);
individuals.push_back({move(chromosome), fitness});
}
individuals.emplace_back(move(chromosome), _fitnessMetric);
return individuals;
}
+7
View File
@@ -48,6 +48,13 @@ struct Individual
Chromosome chromosome;
size_t fitness;
Individual(Chromosome _chromosome, size_t _fitness):
chromosome(std::move(_chromosome)),
fitness(_fitness) {}
Individual(Chromosome _chromosome, FitnessMetric const& _fitnessMetric):
chromosome(std::move(_chromosome)),
fitness(_fitnessMetric.evaluate(chromosome)) {}
bool operator==(Individual const& _other) const { return fitness == _other.fitness && chromosome == _other.chromosome; }
bool operator!=(Individual const& _other) const { return !(*this == _other); }