Ejemplo n.º 1
0
def crossover(parent1, parent2):
    child = Unit()
    child.x = random.random() * (parent1.x - parent2.x) + parent2.x
    child.y = random.random() * (parent1.y - parent2.y) + parent2.y
    child.intensity = random.random() * (parent1.intensity -
                                         parent2.intensity) + parent2.intensity
    o1 = min(parent1.offset, parent2.offset)
    o2 = max(parent1.offset, parent2.offset)
    child.offset = random.choice(range(o1, o2 + 1))
    r1 = min(parent1.repetitions, parent2.repetitions)
    r2 = max(parent1.repetitions, parent2.repetitions)
    child.repetitions = random.choice(range(r1, r2 + 1))
    return child