本文整理汇总了Python中deap.tools.selTournament方法的典型用法代码示例。如果您正苦于以下问题:Python tools.selTournament方法的具体用法?Python tools.selTournament怎么用?Python tools.selTournament使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类deap.tools
的用法示例。
在下文中一共展示了tools.selTournament方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: geneticAlgorithm
# 需要导入模块: from deap import tools [as 别名]
# 或者: from deap.tools import selTournament [as 别名]
def geneticAlgorithm(X, y, n_population, n_generation):
"""
Deap global variables
Initialize variables to use eaSimple
"""
# create individual
creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", list, fitness=creator.FitnessMax)
# create toolbox
toolbox = base.Toolbox()
toolbox.register("attr_bool", random.randint, 0, 1)
toolbox.register("individual", tools.initRepeat,
creator.Individual, toolbox.attr_bool, len(X.columns))
toolbox.register("population", tools.initRepeat, list,
toolbox.individual)
toolbox.register("evaluate", getFitness, X=X, y=y)
toolbox.register("mate", tools.cxOnePoint)
toolbox.register("mutate", tools.mutFlipBit, indpb=0.05)
toolbox.register("select", tools.selTournament, tournsize=3)
# initialize parameters
pop = toolbox.population(n=n_population)
hof = tools.HallOfFame(n_population * n_generation)
stats = tools.Statistics(lambda ind: ind.fitness.values)
stats.register("avg", np.mean)
stats.register("min", np.min)
stats.register("max", np.max)
# genetic algorithm
pop, log = algorithms.eaSimple(pop, toolbox, cxpb=0.5, mutpb=0.2,
ngen=n_generation, stats=stats, halloffame=hof,
verbose=True)
# return hall of fame
return hof
示例2: selTournamentWithSharing
# 需要导入模块: from deap import tools [as 别名]
# 或者: from deap.tools import selTournament [as 别名]
def selTournamentWithSharing(individuals, k, tournsize, fit_attr="fitness"):
# get orig fitnesses:
origFitnesses = [ind.fitness.values[0] for ind in individuals]
# apply sharing to each individual:
for i in range(len(individuals)):
sharingSum = 1
# iterate over all other individuals
for j in range(len(individuals)):
if i != j:
# calculate eucledean distance between individuals:
distance = math.sqrt(
((individuals[i][0] - individuals[j][0]) ** 2) + ((individuals[i][1] - individuals[j][1]) ** 2))
if distance < DISTANCE_THRESHOLD:
sharingSum += (1 - distance / (SHARING_EXTENT * DISTANCE_THRESHOLD))
# reduce fitness accordingly:
individuals[i].fitness.values = origFitnesses[i] / sharingSum,
# apply original tools.selTournament() using modified fitness:
selected = tools.selTournament(individuals, k, tournsize, fit_attr)
# retrieve original fitness:
for i, ind in enumerate(individuals):
ind.fitness.values = origFitnesses[i],
return selected
# genetic operators:
开发者ID:PacktPublishing,项目名称:Hands-On-Genetic-Algorithms-with-Python,代码行数:35,代码来源:03-optimize-himmelblau-sharing.py
示例3: create_toolbox
# 需要导入模块: from deap import tools [as 别名]
# 或者: from deap.tools import selTournament [as 别名]
def create_toolbox(num_bits):
creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", list, fitness=creator.FitnessMax)
# Initialize the toolbox
toolbox = base.Toolbox()
# Generate attributes
toolbox.register("attr_bool", random.randint, 0, 1)
# Initialize structures
toolbox.register("individual", tools.initRepeat, creator.Individual,
toolbox.attr_bool, num_bits)
# Define the population to be a list of individuals
toolbox.register("population", tools.initRepeat, list, toolbox.individual)
# Register the evaluation operator
toolbox.register("evaluate", eval_func)
# Register the crossover operator
toolbox.register("mate", tools.cxTwoPoint)
# Register a mutation operator
toolbox.register("mutate", tools.mutFlipBit, indpb=0.05)
# Operator for selecting individuals for breeding
toolbox.register("select", tools.selTournament, tournsize=3)
return toolbox
示例4: create_toolbox
# 需要导入模块: from deap import tools [as 别名]
# 或者: from deap.tools import selTournament [as 别名]
def create_toolbox():
pset = gp.PrimitiveSet("MAIN", 1)
pset.addPrimitive(operator.add, 2)
pset.addPrimitive(operator.sub, 2)
pset.addPrimitive(operator.mul, 2)
pset.addPrimitive(division_operator, 2)
pset.addPrimitive(operator.neg, 1)
pset.addPrimitive(math.cos, 1)
pset.addPrimitive(math.sin, 1)
pset.addEphemeralConstant("rand101", lambda: random.randint(-1,1))
pset.renameArguments(ARG0='x')
creator.create("FitnessMin", base.Fitness, weights=(-1.0,))
creator.create("Individual", gp.PrimitiveTree, fitness=creator.FitnessMin)
toolbox = base.Toolbox()
toolbox.register("expr", gp.genHalfAndHalf, pset=pset, min_=1, max_=2)
toolbox.register("individual", tools.initIterate, creator.Individual, toolbox.expr)
toolbox.register("population", tools.initRepeat, list, toolbox.individual)
toolbox.register("compile", gp.compile, pset=pset)
toolbox.register("evaluate", eval_func, points=[x/10. for x in range(-10,10)])
toolbox.register("select", tools.selTournament, tournsize=3)
toolbox.register("mate", gp.cxOnePoint)
toolbox.register("expr_mut", gp.genFull, min_=0, max_=2)
toolbox.register("mutate", gp.mutUniform, expr=toolbox.expr_mut, pset=pset)
toolbox.decorate("mate", gp.staticLimit(key=operator.attrgetter("height"), max_value=17))
toolbox.decorate("mutate", gp.staticLimit(key=operator.attrgetter("height"), max_value=17))
return toolbox
示例5: create_toolbox
# 需要导入模块: from deap import tools [as 别名]
# 或者: from deap.tools import selTournament [as 别名]
def create_toolbox():
global robot, pset
pset = gp.PrimitiveSet("MAIN", 0)
pset.addPrimitive(robot.if_target_ahead, 2)
pset.addPrimitive(Prog().prog2, 2)
pset.addPrimitive(Prog().prog3, 3)
pset.addTerminal(robot.move_forward)
pset.addTerminal(robot.turn_left)
pset.addTerminal(robot.turn_right)
creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", gp.PrimitiveTree, fitness=creator.FitnessMax)
toolbox = base.Toolbox()
# Attribute generator
toolbox.register("expr_init", gp.genFull, pset=pset, min_=1, max_=2)
# Structure initializers
toolbox.register("individual", tools.initIterate, creator.Individual, toolbox.expr_init)
toolbox.register("population", tools.initRepeat, list, toolbox.individual)
toolbox.register("evaluate", eval_func)
toolbox.register("select", tools.selTournament, tournsize=7)
toolbox.register("mate", gp.cxOnePoint)
toolbox.register("expr_mut", gp.genFull, min_=0, max_=2)
toolbox.register("mutate", gp.mutUniform, expr=toolbox.expr_mut, pset=pset)
return toolbox
示例6: runOptGenetic
# 需要导入模块: from deap import tools [as 别名]
# 或者: from deap.tools import selTournament [as 别名]
def runOptGenetic():
'''
@return:
@rtype:
'''
# COULDDO parametrisation
creator.create("FitnessMin", base.Fitness, weights=(-1.0,))
creator.create("Individual", list, fitness=creator.FitnessMin)
IND_SIZE = num_slots * num_evs
POP_SIZE = 30
toolbox = base.Toolbox()
toolbox.register("attr_float", rd.random) # COULDDO heuristic init
toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.attr_float, n=IND_SIZE)
toolbox.register("population", tools.initRepeat, list, toolbox.individual, n=POP_SIZE)
toolbox.register("evaluate", evaluate)
toolbox.decorate("evaluate", tools.DeltaPenalty(feasible, 0.0, distance))
toolbox.register("mate", tools.cxTwoPoint)
toolbox.register("mutate", tools.mutGaussian, mu=0, sigma=0.5, indpb=0.5)
toolbox.register("select", tools.selTournament, tournsize=3)
stats = tools.Statistics(key=lambda ind: ind.fitness.values)
stats.register("avg", np.mean)
stats.register("std", np.std)
stats.register("min", np.min)
stats.register("max", np.max)
hof = tools.HallOfFame(1)
population = toolbox.population()
# if no of-the-shelf algorithm used...
# fits = toolbox.map(toolbox.evaluate, population)
# for fit, ind in zip(fits, population):
# ind.fitness.values = fit
population, logbook = algorithms.eaSimple(population, toolbox, cxpb=0.5, mutpb=0.3, ngen=5, stats=stats, verbose=True, halloffame=hof)
sorted_pop = sorted(population, key=lambda ind: ind.fitness)
ev_schedules = np.asarray(best).reshape((num_evs, num_slots))
schedules = np.zeros((num_households, num_slots)).tolist()
for i in range(num_evs):
schedules[evs[i].position] = ev_schedules[i].tolist()
evs[i].schedule = schedules[evs[i].position]
return schedules
# *****************************************************************************************************
# * Metaheuristics Side Functions
# *****************************************************************************************************
# UNUSED