コード例 #1
0
def selection(population, iteration, breakPoint=50, k=3):
    shape = population.individuals.shape[0]
    new_population = Population(None)
    new_population.individuals = np.empty(shape=shape, dtype=object)
    for i in range(shape):
        new_population.individuals[i] = roulette(population) if (
            iteration < breakPoint) else tournament(population)
    return new_population
コード例 #2
0
def crossover(population, crossover_ratio=0.70):
    shape = population.individuals.shape[0]
    newPopulation = Population(None)
    newPopulation.individuals = np.empty(shape=shape, dtype=object)
    for i in range(shape):
        newPopulation.individuals[i] = one_point_crossover(
            population.individuals[i],
            population.individuals[(i + 1) % (shape - 1)])
    return newPopulation