遗传算法学习笔记(一):常用的选择策略

简述

  遗传算法(GA)是一种模拟生物进化自然选择过程的非确定性搜索方法,源于达尔文的进化论和孟德尔的遗传定律,由美国 Michigan 大学的 Holland教授在 20 世纪 70 年代首先提出。生物理论指出, 生物个体的各种生命表征是由许多基因共同决定的。同一种群的不同生物个体通常拥有不同的基因,因此对外在环境的适应能力也是不同的。 在自然选择的作用下,一部分环境适应能力较差的个体会死亡被淘汰,而环境适应能力较强的个体则更多地存活下来并繁衍后代, 因此比较适应环境的基因会有较大的概率流传到下一代。 一般情况下子代的平均适应力普遍强于父代。 在基因从父代传递到子代的过程中,一部分基因会因为变异而在子代中产生新的基因,这种变异是随机的,有可能增强子代个体的环境适应力,也有可能会降低子代个体的适应力。
  遗传算法正是仿照上述理论,将一个问题的解空间编码,每一个编码代表一个个体,建立一个包含潜在的解的群体作为种群,在环境作用下通过选择(selection)、交叉(crossover)和变异(mutation)一代代繁衍,由于子代的环境适应力一般优于父代,因此算法最终能够得到问题的较优解。其中,编码中的每一位代表一个基因,环境作用由适应度函数模拟,适应度函数是判断某个解的优劣程度的函数,通常是目标函数本身或其修改形式。选择又称为选择算子,是指参照适应值函数,按照预先选定的策略随机从父代中挑选一些个体生存下来,剩下的个体则被淘汰。交叉是指仿照自然界基因传递的过程交配,对存活下来的父代个体的某些基因进行优化组合,办法是将两个父代个体某些对应位置的基因互换,以产生新的个体。变异是指对编码的某些位置上的基因按一定概率进行的改变。

2.选择策略

2.1轮盘赌选择法

轮盘赌选择法是依据个体的适应度值计算每个个体在子代中出现的概率,并按照此概率随机选择个体构成子代种群。轮盘赌选择策略的出发点是适应度值越好的个体被选择的概率越大。因此,在求解最大化问题的时候,我们可以直接采用适应度值来进行选择。但是在求解最小化问题的时候,我们必须首先将问题的适应度函数进行转换,以将问题转化为最大化问题。下面给出最大化问题求解中遗传算法轮盘赌选择策略的一般步骤:

(1)  将种群中个体的适应度值叠加,得到总适应度值==1 ,其中 为种群中个体个数。

(2)  每个个体的适应度值除以总适应度值得到个体被选择的概率

(3)  计算个体的累积概率以构造一个轮盘。

(4)  轮盘选择:产生一个[0,1]区间内的随机数,若该随机数小于或等于个体的累积概率且大于个体1的累积概率,选择个体进入子代种群。

重复步骤(4)次,得到的个体构成新一代种群。

2.2 随机遍历抽样法

像轮盘赌一样计算选择概率,只是在随机遍历选择法中等距离的选择体,设npoint为需要选择的个体数目,等距离的选择个体,选择指针的距离是1/npoint,第一个指针的位置由[0,1/npoint]的均匀随机数决定。

2.3 锦标赛选择法

锦标赛方法选择策略每次从种群中取出一定数量个体,然后选择其中最好的一个进入子代种群。重复该操作,直到新的种群规模达到原来的种群规模。具体的操作步骤如下:

(1) 确定每次选择的个体数量(本文以占种群中个体个数的百分比表示)。

(2) 从种群中随机选择个个体(每个个体入选概率相同) 构成组,根据每个个体的适应度值,选择其中适应度值最好的个体进入子代种群。

(3) 重复步骤(2)次,得到的个体构成新一代种群。

需要注意的是,锦标赛选择策略每次是从个个体中选择最好的个体进入子代种群,因此可以通用于最大化问题和最小化问题,不像轮盘赌选择策略那样,在求解最小化问题的时候还需要将适应度值进行转换。

参考资料

  [1]遗传算法:理论、应用及软件实现/王小平, 曹立明著 西安交通大学出版社,2002

  [2]张琛,詹志辉. 遗传算法选择策略比较[J]. 计算机工程与设计,2009,23:5471-5474+5478

 

 

转载于:https://www.cnblogs.com/legend1130/p/5333087.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nature指明大脑引流“废液”的确切路径

来源:中国生物技术网多年来,科学家们一直认为大脑中缺少淋巴系统,从而引发了液体、大分子和免疫细胞是如何被清除出去的问题。2015年,有两项小鼠研究证实,脑膜(保护大脑并维持其形状的覆盖物)的…

Halcon算子学习:distance_object_model_3d

distance_object_model_3d ( : : ObjectModel3DFrom, ObjectModel3DTo, Pose, MaxDistance, GenParamName, GenParamValue : ) 计算一个3D对象模型到另一个3D对象模型的点的距离。 输入: object_model_3d→(整数) 源3D对象模型的句柄。ObjectModel3DTo 目标3D对象…

js的工作原理

JavaScript就是所谓的客户端脚本语言,是一种在互联网浏览器(浏览器也称为Web客户端,因为它连接到Web服务器上,以下载页面)内部运行的计算机编程语言。 也就是说,如果一个网页里有js代码,那么&am…

MATLAB判断数据是否为NaN

MATLAB判断数据是否为NaN可以直接使用函数isnan()

郭仁忠院士:新城市科学认知与智慧城市建设

