码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【算法基础】轮盘赌算法 轮盘选择算子


    轮盘赌算法

    • 轮盘赌样子
    • 轮盘赌作用
    • 定义
    • 例1
    • 例2
      • 1. 产生初始种群
      • 2. 计算适应度
      • 3. 选择
      • 结果(==用随机数的方式选择下一代父代==)

    轮盘赌样子

    在这里插入图片描述

    轮盘赌作用

    • 让适应度值大的个体,有更大概率,能被选择作为父代个体来生成新个体
    • 常用在遗传算法的选择过程中
    • 能避免陷入局部最优
    • 每次的判断数都是随机的,使用该算法选择到个体的概率符合,各个体的适应度,和轮盘上概率分布一样

    定义

    又称比例选择方法,其基本思想:各个个体被选中的概率与其适应度大小成正比.

    具体操作:
    (1)计算出群体中每个个体的适应度f(i=1,2,…,M),M为群体大小
    (2)计算出每个个体被遗传到下一代群体中的概率
    在这里插入图片描述
    (3)计算出每个个体的累积概率
    在这里插入图片描述

    q[i]称为染色体x[i] (i=1, 2, …, n)的积累概率)
    在这里插入图片描述
    (4)在[0,1]区间内产生一个均匀分布的伪随机数r
    (5)若r (6)重复(4)、(5)共M次

    例1

    右上边饼图不同颜色的区域,面积大小对应着不同的概率,面积越大,代表概率越大。假想把这张图打印到一张纸上,随机扔一把小米,落在3区域的小米相对来说数量最多。好了,现在我一粒一粒的扔,扔了10粒米(意味着只选了10个样本),假如5个落在3区域,3个落在1区域,1个落在4区域,1个落在5区域。

    在这里插入图片描述

    在应用中,比方说,7号米粒利用概率38%(因为落在了3号区域),8号米粒利用概率14%,9号米粒利用概率38%,10号米粒利用概率31%。
    这样有什么好处?避免了所有的米粒都选择概率最大的区域3(所谓的最优值问题),换句话,各个概率(各种情况)都相应的被使用到了,避免了陷入局部最优的问题。

    把概率整合到一条线上,然后随机产生数据a,a属于[0,1],比方说
    在这里插入图片描述
    这样,不同的数据对应不同的数据概率,并且整体上还保留了“区域概率越大,对应数据越多”这一分布!

    例2

    1. 产生初始种群

    s1= 13 (01101)
    s2= 24 (11000)
    s3= 8 (01000)
    s4= 19 (10011)

    2. 计算适应度

    假定适应度为f(s)=s^2 ,则
    f (s1) = f(13) = 13^2 = 169
    f (s2) = f(24) = 24^2 = 576
    f (s3) = f(8) = 8^2 = 64
    f (s4) = f(19) = 19^2 = 361

    3. 选择

    在这里插入图片描述
    在这里插入图片描述
    根据上面的式子,可得:
    在这里插入图片描述

    结果(用随机数的方式选择下一代父代)

    例如设从区间[0, 1]中产生4个随机数:
    r1 = 0.450126, r2 = 0.110347
    r3 = 0.572496, r4 = 0.98503
    在这里插入图片描述

    下一代父代,选择的就是第0个、第1个。第4个

    https://blog.csdn.net/u011125673/article/details/87895448
    https://www.cnblogs.com/adelaide/articles/5679475.html

  • 相关阅读:
    freeswitch号码变化方案
    Flutter ーー logger 组件记录日志
    搭建Mysql主从复制
    高校部署房产管理系统可实现那些目标?
    使用ZIP包安装MySQL及配置教程
    Cadence之Allegro:蛇形与差分等长
    【无标题】
    react useReducer
    java计算机毕业设计汉字幼教系统MyBatis+系统+LW文档+源码+调试部署
    SQL:With recursive 递归用法
  • 原文地址:https://blog.csdn.net/weixin_41838721/article/details/127856265
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号