目录
一、进化计算
1、概述
2、进化算法搜索方式特点
二、遗传算法
1、遗传算法的基本原理
三、进化规划
1、标准进化规划
2、进化规划的基本技术
四、进化策略
1、进化策略及其改进
2、进化策略基本技术
一、进化计算
1、概述
进化计算包括遗传算法、进化规划、进化策略和遗传编程,他们是借鉴生物界中进化与遗传的机理,用于解决复杂的工程技术问题。
在进化算法中,仿效生物的遗传方式,采用复制(选择)、交换(交叉/重组)、突变(变异)这三种遗传操作,衍生下一代个体。
进化算法都是从一组随机生成的初始个体出发,经过选择、交叉、变异等操作,并根据适应度大小进行个体的优胜劣汰,提高新一代群体的质量,再经过多次反复迭代,逐步逼近最优解,从数学角度讲,进化算法实质上是一种搜索寻优算法。
进化算法和传统的搜索寻优方法不同,他不要求所研究问题连续、可导,但是可以很快地得出所要求的最优解。进化算法基本流程如下:
2、进化算法搜索方式特点
(1)有指导搜索。指导进化算法执行搜索的依据是适应度,也就是它的目标函数,在适应度的驱动下,进化算法逐步逼近目标值。
(2)自适应搜索。进化算法借助选择、交叉、变异等进化操作,体现“适者生存”的自然选择规律。
(3)并行式搜索。进化算法每一代运算都针对一组个体同时进行,而不是只对单个个体。
(4)全局最优解。进化算法由于采用多点并行搜索,每次迭代借助交叉和变异产生新个体,不断扩大搜索范围,容易搜索出全局最优解。
(5)黑箱结构。进化算法只研究输入和输出的关系,并不深究造成这种关系的原因,便于处理因果关系不明确的问题。
(6)通用性强。进化算法,使用某种编码方式表达问题,然后根据适应度区分个体优劣,其余进化操作统一,但这需要针对具体问题进化分析,有时难以构造与选择。
二、遗传算法
遗传算法(GA)由密歇根大学的John Henry Holland和他的Colleagues在二十世纪六十年代在对细胞自动机进行研究时率先提出。二十世纪八十年代中期之前,遗传算法仅仅限于理论方面。随着计算机计算能力发展和实际应用需求增多,逐渐进入了实际应用阶段。
1、遗传算法的基本原理
遗传算法中,优化问题的解被称为个体,它表示为一个参数列表,叫做染色体或基因串。
染色体:一般被表达为简单的数字串,不过也有其他的表示方法适用,这一过程为编码。
基本原理:
(1)算法随机生成一定数量的个体,操作者可以对这个随机产生过程进行干预,播下已经部分优化的种子。
(2)在每一代中,每一个个体都将被评价,并通过计算适应度函数得到一个适应度数值,种群中的个体按照适应度排序,适应度高的排在前面。
(3)产生下一代个体,并组成种群,这个过程要通过选择、交叉、变异完成,新个体的适应度越高,被选择的机会越高。被选择的个体进行交叉,一般的遗传算法都有一个交叉概率,每两个个体之间通过交叉产生两个新个体,代替原来的老个体,不交叉的个体保持不变。变异分为局部变异和全局变异。局部变异则是对种群中随机抽取一个个体进行操作,比如二进制编码下的取反操作。全局变异则是对种群中每一个个体都有一定的变异概率。
(4)不断重复(2)(3)步进行迭代,寻找最优解。
三、进化规划
1962年美国Lawrence J.Fogel首先提出进化规划(EP)当时未得到足够的重视,而他的鹅子(商务殷语)David B.Fogel改善了这种方法,从而使进化规划作为进化算法的一个分支得到广泛应用。
1、标准进化规划
标准进化规划(SEP)个体表达形式:
其中表示旧个体的第i个分量,表示新个体的第i个分量,表示旧个体的适应度,是针对第i个分量发生的随机数,服从标准正态分布,上式表明,新个体是在旧个体的基础上添加一个随机数,随机数的大小与个体的适应度有关,适应度大的个体随机数也大。
进化规划用传统的十进制实数表达问题,没有交叉算子,进化主要依赖变异,而变异则是参照个体适应度添加一个随机数,标准进化规划在进化过程中的自适应调整功能主要依靠适应度来实现。
2、进化规划的基本技术
(1)编码
和其他进化算法一样,进化规划也是一种反复迭代、不断进化的过程,进化规划采用十进制实数表达问题,每个个体的目标变量可以有多个分量,即,相应地,每个个体的控制因子σ和是一一对应的,n个要有n个σ,而X和σ组成的二元组是进化规划最常用的表达形式。
(2)产生初始群体
进化规划从可行解中随机选择μ个个体作为进化算法的出发点。
(3)计算适应度
进化规划采用十进制实数表达问题,计算适应度比较简单直观。
(4)变异
变异是进化规划产生新群体的唯一方法,它不采用交叉算子。
(5)选择
进化规划中没有交叉算子,所以变异之后就执行选择。进化规划中,新群体的个体数目λ等于旧群体个数数目μ,则λ=μ。选择便是在这新群体和旧群体的总数2μ中,选择μ个个体组成新群体。
进化规则的选择采用随机型的q竞争选择法,通过从2μ个个体中任选q个个体组成测试群体,并对个体的适应度和q个个体的适应度进行比较,记录个体i优于q个个体的次数,该次数作为i个体的得分,该测试将对2μ个个体进行,每次测试时重新选择q个个体组成新的测试群体。最终个体得分高的个体组成下一个新群体。
竞争选择法是一种随机选择,总体而言,对于优良个体入选的可能性较大,一般来说q取0.9μ。
(6)终止
进化规划在进化过程中,每代都执行变异、计算适应度、选择等操作,不断反复执行,使群体素质得到改进,直到得到最优解。进化规划的终止准则有最大进化次数、最优个体与期望值的偏差、适应度的变化趋势以及最优适应度与最差适应度之差等。
四、进化策略
1、进化策略及其改进
(1)(1+1)-ES
进化策略的个体用十进制实型数表示,即:
若新个体的适应度优于旧个体,则进行替换,否则舍弃性能欠佳的新个体,重新产生下一代新个体,在进化策略中,个体的这种进化方式也称为变异,进化操作只有变异一种,用独立的随机变量修正旧个体,提高个体素质。
(2)(μ+1)-ES
与(1+1)-ES相比都只产生了一个新个体,但使用了群体搜索策略,增添了重组算子,从夫代继承信息构成新个体,有了明显的改进。
(3)(μ+λ)-ES和(μ,λ)-ES
这两种进化策略中,都采用了重组、变异、选择三种算子,其中重组算子类似(μ+1)-ES,而变异算子的标准差可以自适应调整。
上式中(X,σ)为父代个体,(X`,σ`)为子代新个体,N(0,σ`)为独立的服从正态分布的随机变量。
如今进化策略适合于目标函数含有噪声干扰,优化程度明显受迭代次数影响的问题。
2、进化策略基本技术
(1)适应度计算
进化策略中对于约束条件处理,主要采用重复试凑法,每当新个体生成,将其带入约束条件中检验是否满足约束条件,若满足接受新个体,否则舍弃。
对于采用(μ,λ)-ES,旧群体不参加选择,初始个体可以略去适应度计算,直接执行重组、变异等操作,之后计算新群体适应度,对于(μ+λ)-ES,旧群体需要参加选择,需要计算初始群体的适应度。
(2)重组
进化策略中的重组相当于遗传算法中的交叉,都是以父代个体为基础进行信息交换。
重组策略有三种:离散重组(均匀交叉)、中值重组、混杂重组。
(3)变异
与进化规划不同的是,有时候可能会引入旋转因子。
(4)选择
进化策略中的选择是确定性操作,会严格根据适应度大小,优胜劣汰,全部保留优良个体。
(μ+λ)选择会保留旧个体的同时,保留进化参数σ,可能产生局部最优解,不利于自适应调整机制。
(μ,λ)选择不会保留旧个体,全部舍弃,保证算法从新的基础全方位进化,容易进化到全局最优解,促进自适应调整。
(5)终止
终止准则与遗传算法类似,Schwefle提出最优个体和最差个体比较来决定算法是否终止,一旦小于某一阈值,则算法终止。
参考视频:【人工智能教程】10.1 - 进化计算概述_哔哩哔哩_bilibili
参考书籍:《人工智能原理》丁世飞