python培训之轮盘赌算法如何使用

发布时间:2023-02-21 09:38:39 人气:43 作者:多测师

  python轮盘赌算法如何使用

  说明

  1、轮盘赌算法的精髓是可以根据个人适应度随机选择。

  2、适应度越大的个人选择的概率越高,群体规模越大,该算法可以比较真实地模拟自然状态的状况。

  实例

  def select(chromosome_list, fitness_list):

  """

  选择(轮盘赌算法)

  :param chromosome_list: 二维列表的种群

  :param fitness_list: 适应度列表

  :return: 选择之后的种群列表

  """

python培训之轮盘赌算法如何使用

  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学习指路:请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线