Class: GA::Algorithm
- Inherits:
-
Object
- Object
- GA::Algorithm
- Defined in:
- lib/genetic_algorithm.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#initialize(factory, options = {}) ⇒ Algorithm
constructor
A new instance of Algorithm.
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, ={}) @factory = factory @selection = [:selection] || GA::Operators::Selection::RouletteWheel.new @crossover = [:crossover] || GA::Operators::Crossover::SinglePoint.new @mutation = [:mutation] || GA::Operators::Mutation::Uniform.new @operators = [:operators] || [] @population_size = [:population_size] || 100 @elite = [: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 |