Esempio n. 1
0
 def fn(parent_a, parent_b):
     child = SymbolVectorGenotype(parent_a.symbol_set_size, len(parent_a))
     if random.random() < p:
         split = random.randint(0, len(parent_a) - 1)
         for i, _ in enumerate(child):
             child[i] = parent_a[i] if i < split else parent_b[i]
     else:
         for i, _ in enumerate(parent_a):
             child[i] = parent_a[i]
         child.fitness = parent_a.fitness
     return child
Esempio n. 2
0
 def fn(parent_a, parent_b):
     child = SymbolVectorGenotype(parent_a.symbol_set_size, len(parent_a))
     if random.random() < p:
         for i, _ in enumerate(child):
             child[i] = parent_a[i] if random.random() < 0.5\
                 else parent_b[i]
         return child
     else:
         for i, _ in enumerate(parent_a):
             child[i] = parent_a[i]
         child.fitness = parent_a.fitness
     return child