龙空技术网

Python语个简单的二进制遗传算法的选择操作的代码

AI侃科技之备课汗姆 124

前言:

此刻看官们对“遗传算法初始种群生成命令”大概比较关怀,我们都需要学习一些“遗传算法初始种群生成命令”的相关资讯。那么小编同时在网摘上搜集了一些有关“遗传算法初始种群生成命令””的相关资讯,希望咱们能喜欢,朋友们快快来了解一下吧!

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:返回被选择的父代个体列表。

标签: #遗传算法初始种群生成命令