轮盘赌算法经常用于遗传算法中来进选择。基本思想:各个个体被选中的概率与其适应度成正比(适者生存)。主要步骤如下:

1.计算种群中每个个体被选中的概率(在遗传算法中根据适应度来决定选择概率)。

2.计算个体的累积概率

3.产生[0,1]之间的随机数ran,与累计概率进行比较,若rand<cum_p[i],则本次选择个体i.

matlab代码如下:


function i=RouletteWheelSelection(p)r=rand;c=cumsum(p);i=find(r<=c,1,'first');%此次选择第c中第一个>=r的下标对应个体end

p表示一个种群,其值是各个个体被选择的概率,c是累加概率。

【关于累加概率】:举个栗子 比如 [1 2 3 4 5 6 7 2 3 2],1-7被选择的概率是[0.1  0.3  0.2  0.1  0.1  0.1  0.1],累加概率是[0.1  0.4  0.6  0.7  0.8  0.9  1]目的为了不同的选择概率表示在一条线上(emmm大概类似这样)  |---|----|-----|--------|-------|

轮盘赌算法的简单说明相关推荐

  1. 查找算法——俄罗斯轮盘赌算法(看谁运气不好)

    俄罗斯轮盘赌的基本思想 俄罗斯轮盘赌(Russian roulette)是一种残忍的赌博游戏.俄罗斯轮盘赌的赌具是左轮手枪]和人的性命.俄罗斯轮盘赌的规则很简单:在左轮手枪的六个弹槽中放入一颗或多颗子 ...

  2. 清扫机器人罗比与遗传算法,轮盘赌算法(算法)

    最近有一本美国人梅拉妮·米歇尔写的书,书名叫<复杂>的,有点火,说它火,主要是得到一些业内大佬的推崇,比如猎豹软件创始人,傅盛,引出一篇微博文[机器思维:所有复杂事物都有底层规律],主要是 ...

  3. 常见网络模型——BA无标度网络(使用轮盘赌算法)(python)

    之前记录了一下,常见的四种网络模型--ER.BA.WS.规则图,以及如何使用python实现,具体请移步: https://blog.csdn.net/un357951/article/details ...

  4. 图片滤镜算法原理简单讲解

    一.锐化 锐化的算法很简单,就是比较相邻的几个像素,把当前像素加上和周围的像素的差就可以了.这里我给出一个示例: A B C D E F G H I J K L M N O P 假设有一个图片,4*4 ...

  5. 排序算法-05简单选择排序(python实现)

    简单选择排序 概述 顾名思义,这是一种选择排序. 其步骤大致是,每一趟排序从待排记录中找到一个最小的关键字,放到已排序记录末尾,知道排序结束. 算法详解 首先,从待排记录中找到最小元素 如果最小元素不 ...

  6. 图像基本处理算法的简单实现(二)

    图像基本处理算法的简单实现(一) 图像基本处理算法的简单实现(二) 4)膨胀腐蚀 属于什么心态学==,膨胀.腐蚀.击中/击不中变换.细化-(又晕了T^T).简单点好像就是集合运算,图像与一结构元素的交 ...

  7. 2-路插入排序c语言算法,浅谈2路插入排序算法及其简单实现

    2路插入排序算法是在直接插入排序算法的基础上增加了一个辅助数组,其目的是减少排序过程中的移动次数,需要增加n个记录的辅助空间. 难点可能在于对取余的考虑吧,可以把辅助数组看成一个环状空间,这样就能更好 ...

  8. 排序算法:简单选择排序算法实现及分析

    简单选择排序算法介绍 简单选择排序(Simple Selection Sort)就是通过n-1次关键字排序之间的比较,从n-i+1个记录中选择关键字最小的记录,并和第i(1<=i<=n)记 ...

  9. 利用k-means算法解决简单的无监督图像识别任务

    k-means Clustering(k平均聚类算法) 简介: 无监督学习对图像进行分类时,可以采用k-means算法.该算法实现简单,运行速度快.该算法要求事先知道数据所具有的类别数.k-means ...

最新文章

  1. 20行Python代码说清“量子霸权”
  2. 提取scss变量,交给js
  3. XenApp增加输出画面的帧率,提高类视频应用体验
  4. 3.8 matlab函数参数与变量的作用域
  5. Java线程同步:synchronized锁住的是代码还是对象
  6. jenkins自动化打包部署,jenkins执行sh脚本不退出问题
  7. 查看mysql语句运行时间的2种方法
  8. 流计算程序不报错,但是没有输出的一些原因(持续更新中)
  9. kibana 后台启动
  10. java 自动转 golang_基于dubbo-go的golang与java通信解决方案实践——伍:golang代码的生成...
  11. oracle 客户端连接数_转载:查看Oracle连接数
  12. python抠图_python 网站自动抠图
  13. 《Nmap渗透测试指南》—第6章6.6节源端口欺骗
  14. 【夯实PHP基础】PHP的反射机制
  15. python基础教程:Python实现动态给类和对象添加属性和方法操作示例
  16. 桌面计算机名水印,去掉电脑桌面的Windows10教育版水印的方法
  17. utc时间怎么转换北京时间?
  18. AE插件:能量激光描边光效特效Saber
  19. 怎样恢复华为计算机,华为电脑一键还原怎么操作详细教程
  20. NSFC官网案例说明:四类科学问题属性

热门文章

  1. 职责链模式(Chain of Responsibility)(对象行为型)
  2. zabbix菜单出现问号乱码问题
  3. Oracle10g安装中遇到的错误及解决办法
  4. 13个 ASP.NET MVC 的扩展
  5. 基于流式的md5计算-多线程下载工具Lwget介绍
  6. windows 2008 R2无法创建性能收集器
  7. Python基础01-Python环境搭建与HelloWorld
  8. 是什么限制了区块链技术的应用?
  9. kafka streams_如何使用Kafka Streams实施更改数据捕获
  10. 【Web前端培训基础知识】ES5及ES6this详解