遗传算法概念、步骤、应用解析(案例直白--黄含驰)
遗传算法
①
在数十亿年的发展中,本质上的生物已经形成了一种内部机制来优化自己的结构,这些结构能够不断地从环境中学习以适应不断变化的环境。
对于大多数生物,此过程是通过自然选择和有性繁殖来完成的。自然选择决定了该组中的哪些人可以生存和繁殖,有性繁殖确保了后代基因的混合和重组。
②
进化计算(EC)是一种基于达尔文的进化论和门德尔的遗传变异理论以及引起问题的基因和种群水平上天然生物的进化过程和机制的方法。自组织和自适应随机搜索技术解决方案
它将达尔文的进化论“事物的本质,最优胜品的生存”作为算法的进化规则,并将孟德尔的遗传变异理论结合在一起,将生殖,突变和竞争在生物进化的进化过程中使用。 )和选择被引入算法,这是人类智力的进化模拟方法进化计算主要包括四个主要分支:遗传算法,进化策略,进化计划和遗传计划。其中,遗传算法是一种模拟演化优化算法,其最初在进化计算中形成的普遍影响。
(Internet:NIPS2020新组,如果您有兴趣,请上公共汽车。原始大型组基本上已满,评论很慢,并且要求可能很高。
③
遗传算法,缩写为GA,是由密歇根大学荷兰教授于1962年开发的一种平行的随机搜索优化方法,该方法于1962年在美国,模拟了自然的遗传机制和生物学进化理论。
遗传算法是根据达尔文的自然选择理论开发的
④
自然选择理论包括以下三个方面:
遗传学:这是生物体的共同特征。父母将生物学信息交给他们的后代,后代总是与父母相同或相似的特征。只有当生物具有这种特征可以稳定存在时
变异:父母与后代之间以及后代不同个体之间的差异称为变异。随机发生变化,突变的选择和积累是生活多样性的根源
最优胜品的生存斗争和生存:保留了具有自适应突变的个体,并消除了没有适应性突变的个体。通过选择世代的生活环境,这些特征逐渐与祖先的特征不同,并发展为新的特征。物种
⑤遗传算法的基本原理
遗传算法介绍了由优化参数形成的编码串联群体“优胜最高和适量生存”的生物进化原理。
根据选定的适应性功能以及通过复制,跨界和遗传学变化对个体进行筛选,以便保留高健身的个体并形成一个新组
新组继承了上一代的信息,并且优于上一代
这样,该小组的个体健身一直在不断提高直到满足某些条件
遗传算法很简单,可以并行处理,并且可以获得全局最佳解决方案。
基因算法的基本操作
遗传算法有三个基本操作
复制操作员
从旧人群中选择一个强大的人以产生新的人群的过程
高健身的人更有可能在下一代产生一个或多个后代
模拟无性繁殖
跨界操作员
复制操作可以从旧人群中选择优秀的人,但不能创建新的染色体
在生物进化过程中进行的跨拟合的有性繁殖,并通过染色体的交换和组合产生了新的和出色的品种。
交叉过程:在匹配池中选择两个染色体,随机选择一个或多个交换点位置;将零件在父母的染色体交换点的右侧交换,您可以获得两个新的染色体数字字符串
突变操作员
模拟自然遗传环境中各种意外因素引起的基因突变
随机更改遗传基因的值(代表染色体的特定符号字符串),概率很小
在用二元编码染色体的系统中,它随机将染色体的特定基因从1变为0,或从0到1
突变的重要作用
没有突变,搜索无法在最初的基因组合以外的其他空间中进行
使进化过程尽早进入本地解决方案并进入终止过程
为了获得高质量的优化水溶解以在可能的最大空间中清除水,将没有鱼
⑦
遗传算法在解决方案空间中执行有效的启发式搜索,而不是盲目详尽或完全随机的搜索
遗传算法基本上对要找到的功能没有限制。他们既不需要该功能是连续的,也不需要可区分的。它们既可以是数学分析公式表示的明显函数,并且可以隐藏在映射矩阵甚至神经网络中。因此,功能范围更宽
遗传算法具有并行计算的特征,因此它们可以通过大规模平行计算提高计算速度,这适用于优化大规模复杂问题。
⑧遗传算法的应用领域
功能优化
使用其他优化方法难以解决非线性,多模型和多目标功能优化问题,但是遗传算法可以获得更好的结果。
组合优化
随着问题的增加,组合优化问题的搜索空间也急剧扩展,并且很难使用传统优化方法获得最佳解决方案。
自动控制
使用遗传算法优化控制器参数
学习基于遗传算法的模糊控制规则
基于遗传算法的参数识别
基于遗传算法的神经网络结构的优化和体重学习
机器人
移动机器人路径计划,联合机器人运动轨迹计划,机器人结构优化和行为协调
图像处理
在图像处理过程中优化扫描,特征提取,图像分割等的计算
图案识别,图像恢复,图像边缘特征提取
⑨遗传算法的关键概念
编码
研究生物遗传学从染色体开始
染色体是基因的字符串,可以理解为生物编码
研究遗传算法,研究如何编码是第一步
编码是将解决方案问题抽象成由特定符号以某个顺序排列的字符串的机制。
使用二进制字符串编码是一种常见方法
使用遗传算法查找以下一元函数的最大值,其中x∈[-1,1]kaiyun全站登录网页入口,解决方案结果准确地到6个小数位。如何编码它? F(x)= x*sin(8π*x)+3.0
解决方案】:由于间隔长度为2,因此解决方案结果精确到6个小数位,因此可以将自变量定义间隔分为2*10^6相等的部分。另外,由于2^20 <2*10^6 <2^21,因此此示例的二进制编码长度至少需要21位。该示例的编码过程基本上在[-1,1]间隔中转换了相应的实际值。对于二进制字符串(B20B19 ... B0)
初始人口
确定编码方案后,遗传算法通常使用随机方法来生成几个个体的集合。
这套被称为初始人口
初始人口中的个人数量称为人口规模
健身功能
遗传算法使用健身功能值来评估个体的质量(解决方案)
健身功能值越大,解决方案质量越好
适应性功能是遗传算法进化过程的驱动力,也是自然选择的唯一标准。它的设计应基于解决问题本身的要求。
遗传算法使用选择操作来实现对小组中个体的优柔镜运营的生存:高健身的个体可能会遗传到下一代组中;低健身的个体不太可能遗传到下一代组中。
遗传操作员
选择操作的任务是根据某种方法从父组中选择一些人,并将其继承到下一代组。
选择操作员使用轮盘选择方法,也称为比例选择操作员,其基本思想是:每个被选中的人的概率与其适应性功能值的大小成正比。假设人口规模为n,并且个体I的适应性是FI,那么选择个人I被选择继承给下一代人的可能性是:
实施轮盘选择方法的步骤如下:
①计算组中所有个体的适应性功能值(需要解码)
②使用比例选择运算符的公式来计算选择每个人以继承下一代人口的概率。
③使用模拟的投注操作(即,在0到1之间生成一个随机数以匹配每个人遗传给下一代人的概率)来确定每个人是否遗传给下一代人群。
跨操作
交叉操作是指基于交叉概率PC以某种方式形成两个新个体的互探期PC相互交换。跨操作是将遗传算法与其他进化算法区分开的重要特征。它在遗传算法中起关键作用,是产生新个体的主要方法。
跨操作员通常使用单点跨操作员
在越过之前(使用“ |”表示交叉点):
00000| 01110000000100000
11100| 000011111100011
越过后:
00000| 0000011111100011
11100| 01110000000010000
变异操作
所谓的变体操作是指基于变化概率PM的其他基因值在单个编码字符串中替换某些基因值,从而形成了一个新个体
遗传算法中的变异操作是产生新个体的辅助方法,可以确定遗传算法的局部搜索能力,同时保持人口多样性
交叉操作和突变操作之间的相互合作将共同完成全球搜索和搜索空间的本地搜索
突变操作员使用基本的位突变算子。基本位变化操作员是指单个代码字符串随机指定的某个或几个基因的突变操作。对于由基本遗传算法中二元编码符号字符串代表的个体,如果需要执行的原始基因值为0,则突变操作将其更改为1;相反,如果原始基因值为1,突变操作将变为0
突变前:000001110000000100000
突变后:00000111000100001000010000
⑩遗传算法申请示例
功能最有价值的问题
使用遗传算法找到最有价值(极值)功能问题是一种更好地了解遗传算法的更好方法
示例】找到函数f(x1,x2)= x1^2+x2^2的最大值,其中x1和x2的值范围为{1,2,3,4,5,6,7}。
编码
此示例由未签名的二进制整数表示。由于X1和X2是0到7之间的整数kaiyun全站app登录入口,因此它们由3位未签名的二进制整数表示。
将它们连接在一起的6位未签名的二进制编号形成了个人的基因型,表明可行的解决方案
例如:基因型X = 101110表型对应于:x = [5,6]。个人的表型X和基因型X可以通过编码和解码程序相互转换。
初始组的产生
遗传算法是人群的进化操作
您需要准备一些代表起始搜索点的初始组数据
在此示例中,组的大小被视为4,即组由4个个体组成,每个人都可以通过随机方法生成。
例如:011101、101011、011100、111001
健身计算
遗传算法使用个体适应性的大小来确定个体的利弊程度,从而确定其遗传机会的大小。
在此示例中,目标函数始终是非负的,并且该函数的最大值是优化目标。因此,目标函数值可以直接用作个人的健身。
选择操作
根据某些规则或模型,选择操作(或复制操作)将当前人群适应性较高的个体传递给下一代人口。健身较高的人通常需要更多的机会来继承下一代。在这一代人中
概率与适应性成正比用于确定复制到下一代人群中的个体数量。特定的操作过程是:
首先计算组中所有个体的健身水平的总和
σfi(i = 1.2,…,m);
其次,计算每个单独的fi/σfi的相对适应性的大小,这是每个人都遗传到下一代人群中的概率。
每个概率值形成一个区域,所有概率值的总和为1
最后,生成0和1之间的随机数kaiyun.ccm,并且根据随机数出现的概率区域确定每个单个的次数。
跨操作
跨操作是生成新个个体的遗传算法的主要操作过程,它们在两个具有一定概率的个体之间交换了一些染色体。此示例使用单点交叉方法,特定的操作过程是:组的第一个随机配对
其次,交点位置是随机设置的;最后,彼此交换成对染色体之间的某些基因
新生成的个体“ 111101”和“ 111011”的适应性高于原始两个人的适应性。
变异操作
变异操作是要以较小的概率在某个或某个基因座处更改基因值,并且它也是生成新个体的操作方法。在此示例中,我们使用基本位置突变方法执行突变操作。特定的操作过程是:首先确定每个人的遗传突变位置。下表显示了随机生成的突变点位置,数字代表突变点。设置在这个基因座;然后根据一定概率扭转突变点的原始基因值
新一代
在对P(t)进行了一轮选择,越过和突变操作后,您可以获得新一代P(t+1)
一代发展后,人口的最大值和平均值得到了显着改善。实际上,在这里找到了最好的个人“ 111111”
本文是录制的文章,并从作者下面复制为记录,谢谢您!