EdgeRecombination crossover implementation