mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[yul-phaser] Change the design of crossover operators so that they produce a single chromosome rather than a pair
This commit is contained in:
@@ -98,7 +98,7 @@ function<Mutation> phaser::alternativeMutations(
|
||||
namespace
|
||||
{
|
||||
|
||||
ChromosomePair buildChromosomesBySwappingParts(
|
||||
Chromosome buildChromosomesBySwappingParts(
|
||||
Chromosome const& _chromosome1,
|
||||
Chromosome const& _chromosome2,
|
||||
size_t _crossoverPoint
|
||||
@@ -110,15 +110,9 @@ ChromosomePair buildChromosomesBySwappingParts(
|
||||
auto begin1 = _chromosome1.optimisationSteps().begin();
|
||||
auto begin2 = _chromosome2.optimisationSteps().begin();
|
||||
|
||||
return ChromosomePair(
|
||||
Chromosome(
|
||||
vector<string>(begin1, begin1 + _crossoverPoint) +
|
||||
vector<string>(begin2 + _crossoverPoint, _chromosome2.optimisationSteps().end())
|
||||
),
|
||||
Chromosome(
|
||||
vector<string>(begin2, begin2 + _crossoverPoint) +
|
||||
vector<string>(begin1 + _crossoverPoint, _chromosome1.optimisationSteps().end())
|
||||
)
|
||||
return Chromosome(
|
||||
vector<string>(begin1, begin1 + _crossoverPoint) +
|
||||
vector<string>(begin2 + _crossoverPoint, _chromosome2.optimisationSteps().end())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user