Class: EvoSynth::MaximizingIndividual

Inherits:
Individual
  • Object
show all
Defined in:
lib/evosynth/core/maximizing_individual.rb

Overview

Basic individual for maximizing problems

Instance Attribute Summary

Attributes inherited from Individual

#fitness, #genome

Instance Method Summary collapse

Methods inherited from Individual

#<=>, #changed?, #deep_clone, #maximizes?, #minimizes?

Constructor Details

#initialize(genome = nil) ⇒ MaximizingIndividual

:call-seq: MaximizingIndividual.new -> MaximizingIndividual MaximizingIndividual.new(genome) -> MaximizingIndividual (with given genome)

Returns a new MaximizingIndividual. In the first form, the genome is nil. In the second it creates a MaximizingIndividual with the given genome.

EvoSynth::MaximizingIndividual.new
EvoSynth::MaximizingIndividual.new( EvoSynth::ArrayGenome.new(10) { EvoSynth.rand_bool } )


41
42
43
44
45
# File 'lib/evosynth/core/maximizing_individual.rb', line 41

def initialize(genome = nil)
  super()
  @genome = genome
  @fitness = Float::MIN
end

Instance Method Details

#compare_fitness_values(one, two) ⇒ Object

:call-seq: compare_fitness_values(one, two) -> Number

Compares two fitness values for maximizing problems. It uses the <=> of the given fitness values.



53
54
55
# File 'lib/evosynth/core/maximizing_individual.rb', line 53

def compare_fitness_values(one, two)
  one <=> two
end

#to_sObject

:call-seq: to_s -> string

Returns description of this individual

i = EvoSynth::MaximizingIndividual.new
i.to_s                                     #=> "maximizing individual <fitness = 2.2250738585072e-308, genome = [nil]>"


65
66
67
# File 'lib/evosynth/core/maximizing_individual.rb', line 65

def to_s
  "maximizing individual <fitness = #{fitness}, genome = [#{genome}]>"
end