• 技术文章 >Python技术 >Python基础教程

    python轮盘赌算法如何使用

    小妮浅浅小妮浅浅2021-08-05 09:47:12原创5797

    说明

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

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

    实例

    def select(chromosome_list, fitness_list):
        """
        选择(轮盘赌算法)
        :param chromosome_list: 二维列表的种群
        :param fitness_list: 适应度列表
        :return: 选择之后的种群列表
        """
        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学习指路:python基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python轮盘赌算法
    品易云
    上一篇:python如何将实例用作属性 下一篇:python集合魔法函数有哪些

    相关文章推荐

    • python中pandas排序的两种形式• python中DataFrame的运算总结• python数据离散化是什么• python文件的三大访问方式• Python如何提取字符串的内容• Python findall函数如何匹配字符串• Python中SKlearn是什么• python按行读取文件的方法比较• python不同大小文件的复制方法• Python解释器有哪几种• python可变数据类型和不可变数据类型的区别• python从键盘输入若干个整数• python中slice的三个参数• python列表有几种切片形式• python如何获取列表的长度• python列表缓存的探究• python决策树算法是什么• python决策树算法的实现步骤• python如何判断文件夹内的重复图片• python一行输出10个数• Python输入三个数用空格隔开• python计算在月球的体重• python两种不同的文件流读写

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网