gpt4 book ai didi

python - 深度 : Creating custom indivudal generator function along with fitness function

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:19 25 4
gpt4 key购买 nike

我已经编写了自己的函数来生成个人

def generate_Individual(arr1,arr2):
np.random.shuffle(arr1)
np.random.shuffle(arr2)
Candidate = tuple(zip(arr1,arr2))
return Candidate

def generate_Fitness(Individual):
sum_some = 0
for i in range (0,len(Individual)):
sum_some = sum_some + cals(Individual[i][0],Individual[i][1])
return sum_some

这是我正在注册到 DEAP 工具箱

import random
from deap import base
from deap import creator
from deap import tools
creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", list, fitness=creator.FitnessMax)
toolbox = base.Toolbox()
toolbox.register("Individual", generate_Individual,arr1,arr2)
toolbox.register("population", tools.initRepeat, list, toolbox.Individual)

现在假设我用这段代码调用 4 个人

pop = toolbox.population(n=4)
pop[0]
pop[3]

事实证明,尽管我在生成器函数中内置了随机性,但群体中的所有 4 个个体都是相同的

为什么会发生这种情况?

最佳答案

如果我使用例如

arr1=[1, 2, 3, 4]
arr2=[5, 6, 7, 8]

然后根据您的代码,总体中的个体通常是不同的。

事实上,除非len(arr1)<=1len(arr2)<=1 ,你至少有一半的时间会遇到不同的人。因此,如果您的个人相同,那么要么为 arr1 制作更长的列表和arr2 ,或运行pop = toolbox.population(n=4)第二次。

关于python - 深度 : Creating custom indivudal generator function along with fitness function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58315729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com