赌博基本算法,基于轮盘赌的复制操作

  赌博基本算法,基于轮盘赌的复制操作

  说明

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: