前言:
此刻看官们对“遗传算法初始种群生成命令”大概比较关怀,我们都需要学习一些“遗传算法初始种群生成命令”的相关资讯。那么小编同时在网摘上搜集了一些有关“遗传算法初始种群生成命令””的相关资讯,希望咱们能喜欢,朋友们快快来了解一下吧!import randomdef selection(population, fitness): """ 二进制遗传算法的选择操作 :param population: 种群列表,其中每个个体是一个二进制串 :param fitness: 个体适应度列表,与种群列表一一对应 :return: 选择后的个体列表 """ # 计算每个个体的选择概率 total_fitness = sum(fitness) probabilities = [f/total_fitness for f in fitness] # 按照选择概率随机选择父代个体 parents = [] for i in range(len(population)): while True: idx = random.choices(range(len(population)), probabilities)[0] if population[idx] not in parents: parents.append(population[idx]) break return parents
population:种群列表,其中每个个体是一个二进制串。
fitness:个体适应度列表,与种群列表一一对应。
total_fitness:所有个体适应度之和。
probabilities:每个个体的选择概率,计算方式为该个体适应度除以所有个体适应度之和。
parents:用于存储被选中的父代个体的列表。
random.choices(range(len(population)), probabilities):按照选择概率随机选择一个父代个体,其中range(len(population))表示可选的父代个体的索引列表,probabilities表示每个父代个体被选择的概率。
if population[idx] not in parents:判断该父代个体是否已经被选择过,如果已经被选择过,则需要重新随机选择一个父代个体。
parents.append(population[idx]):将被选中的父代个体添加到parents列表中。
return parents:返回被选择的父代个体列表。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #遗传算法初始种群生成命令