Class: GA::Algorithm

Inherits:
Object
  • Object
show all
Defined in:
lib/genetic_algorithm.rb

Direct Known Subclasses

ClassicGenetic

Instance Method Summary collapse

Constructor Details

#initialize(factory, options = {}) ⇒ Algorithm

Returns a new instance of Algorithm.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/genetic_algorithm.rb', line 7

def initialize(factory, options={})
    @factory = factory
    
    @selection = options[:selection] || GA::Operators::Selection::RouletteWheel.new
    @crossover = options[:crossover] || GA::Operators::Crossover::SinglePoint.new
    @mutation  = options[:mutation]  || GA::Operators::Mutation::Uniform.new
    @operators = options[:operators] || []
    
    @population_size    = options[:population_size] || 100
    @elite              = options[:elite]           || 0.1
    
    GA.contract("Factory must not be nil") { factory }
    GA.contract("Factory must be a SolutionFactory") { factory.is_a?(GA::Solutions::SolutionFactory) }
    GA.contract("Elite must be non-negative (#@elite given)") { @elite >= 0 }
    GA.contract("All the additional operators must be Operator") { @operators.all? { |op| op.is_a? GA::Operators::Operator } }
end