本文主要是介绍进化类算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
进化类算法
- 一种采用实数编码、在连续空间中进行随机搜索、基于群体迭代的新兴进化算法,具有结构简单、性能高效的特点。
遗传算法
- 模拟生物在自然环境中的遗传和进化过程而形成的自适应全局优化搜索算法。本质为一种并行、高效、全局搜索的方法,在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最优解。
- 使用“适者生存”的原则,在潜在的解决方案种群中逐次产生一个近似最优的方案。在每一代中,根据个体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选择,产生一个新的近似解。这个过程导致种群中个体的进化,得到新个体比原个体更能适应环境。
差分进化
- 基于群体智能理论的优化算法,是通过群体内个体间的合作与竞争产生的智能优化搜索。
- 保留了基于种群的全局搜索策略,采用实数编码、基于差分的简单变异操作和“一对一”的竞争生存策略,降低了进化计算的复杂性。
- 特有的记忆能力使得可以动态跟踪当前的搜索情况,以调整其搜索策略,其具有较强的全局收敛能力和稳健性,且不需要借助问题的特征信息,适用于求解一些利用常规的数学规划方法很难求解甚至无法求解的复杂优化问题。
- 差分进化算法是一种随机的启发式搜索算法,简单易用,有较强的鲁棒性和全局寻优能力。
- 数学角度:一种随机搜索算法
- 工程角度:一种自适应的迭代寻优过程
- 简单易用:只包含不多的几个控制参数,且在整个迭代过程中,参数值可保持不变。
- 差分进化算法是一种自组织最小化方法,用户只需很少的输入。
- 传统算法:利用预先确定的概率分布函数决定向量扰动。
- 差分进化:自组织程序利用种群中两个随机选择的不同向量来干扰一个现有向量,种群中的每一个向量都要进行干扰。
- 差分进化算法利用一个向量种群,其中种群向量的随机扰动可独立进行,因此是并行的。
- 如果新向量对应函数值的代价比它们的前辈代价小,它们将取代前辈向量。
- 种群繁殖方案
- 变异:通过把种群中两个成员间的加权差向量加到第三个成员上产生新的参数向量。
- 交叉:将变异向量的参数与另外预先确定的目标向量参数按一定规则混合产生试验向量。
- 选择:若试验向量的代价函数比目标向量的代价函数低,试验向量将在下一代中替代目标向量。
- 种群中所有成员必须当作目标向量进行一次这样的操作,以便在下一代中出现相同个数竞争者。
- 在进化过程中对每一代的最佳参数都进行评价,以记录最小化过程。
- 特点
- 结构简单,容易使用。
- 差分进化算法主要通过差分变异算子来进行遗传操作,由于该算子只涉及向量的加减运算,因此容易实现。
- 该算法采用概率转移规则,不需要确定性的规则。
- 控制参数少。
- 性能优越。
- 具有较好的可靠性、高效性和鲁棒性。
- 对于大空间、非线性和不可求导的连续问题,其求解效率比其他进化方法好。
- 自适应性。
- 差分变异算子可为固定常数,也可具有变异步长和搜索方向自适应的能力,根据不同目标函数进行自动调整,从而提高搜索质量。
- 具有内在的并行性,可协同搜索,具有利用个体局部信息和群体全局信息指导算法进一步搜索的能力。在同样精度要求下,差分进化算法具有更快的收敛速度。
- 算法通用,可直接对结构对象进行操作,不依赖于问题信息,不存在对目标函数的限度。差分进化算法操作十分简单,易于编程实现,尤其利于求解高维的函数优化问题。
- 结构简单,容易使用。
这篇关于进化类算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!