首页 / 知识
python轮盘赌算法如何使用
2023-11-12 12:56:00
python轮盘赌算法如何使用
说明
1、轮盘赌算法的精髓是可以根据个人适应度随机选择。
2、适应度越大的个人选择的概率越高,群体规模越大,该算法可以比较真实地模拟自然状态的状况。
实例
defselect(chromosome_list,fitness_list):
"""
选择(轮盘赌算法)
:paramchromosome_list:二维列表的种群
:paramfitness_list:适应度列表
:return:选择之后的种群列表
"""
population_fitness=np.array(fitness_list).sum()#种群适应度
fit_ratio=[i/population_fitnessforiinfitness_list]#每个个体占种群适应度的比例
fit_ratio_add=[0]#个体累计概率
foriinfit_ratio:
fit_ratio_add.append(fit_ratio_add[len(fit_ratio_add)-1]+i)#计算每个个体的累计概率,并存放到fit_ratio_add中
fit_ratio_add=fit_ratio_add[1:]#去掉首位的0
rand_list=[random.uniform(0,1)for_inchromosome_list]#生成和种群规模相等的随机值列表,用于轮盘赌选择个体
rand_list.sort()
fit_index=0
new_index=0
new_population=chromosome_list.copy()
'''个体选择start'''
whilenew_index ifrand_list[new_index] new_population[new_index]=chromosome_list[fit_index] new_index=new_index+1 else: fit_index=fit_index+1 '''个体选择end''' returnnew_population 以上就是python轮盘赌算法的使用,希望对大家有所帮助。更多Python学习教程请关注我们
最新内容
相关内容
python如何打印列表长度
python如何打印列表长度,培训,技术,概念,项目,列表,长度,数组,方法,鲜为人知,初始化,首先,我们需要明确的一点就是Python是没有数组这一概念的python如何打印列表
python如何打印列表,代码,培训,列表,参数,语句,结果,定义,切片,函数,后面,Python列表的打印方法如下我们知道,Python打印列表一般是要用for…ipython如何实现对Python中列表的排
python如何实现对Python中列表的排序?,培训,工作,实例,方法,关键字,对象,函数,以上,列表,表达式,对List进行排序,Python提供了两个方法方法1.python如何创建数值列表
python如何创建数值列表,数字,培训,代码,数据,列表,数值,函数,结果,实例,上述,python如何创建数值列表1、在数据可视化中,处理的几乎都是由数python处理列表的部分元素
python处理列表的部分元素,培训,元素,切片,列表,部分,索引,负数,末尾,函数,称之为,python处理列表的部分元素1、处理列表的部分元素称之为切python列表中有哪些内置函数
python列表中有哪些内置函数,情况,培训,函数,列表,元素,素数,总和,字符串,数值,字典,python列表中有哪些内置函数在Python中,与列表相关的内置python用切片复制列表
python用切片复制列表,培训,列表,切片,索引,方法,赋值,实例,根据,以上,两个,python中用切片复制列表1、说明(1)需要根据现有列表制作新列表,可