人工智能,由机器、设备或软件等人造对象所表现出的智能。
生物智能,由有机的生命形态个体所表现出的智能。
群体智能,由众多智能个体的集合所表现出的智能。
系统智能,由多种有机或无机元素组成的复杂系统所表现出的智能。
1.数据驱动
基于从历史记录、数值模拟或物理实验中收集的数据进行优化的问题被称为数据驱动的优化问题,数据驱动的进化优化的跨学科研究领域涉及数据科学、机器学习和进化算法的技术
首先将收集数据,
并对其进行预处理,以提高数据质量,因为数据可能存在噪音或错误。
然后,从数据中建立代用模型,也就是机器学习模型,以接近真实的目标函数和/或约束函数。
数据驱动的进化优化过程采用代理模型进行函数评估,并采用模型管理策略来有效地控制模型和数据
为了控制模型,模型类型、超参数或代用模型的集合结构可以在几代中改变
模型管理包括:
1.在线代理模型管理
(1)基于种群
(2)基于世代
(3)基于个体
2.贝叶斯模型管理
目前,常用的代理模型是指将一组决策变量和对应的真实输出作为构建数据,近似其映射关系用于替代真实模型。
代理模型可以通过机器学习模型进行替代。
在一定场景下,代理模型可以被认为是具有近似某个未知映射关系的函数,利用这个函数来代替计算代价昂贵的真实模型进行优化。
代理模型根据预设的初始(历史)数据样本集合或者演化算法的初始种群构建。
例如基于 NSGA-Ⅱ算法的 RBF 动态代理模型
问题:
NSGA-Ⅱ算法在求解多目标问题时,需要利用适应度评价函数来计算每个个体目标值,在应用于求解非线性函数的问题时,需要我们依据实际问题求解每个个体的适应度,该计算量对于一般的工程问题都是难以接受的,所以通常利用代理模型来解决问题。
解决方案:
基于 NSGA-Ⅱ算法的动态 RBF 代理模型思想是先利用一些初始样本构建 RBF神经网络模型,将其作为 NSGA-Ⅱ遗传算法的第一代父代的适应度函数,从第二次迭代开始,挑选每次迭代过程中的优秀个体,将其添加至 RBF 代理模型训练样本中不断地更新样本空间,并重新训练代理模型,利用更新后的代理模型继续进行循环,直到达到收敛条件,当新的样本逐渐添加到样本集中,样本集能够更好地体现真实前沿附近的样本特征,达到提升代理模型对前沿预测精度的目的,其实质是在样本空间内局部提升样本数,来提高 RBF 代理模型在局部的表现,以达到提升寻优效果,节省优化时间的目的。
动态 RBF 代理模型 NSGA-Ⅱ多目标算法步骤如下
1.根据实际问题建立分析模型,确定 RBF 神经网络代理模型的输入变量和输出变量。
2.依据输入变量和输出变量设计样本空间
3.采用试验方法得到输入变量样本,利用真实分析模型获得输入变量对应的输出变量。
4.依据样本集训练 RBF 神经网络代理模型
5.利用测试样本对所得代理模型进行精度验证
6.利用训练好的 RBF 代理模型进行 NSGA-Ⅱ多目标寻优,提取迭代一次的父代中的优秀个体
7.将提取的优秀个体添加至 RBF训练样本集中,构建新的样本空间,重新训练 RBF 代理模型
8.转步骤 6,利用新的 RBF 模型预估子代样本目标函数直至收敛
利用训练好的 RBF 代理模型与 NSGA-Ⅱ算法进行寻优时,将 RBF代理模型作为其适应度评价函数即可
2.遗传算法
遗传算法的求解步骤
下面通过一个求解二次函数最大值的例子来熟悉遗传算法的步骤。
利用遗传算法求解二次函数f(x)=x2的最大值,设x∈[0,31]。此问题的解显然为x=31,用遗传算法求解步骤如下:
(1)编码
用二进制码字符串表达所研究的问题称为编码,每个字符串称为个体。相当于遗传学中的染色体,在每一遗传代次中个体的组合称为群体。由于x的最大值为31,所以只需5位二进制数组成个体
(2)产生初始种群
采用随机方法,假设得出初始群体分别为01101、11000、01000、10011,其中x值分别对应为13、24、8、19
(3)计算适应度
(4)选择(Selection)又称复制(Reproduction)
从已有群体中选择出适应度高的优良个体进入下一代,使其繁殖;删掉适应度小的个体
本例中,2号个体最优,在下一代中占两个,3号个体最差删除,1号与4号个体各保留一个,新群体分别为01101,11000,11000,10011。对新群体适应度计算如表1所示
由表1可以看出,复制后淘汰了最差个体(3号),增加了优良个体(2号),使个体的平均适应度增加。复制过程体现优胜劣汰原则,使群体的素质不断得到改善
(5)交叉(Crossover)又称交换、杂交
虽然复制过程的平均适应度提高了,但不能产生新的个体,模仿生物中杂交产生新品种的方法,对字符串(染色体)的某些部分进行交叉换位。对个体利用随机配对方法决定父代,如1号和2号配对;3号和4号配对,以3号和4号交叉为例:经交叉后出现的新个体3号,其适应度高达729,高于交换前的最大值576,同样1号与2号交叉后新个体2号的适应度由576增加为625,如表1所示。此外,平均适应度也从原来的421提高到439,表明交叉后的群体正朝着优良方向发展
(6)突变(Mutation),又称变异、突然变异
在遗传算法中模仿生物基因突变的方法,将表示个体的字符串某位由1变为0,或由0变为1。例如,将个体10000的左侧第3位由0突变为1,则得到新个体为10100
在遗传算法中,突变由事先确定的概率决定。一般,突变概率为0.01左右
(7)重复步骤(3)~步骤(6),直到得到满意的最优解
传算法仿效生物进化和遗传的过程,从随机生成的初始可行解出发,利用复制(选择)、交叉(交换)、变异操作,遵循优胜劣汰的原则,不断循环执行,逐渐逼近全局最优解
3.差分算法
A 基本思想
(1)从某一随机产生的初始群体开始,
(2)利用从种群中随机选取的两个个体的差向量作为第三个个体的随机变化源,将差向量加权后按照一定的规则与第三个个体求和而产生变异个体,该操作称为变异。
(3)然后,变异个体与某个预先决定的目标个体进行参数混合,生成试验个体,这一过程称为交叉。
(4)如果试验个体的适应度值优于目标个体的适应度值,则在下一代中试验个体取代目标个体,否则目标个体仍保存下来,该操作称为选择。
(5)在每一代的进化过程中,每一个体矢量作为目标个体一次,算法通过不断地迭代计算,保留优良个体,淘汰劣质个体,引导搜索过程向全局最优解逼近
B 算法框架及流程
C 案例
求解非线性函数最小化问题为例
将非线性函数最小值问题表示为minf(X),XL≤X≤XU,XL和XU分别是变量X=(x1,x2, …,xn)取值的上界和下界,n为变量维数。
1.种群初始化
设置初始进化代数t=0,在优化问题的可行解空间内按下式随机产生满足约束条件的NP个个体X构成初始种群,NP的选取一般在s5n与10n之间。
其中,Xi(0)表示第0代种群中的第i个个体;rand()为[0,1]区间上的随机数。
2.变异操作
变异操作是DE算法中的关键步骤,也是其与其他进化算法的主要区别所在。DE算法最基本的变异成分是父代的差分矢量,每个差分矢量对应父代种群中两个不同个体的差向量,差分矢量定义见下式
其中,r1和r2表示父代种群中两个随机选择的不同个体的索引号。将差分矢量Dr1,2加权后与另一个随机选择的父代个体矢量求和就生成了一个子代变异个体矢量。对于当前第t代种群中每一目标个体矢量Xi(t),其对应的变异操作
其中,r1,r2,r3∈{1, 2, …,NP}为随机选取的互不相同的正整数,且r1,r2,r3与当前目标个体矢量索引号i不同,由此可见,DE算法的种群规模必须大于4,否则将无法进行变异操作。Vi(t+1)为目标个体矢量Xi(t)对应的变异个体矢量 ,Xr3(t)称为基向量,F∈[0, 2]为常数,是DE算法的主要控制参数之一,称为变异因子或缩放因子,控制差异矢量的缩放幅度,也即对基向量影响的大小。
由此可见,DE算法的变异个体是通过把种群中两个体之间的加权差向量加至基向量上产生的,相当于在基向量上附加了一个随机偏差扰动
3.交叉操作
为进一步增加种群多样性,DE 算法将目标矢量个体Xi(t)与其对应的变异个体Vi(t+1)进行交叉操作,产生试验个体,即目标个体的候选个体Ui(t+1)。为保证目标个体Xi(t)的进化,必须保证试验个体Ui(t+1)中至少有一维分量由变异个体Vi(t+1)贡献,而其他维分量则由交叉概率因子CR决定。由此试验个体中每一维分量uij(t+1)按下式生成。
由图所示,当第j维分量对应的随机数rand(j)小于等于交叉概率因子CR或者当前维数j等于预定系数k时,试验个体Ui(t+1)中相应维分量均来自于变异个体Vi(t+1),否则相应维分量仍于父代种群中目标个体矢量Xi(t)相同。
叉操作通过参数CR控制试验个体中来自变异个体的更新成分,若更新成分在试验个体中占比较大,则个体进化程度较高,反之则进化程度较低,由此控制种群个体进化的程度。由上述分析可知,交叉操作对DE算法收敛速度、求解精度等性能的影响应与变异操作遵循同一趋势。
4.选择操作
DE 算法采用“优胜劣汰”的选择操作来保证算法不断向全局最优解进化,选择操作中首先对试验个体Ui(t+1)和目标个体Xi(t)进行适应度评价,评估个体对应于待求最优化问题的优劣的相对值大小,再将二者的适应度值进行比较,按下式选择适应度值较优的个体进入下一代
直到算法迭代次数t达到预定的最大迭代次数G,或种群的最优解达到预定误差精度时算法结束。
D 参数设定
在使用DE算法时有3个控制参数需要提前设定:
① 种群规模NP,即群体中所含个体数量,一般由用户根据需要决定,NP越大,种群多样性越强,获得最优解的概率越大,但相应计算时间也更长;
② 变异因子F,取值0~2,一般初始值取0.5;
③ 交叉概率CR,取值0~1,一般初始值取0.4。
E 参数设置原则
DE算法的控制参数相对较少,只有种群规模NP、缩放因子F和交叉概率因子CR
(1)种群规模NP
- 如果种群规模太小,则会使种群很快失去多样性,陷入局部最优值。
- 如果种群规模太大,虽然算法的搜索能力增强,种群多样性增强,但会导致大量的个体适应度评估运算,减慢收敛速度。
大量实验研究表明,NP大小推荐选取问题空间决策变量维数的5~10倍,即NP在维数5n到10n之间,但不能少于4,否则无法完成变异操作
(2)缩放因子F
缩放因子F决定了变异操作中差分矢量对基向量的扰动程度,是控制种群多样性和收敛性的重要参数,一般在[0, 2]之间取值。 - 当F取值较大时,加到基点向量上的随机扰动幅度较大,种群多样性下降缓慢,增加了从局部极值点逃脱的可能性。若F取值过大,尤其是当扰动大于两个个体成员间的距离时,收敛会很困难,导致收敛速度明显减慢。
- 当F取值较小时,群体差异度减小,容易降低种群多样性,使算法陷入局部极值点而早熟收敛。
因此缩放因子F的选取应该针对具体优化问题的特点,经验表明F的取值需在0~1之间,一般初始值建议为0.5。寻优过程中如发生早熟收敛,建议通过加大F和NP的值来避免
(3)交叉概率因子CR
交叉概率因子CR控制交叉操作生成的试验个体中变异个体所占分量的比例,即试验个体中哪些分量由变异向量贡献,哪些分量由目标向量贡献.
CR一般取值在[0,1]之间: - 当CR较小时,试验个体中变异个体所占的比例较小,而父代目标个体所占比例较大,有利于保持种群的多样性和全局搜索;
- 当CR较大时,试验个体中变异个体所占的比例较大,有利于局部搜索和加速收敛速度。
DE 算法中以上3个参数对算法收敛速度的影响都是很显著的,尤其是变异因子F和种群规模NP。在变异因子F和交叉因子CR对算法性能的影响上,F的作用更为显著,因此建议首先调整F。
①算法寻优过程中如发生早熟收敛,建议通过加大变异因子F和种群规模NP的值来避免早熟。
②在需要快速收敛的场合,可以适当减小变异因子F和种群规模NP的值,并加大交叉因子CR的值。
Qin和Suganthan提出的SaDE算法利用算法进化过程中的自身学习积累的经验使控制参数实现自动调整