来源: 慧天地张亚勤、刘慈欣、周鸿祎、王飞跃、约翰.翰兹联合推荐这是一部力图破解21世纪前沿科技大爆发背后的规律与秘密,深度解读数十亿群体智能与数百亿机器智能如何经过50年形成互联网大脑模型,详细阐述互联网大脑为代表的超级智能如何深…

unity 面试题

今天这套笔试题感觉做得一般。 随后是二对一的技术面试,但涉及的技术细节相对较少,很多其它的是对曾经工作、项目经历的询问。 然后说今天先到这里。让我等通知。我还特意问了一下,通知大概要多久,他们说这个得看hr,他…

MATLAB把多行多列矩阵数据和文字写入txt文件

效果: 代码: a[1,2,3;4,5,6;7,8,9] [m,~]size(a) fidfopen(a.txt,w); fprintf(fid,第一列\t第二列\t第三列\r\n); for i1:m fprintf(fid,%d\t%d\t%d\r\n,a(i,:)); end fclose(fid);

数字图像处理:视觉系统中的坐标系介绍

参考: 图像坐标系、摄像机坐标系与世界坐标系四个坐标系简介和转换世界坐标、相机坐标、图像坐标、像素坐标的原理、关系,并用matlab仿真 1、像素坐标系(Pixel coordinate system)(二维坐标系) 摄像机采集的数字图像在计算机内…

图灵机与控制论之分歧,一切为了人类心智的荣耀!

来源:新智元作者:李力、郑南宁、王飞跃编辑:小芹【导读】图灵和维纳的思想都对人工智能的研究之路产生了重要影响,本文讨论了AI发展过程中的主要困难,特别是解释了图灵的人工智能方法和维纳的人工智能方法之间的关键区…

PyQt4重写事件处理方法

PyQt中的事件处理主要以来重写事件处理函数来实现。 #!/usr/bin/python # -*- coding: utf-8 -*-import sys from PyQt4 import QtGui, QtCore class Escape(QtGui.QWidget):def __init__(self, parent None):QtGui.QWidget.__init__(self)self.setWindowTitle(escape)self.re…

im2bw函数的阈值level

im2bw函数是MATLAB用于图像二值化的函数&#xff0c;调用形式为&#xff1a; J im2bw(I,level) 其中阈值level是一个0-1的值&#xff0c;如果输入的图像像素值范围0-255&#xff0c;设置阈值level160&#xff0c;则该函数会将图像中像素值<160的点置为0&#xff0c;像素值…

Halcon学习笔记:xyz_attrib_to_object_model_3d示例

Halcon学习笔记&#xff1a;xyz_attrib_to_object_model_3d——从X、Y和Z图像中创建3D对象模型同时附加属性 xyz_attrib_to_object_model_3d.hdev This example program shows the usage of the procedurexyz_attrib_to_object_model_3d.It can be used to create 3D object …

理论计算机科学中最令人困惑的谜题之一被解开

来源&#xff1a;原理“自敏感度猜想提出以来&#xff0c;它便是所有组合学和理论计算机科学中最令人沮丧和尴尬的开放性问题之一。”德克萨斯大学奥斯汀分校的理论计算机学家Scott Aaronson在一篇博客中写道。Aaronson提到的猜想是一个与计算机电路的基本构件结构有关的猜想&a…

成都Uber优步司机奖励政策(4月2、3日)

滴快车单单2.5倍&#xff0c;注册地址&#xff1a;http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单&#xff1a;http://www.cnblogs.com/mfryf/p/4612609.html 优步奖励低/不挣钱/怎么办?看这里&#xff1a;http://www.cnblogs.com/mfry…

MATLAB保存当前窗口图像

saveas(gcf,image.jpg); gcf会获得当前figure窗口的句柄

Halcon学习笔记:select_points_object_model_3d(3D对象模型阀值分割)

Halcon学习笔记&#xff1a;select_points_object_model_3d 3D对象模型阀值分割 This example program shows how to use the operators connection_object_model_3d and select_object_model_3d in HALCON. First, a threshold is applied to the 3D object model. Then, t…

MATLAB的GUI设置为不能点击状态(将按钮变为灰色)

有的时候想让GUI的按钮变灰&#xff0c;设置为不能点击状态&#xff0c;只有点击了另一个按钮后才能恢复该按钮的功能&#xff0c;举个例子&#xff0c;如下图所示&#xff0c;此时步骤1和步骤2这两个按钮是点击不了的&#xff0c;只有先点击了“打开图像”这个按钮&#xff0c…

idea修改文件名后出现main method should be static错误

1.确保你有main方法 2.别忘了main方法里还有参数&#xff1a; String[] args转载于:https://www.cnblogs.com/yrqiang/p/5347982.html

脑结构、脑工作原理最详细图解

来源&#xff1a; 深度学习进阶学习社这个帖子很好地提醒了我&#xff0c;为什么我愿意跟如此美丽可爱的大脑一起工作。因为真正的大脑非常不可爱&#xff0c;长得也难看。但是&#xff0c;过去一个月&#xff0c;我一直生活在充斥着红色血管的 Google 图像的地狱里&#xff0c…

Halcon算子学习:create_pose

create_pose 创建3D位姿 ( : : TransX, TransY, TransZ, RotX, RotY, RotZ, OrderOfTransform, OrderOfRotation, ViewOfTransform : Pose) 输入&#xff1a; TransX 沿x轴平移&#xff08;以[m]为单位&#xff09;。 默认值&#xff1a;0.1 建议值&#xff1a;-1.0&#xff0…