class Gemnetic::Specimen
Attributes
gens[RW]
Public Class Methods
new(params = {})
click to toggle source
# File lib/gemnetic/specimen.rb, line 5 def initialize(params = {}) @gens = params.fetch(:gens, randomize) end
Public Instance Methods
battle(specimen)
click to toggle source
# File lib/gemnetic/specimen.rb, line 25 def battle specimen return self unless self.evaluate < specimen.evaluate specimen end
crossover(specimen)
click to toggle source
# File lib/gemnetic/specimen.rb, line 9 def crossover specimen raise NotImplementedError, "You must override the crossover method to crossover two specimens in a new one" end
dup()
click to toggle source
# File lib/gemnetic/specimen.rb, line 30 def dup self.class.new(gens: @gens.dup) end
evaluate()
click to toggle source
# File lib/gemnetic/specimen.rb, line 17 def evaluate raise NotImplementedError, "You must override the evaluate method to calculate the fitness of the specimen" end
mutate()
click to toggle source
# File lib/gemnetic/specimen.rb, line 13 def mutate raise NotImplementedError, "You must override the mutate method to generate a new specimen based current specimen" end
randomize()
click to toggle source
# File lib/gemnetic/specimen.rb, line 21 def randomize raise NotImplementedError, "You must override the randomize method to randomize the gens of the specimen" end
to_s()
click to toggle source
# File lib/gemnetic/specimen.rb, line 34 def to_s { evaluation: evaluate, gens: @gens }.to_s end