遗传算法中的转盘算法
2016-03-10 20:52
218 查看
转盘算法是遗传算法中的,相当于一个selector,对不同概率的结果选择的程度不同,倾向于选择大概率时间。
工作过程:
设想群体全部个体的适当性分数由一张饼图来代表 (见图)。
群体中每一染色体指定饼图中一个小块。块的大小与染色体的适应性分数成比例,适应性分数愈高,它在饼图中对应的小块所占面积也愈大。为了选取一个染色体,要做的就是旋转这个轮子,直到轮盘停止时,看指针停止在哪一块上,就选中与它对应的那个染色体。
举例:
若产生随机数为0.81,则6号个体被选中。
即想象一下,那种电视上经常播放的转盘游戏。
因为在0-1之间选择一个数是随机的,或者说等概率的,所以无须担心不公平的现象。而且累计概率从哪个时间开始计算是无所谓的,记住:在0-1之间选择任何一个数字都是等概率的,唯一不同的是转盘上面积较大的版块被选择的概率更高。
工作过程:
设想群体全部个体的适当性分数由一张饼图来代表 (见图)。
群体中每一染色体指定饼图中一个小块。块的大小与染色体的适应性分数成比例,适应性分数愈高,它在饼图中对应的小块所占面积也愈大。为了选取一个染色体,要做的就是旋转这个轮子,直到轮盘停止时,看指针停止在哪一块上,就选中与它对应的那个染色体。
举例:
若产生随机数为0.81,则6号个体被选中。
即想象一下,那种电视上经常播放的转盘游戏。
因为在0-1之间选择一个数是随机的,或者说等概率的,所以无须担心不公平的现象。而且累计概率从哪个时间开始计算是无所谓的,记住:在0-1之间选择任何一个数字都是等概率的,唯一不同的是转盘上面积较大的版块被选择的概率更高。
相关文章推荐
- 如何下载各版本Chrome的离线安装包
- Android PM常用命令使用小记
- C++第1-2次上机实验
- MyReport实践:为ERP系统添加打印功能
- JAVA作业
- 【Struts2进阶】用Struts2搭建web项目
- YTU:C语言习题 n个数逆序
- 深度学习(一)
- Spring-Data-MongoDB保存对象的时候,如何不保存_class字段
- shell中的并且、和、或者
- ThinkPHP中通过I方法获取json数据的实现方法
- #128. 【NOI2015】软件包管理器
- CUDA: 高效访问24位RGB图像
- Xcode插件
- 3月10日 循环 嵌套 穷举 迭代
- 如何写一个FMDB帮助类?看看runtime吧
- 最简单的Windows程序设计
- C++string与int之间的相互转换
- POJ3687 Labeling Balls 特殊拓扑排序
- wamp的phpMyAdmin打不开