| Module | TreeCrossover |
| In: |
lib/charlie/tree/tree.rb
|
TreeCrossover does a standard subtree swapping crossover for trees.
# File lib/charlie/tree/tree.rb, line 166
166: def cross(parent1,parent2)
167: child1 = parent1.dup
168: child2 = parent2.dup
169: c1_st = child1.random_subtree
170: c2_st = child1.random_subtree
171: c1_copy = dup_tree(c1_st)
172: c1_st.replace dup_tree(c2_st)
173: c2_st.replace c1_copy
174: [child1,child2]
175: end