进化计算导论(一)

最近在写自己的小论文,想用遗传算法的东西来改进自己的算法,所以要认真学习一下。
进化算法就是一种对给定问题求最优解的随机搜索方法。该进化搜索主要受到一下几个部分的影响:
编码:与染色体一样,对问题的编解码
适应度函数:用于求适应度的函数,表示个体的生存能力
初始化:种群的初始化
选择:选择算子
繁殖:繁殖算子

进化算法各部分实现的不同,会形成不同的进化计算方法:
遗传算法(Genetic Algorithm GA),以基因进化为模型
遗传编程(Genetic Programming GP),以遗传算法为模型,但个体为程序,表示为树
进化规划(Evolutionary Programming EP),对进化中自适应行为的模拟(如表型进化)
进化策略(Evolution Strategies, ES),用于对进化过程中的控制变量进行建模,如进化的进化
差分进化(Differential Evolution, DE),类似于遗传算法,不同之处在其所使用繁殖机制
文化进化(Cultural Evolution,EC),用于对种群文化的进化及对文化如何影响个体的基因和表现型的进化的建模
协同进化(Co-evolution,CoE), 模拟初始“愚蠢的”个体如何通过合作或者竞争来获取必要性状得意生存的进化过程。

染色体的表示
在进化计算中,每个个体都代表一个优化问题的备选解。性状是指最优化问题所搜索的变量,每个需要优化的变量被称为基因。在设计进化算法中,一个重要的步骤是找到备选解的合适的表示方案,如染色体。遗传算法的经典表示形式是一个定长二进制向量。在 nx 维搜索空间中,每个个体由 nx 个用比特串编码的变量组成。
如果变量为0/1类型,则染色体的长度为 nx 比特,如果变量为标量值,每个标量值可以表示为 nd 维比特向量,则 2nd 为所有标题值得总数。虽然二进制编码使用广泛,但是会造成汉明悬崖。两个相邻的数值用比特串表示时相互远离,从而形成了汉明悬崖。

初始种群
进化算法是一种基于种群的随机搜索算法。产生初始种群的标准方法是在可行域中产生随机值,并分配给每个染色体的每个基因。初始种群的大小会影响计算复杂性和空间探索能力。

适应度函数
适应度函数可以用目标函数来表示,它描述了最优化问题。目标函数所期待的输入数据表示形式不一定与染色体的表示形式一致,若不一致,则需要一组更完整的适应度函数。适应度函数的形式有,无约束优化问题,带约束优化问题,多目标优化问题,动态噪声问题。

你可能感兴趣的:(学习笔记)