| Module | UniformCrossover |
| In: |
lib/charlie/list/list_crossover.rb
|
Uniform crossover, returns two children.
# File lib/charlie/list/list_crossover.rb, line 37
37: def cross(parent1,parent2)
38: c1 = []; c2=[]
39: g1 = parent1.genes; g2 = parent2.genes
40: g1.each_with_index{|e,i|
41: if rand(2).zero?
42: c1 << e; c2 << g2[i]
43: else
44: c2 << e; c1 << g2[i]
45: end
46: }
47: [c1,c2].map{|x| from_genes(x) }
48: end