Class: CrossOverNewGenerationStrategy
- Inherits:
-
NewGenerationStrategy
- Object
- NewGenerationStrategy
- CrossOverNewGenerationStrategy
- Defined in:
- lib/gimuby/genetic/solution/new_generation_strategy/cross_over_new_generation_strategy.rb
Instance Method Summary collapse
-
#initialize(cross_overs_number = 1) ⇒ CrossOverNewGenerationStrategy
constructor
A new instance of CrossOverNewGenerationStrategy.
- #reproduce(solution1, solution2) ⇒ Object
Constructor Details
#initialize(cross_overs_number = 1) ⇒ CrossOverNewGenerationStrategy
Returns a new instance of CrossOverNewGenerationStrategy.
5 6 7 |
# File 'lib/gimuby/genetic/solution/new_generation_strategy/cross_over_new_generation_strategy.rb', line 5 def initialize(cross_overs_number = 1) @cross_overs_number = cross_overs_number end |
Instance Method Details
#reproduce(solution1, solution2) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/gimuby/genetic/solution/new_generation_strategy/cross_over_new_generation_strategy.rb', line 9 def reproduce(solution1, solution2) permutation1 = solution1.get_solution_representation permutation2 = solution2.get_solution_representation cross_overs_number = @cross_overs_number if cross_overs_number <= 0 cross_overs_number = permutation1.length - cross_overs_number end cross_overs_number.times do |_| r = reproduce_step(permutation1, permutation2) permutation1 = r.shift permutation2 = r.shift end [permutation1, permutation2] end |