Class: EvoSynth::Mutations::UniformRealMutation

Inherits:
Object
  • Object
show all
Defined in:
lib/evosynth/operators/mutations/uniform_real_mutation.rb

Overview

GLEICHVERTEILTE-REELWERTIGE-MUTATION (Weicker page 131) TODO: needs rdoc

Constant Summary collapse

DEFAULT_PROBABILITY =
0.1
DEFAULT_STEP_SIZE =
0.1

Instance Method Summary collapse

Constructor Details

#initialize(probability = DEFAULT_PROBABILITY, step_size = DEFAULT_STEP_SIZE) ⇒ UniformRealMutation

Returns a new instance of UniformRealMutation.



36
37
38
39
# File 'lib/evosynth/operators/mutations/uniform_real_mutation.rb', line 36

def initialize(probability = DEFAULT_PROBABILITY, step_size = DEFAULT_STEP_SIZE)
	@probability = probability
	@step_size = step_size
end

Instance Method Details

#mutate(individual) ⇒ Object



41
42
43
44
45
46
47
48
49
50
# File 'lib/evosynth/operators/mutations/uniform_real_mutation.rb', line 41

def mutate(individual)
	mutated = individual.deep_clone
	genome = mutated.genome

	genome.size.times do |index|
		genome[index] += @step_size - 2 * EvoSynth.rand * @step_size if EvoSynth.rand <= @probability
	end

	mutated
end

#to_sObject



52
53
54
# File 'lib/evosynth/operators/mutations/uniform_real_mutation.rb', line 52

def to_s
	"uniform real mutation <probability: #{@probability}>"
end