【说站】python轮盘赌算法如何使用
2025-01-01
15
python轮盘赌算法如何使用
说明
1、轮盘赌算法的精髓是可以根据个人适应度随机选择。
2、适应度越大的个人选择的概率越高,群体规模越大,该算法可以比较真实地模拟自然状态的状况。
实例
def select(chromosome_list, fitness_list): """ 选择(轮盘赌算法) :param chromosome_list: 二维列表的种群 :param fitness_list: 适应度列表 :return: 选择之后的种群列表 """ population_fitness = np.array(fitness_list).sum() # 种群适应度 fit_ratio = [i / population_fitness for i in fitness_list] # 每个个体占种群适应度的比例 fit_ratio_add = [0] # 个体累计概率 for i in fit_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 _ in chromosome_list] # 生成和种群规模相等的随机值列表,用于轮盘赌选择个体 rand_list.sort() fit_index = 0 new_index = 0 new_population = chromosome_list.copy() '''个体选择 start''' while new_index < len(chromosome_list): if rand_list[new_index] < fit_ratio_add[fit_index]: new_population[new_index] = chromosome_list[fit_index] new_index = new_index + 1 else: fit_index = fit_index + 1 '''个体选择 end''' return new_population
以上就是python轮盘赌算法的使用,希望对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
更新于:3天前赞一波!
相关文章
- 【说站】python美元转换成人民币转换代码
- 【说站】python输入身高体重算BMI
- 【说站】python命名关键字参数的使用注意
- 【说站】python基本颜色代码
- 【说站】python如何防止栈溢出
- 【说站】python归并排序和快速排序比较
- 【说站】python归并排序的基本思路
- 【说站】python Tkinter模块是什么
- 【说站】python快速排序的运作过程
- 【说站】python异常是什么?如何解决?
- 【说站】python中mock有哪些统计的方法
- 【说站】python中mock的断言使用
- 【说站】python读取txt文件
- 【说站】python实例创建销毁的函数整理
- 【说站】python如何在二维图像上进行卷积
- 【说站】python三种属性管理魔法函数
- 【说站】python集合魔法函数有哪些
- 【说站】python中高斯模糊是什么
- 【说站】python删除str中特定字符的方法
- 【说站】python两种不同的文件流读写
文章评论
评论问答