赌博基本算法,基于轮盘赌的复制操作
说明
1.轮盘赌算法的本质是可以根据个人的适应度随机选择。
2.适应度越大,个体选择的概率越高,群体规模越大。这种算法能够真实地模拟自然状态。
实例
defselect(染色体列表,适应性列表):
选择(轮盘赌算法)
3360 : param chromosome _ list :二维列表的人口
3360 : param fitness _ list :健身列表
:选择后返回:群体列表
人口_适应度=np.array(适应度_列表)。sum () #群体适应度
fit _ ratio=[I/population _ fitness _ fitness _ 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 _ inchromome _ list] #生成一个随机值列表,该列表等于轮盘赌选择中个体的种群大小。
rand_list.sort()
fit_index=0
new_index=0
new _ population=chromosome _ list . copy()
单项选择开始
whilenew_indexlen(染色体列表):
ifland _ list[new _ index]fit _ ratio _ add[fit _ index]:
新群体[新索引]=染色体列表[适合索引]
新索引=新索引1
else:
拟合指数=拟合指数1
个人选择结束
Returnnew_population以上是python轮盘赌算法的使用。希望对你有帮助。更多python学习方向:Python基础课程
本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。