Class: GeneGenie::Combiner::UniformCombiner
- Inherits:
-
Object
- Object
- GeneGenie::Combiner::UniformCombiner
- Defined in:
- lib/gene_genie/combiner/uniform_combiner.rb
Overview
Picks alleles from each Gene randomly
Instance Method Summary collapse
Instance Method Details
#call(first_gene, second_gene) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/gene_genie/combiner/uniform_combiner.rb', line 5 def call(first_gene, second_gene) first_gene_hashes = first_gene.to_hashes second_gene_hashes = second_gene.to_hashes new_information = first_gene_hashes.map.with_index do |part, index| new_hash = {} part.each do |k, v| new_hash[k] = (rand > 0.5) ? v : second_gene_hashes[index][k] end new_hash end Gene.new(information: new_information, fitness_evaluator: first_gene.fitness_evaluator, gene_combiner: self) end |