首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DEAP:创建具有特定值的个体

DEAP:创建具有特定值的个体
EN

Stack Overflow用户
提问于 2019-11-21 20:34:37
回答 1查看 345关注 0票数 1

我有一个DEAP工具箱设置

代码语言:javascript
复制
import random
from deap import base, tools, creator, algorithms

toolbox = base.Toolbox()

creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", list, fitness=creator.FitnessMax)
toolbox.register("individual", tools.initRepeat, creator.Individual, random.random, n=2)

toolbox.register("population", tools.initRepeat, list, toolbox.individual)

我想强制人群中某些人的价值。为此,我想创建具有给定基因组的个体,并将它们添加到种群中

代码语言:javascript
复制
pop = toolbox.population(n=10)
new_individual = ?
pop.append(new_individual)

我如何定义新的个体?做new_individual = toolbox.individual([.1, .2])是行不通的。new_individual = toolbox.individual(); new_individual.values = [.1, .2]也是如此。如果我使用new_individual = [.1, .2],那么它就不再具有正确的类型(list而不是deap.creator.Individual

EN

回答 1

Stack Overflow用户

发布于 2021-02-24 07:53:22

一种方法如下: new_individual = creator.Individual(individual_values)

样板示例(用于上下文):

代码语言:javascript
复制
from deap import base, creator, tools
import numpy as np


creator.create("FitnessMax", base.Fitness, weights=(1.0,))

creator.create("Individual", list, fitness=creator.FitnessMax)

toolbox = base.Toolbox()

toolbox.register('evaluate', lambda x: fitness_fn(x, **fitness_fn_kwargs))

toolbox.register("attr_int", np.random.randint, low = 0, high = nvals)

toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.attr_int, n = npars)

toolbox.register("population", tools.initRepeat, list, toolbox.individual)

pop = toolbox.population(n=pop_size)

替换一个个体的值:

代码语言:javascript
复制
pop[0] = creator.Individual(10 * [0])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58975201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档