进化算法(evolutionary algorithms,EA)
以达尔文的进化论思想为基础,通过模拟生物进化过程与机制来求解问题
基于自然选择和自然遗传等生物进化机制的一种随机搜索算法。
生物进化是通过繁殖、变异、竞争和选择实现的;
而进化算法则主要通过选择、重组和变异这三种操作实现优化问题的求解。
这些方法本质上从不同的角度对达尔文的进化原理进行了不同的运用和阐述,非常适用于处理传统搜索方法难以解决的非线性优化问题。
进化算法是一个**“算法簇”,包括:
遗传算法(genetic algorithms,GA)
遗传规划(genetic programming)
进化策略(evolution strategies)
进化规划(evolution programming)等。
尽管它有很多的变化,有不同的遗传基因表达方式,不同的交叉和变异算子,特殊算子的引用,以及不同的再生和选择方法,但它们产生的灵感都来自大自然的生物进化,进化算法的基本框架是遗传算法所描述的框架。
与普通搜索算法一样,进化算法也是一种迭代算法**。不同的是在最优解的搜索过程中,普通搜索算法是从某个单一的初始点开始搜索,而进化算法是从原问题的一组解出发改进到另一组而较好的解,再从这组改进的解出发进一步改进。而且,进化算法不是直接对问题的具体参数进行处理,而是要求当原问题的优化模型建立后,还必须对原问题的解进行编码。
进化算法在搜索过程中利用结构化和随机性的信息,使最满足目标的决策获得最大的生存可能,是一种概率型的算法。
在进化搜索中用目标函数值的信息,可以不必用目标函数的导数信息或与具体问题有关的特殊知识
因而进化算法具有广泛的应用性,高度的非线性,易修改性和可并行性。
因此,与传统的基于微积分的方法和穷举法等优化算法相比,进化算法是一种具有高健壮性和广泛适用性的全局优化方法
具有自组织、自适应、自学习的特性,能够不受问题性质的限制,能适应不同的环境和不同的问题
进化算法的生物学背景
进化算法类似于生物进化,需要经过长时间的成长演化,最后收敛到最优化问题的一个或者多个解。
“适者生存”揭示了大自然生物进化过程中的一个规律:最适合自然环境的个体产生后代的可能性大。
生物进化的基本过程如图所示。
生物遗传物质的主要载体是染色体(chromosome),DNA是其中最主要的遗传物质。
染色体中基因的位置称作基因座,而基因所取的值又叫作等位基因。
基因和基因座决定了染色体的特征,也决定了生物个体(individual)的性状。如头发的颜色是黑色、棕色或者金黄色等。
以一个初始生物群体(population)为起点,经过竞争后,一部分个体被淘汰而无法再进入这个循环圈,而另一部分则成为种群。
竞争过程遵循生物进化中“适者生存,优胜劣汰”的基本规律,所以都有一个竞争标准,或者生物适应环境的评价标准。
适应程度高的个体只是进入种群的可能性比较大,并不一定进入种群。而适应程度低的个体只是进入种群的可能性比较小,但并不一定被淘汰。这一重要特性保证了种群的多样性。
生物进化中种群经过婚配产生子代群体(简称子群)。在进化的过程中,可能会因为变异而产生新的个体。
每个基因(数组的某位数)表示了生物机体的某种特征,如头发的颜色、耳朵的形状等。**综合变异的作用使子群成长为新的群体而取代旧群体。**在新的一个循环过程中,新的群体代替旧的群体而成为循环的开始。
进化算法的求解步骤
给定一组初始解;
评价当前这组解的性能;
从当前这组解中选择一定数量的解作为迭代后的解的基础:
再对其进行操作,得到迭代后的解;
若这些解满足要求则停止,否则将这些迭代得到的解作为当前解重新操