Module MatrixUniformCrossover
In: lib/charlie/list/matrix.rb

Uniform crossover for matrices

Methods

cross  

Public Instance methods

[Source]

    # File lib/charlie/list/matrix.rb, line 48
48:   def cross(parent1,parent2)
49:     tc1 = []; tc2=[]
50:     g1 = parent1.genes; g2 = parent2.genes
51:     g1.each_with_index{|rg1,ri|
52:       tc1 << (r1=[]); tc2 << (r2=[])
53:       rg2 = g2[ri];
54:       rg1.each_with_index{|e,i|
55:         if rand(2).zero?
56:           r1 << e; r2 << rg2[i]
57:         else
58:           r2 << e; r1 << rg2[i]
59:         end
60:       }
61:     }
62:     [tc1,tc2].map{|x| from_genes(x) }
63:   end

[Validate]