首页 理论教育 遗传算法的原理与应用是什么

遗传算法的原理与应用是什么

时间:2023-06-01 理论教育 版权反馈
【摘要】:遗传算法首先将实际问题的参数空间进行编码,用适应值来评价种群优劣,并对种群个体进行遗传操作,建立迭代过程。标准遗传算法的流程图如图2.1所示。

遗传算法的原理与应用是什么

遗传算法(Genetic Algorithm,GA)是借鉴生物进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法,是智能算法中应用最广泛的一种算法。John H.Holland 早在1962年就提出了模拟群体进化思想,引入了种群、适应值、选择、交叉、变异等基本概念[152]。经过10 余年的发展,Holland 最终在其著作《自然系统和人工系统的适配》中系统地阐释了遗传算法的理论和技术[153]。从此,遗传算法的理论研究和应用研究都成为热门的研究领域。

1.一般问题的求解步骤

遗传算法的主要特点是直接对结构对象进行搜索,没有要求求导和函数连续性;具有内在隐藏的并行性,以及更好的全局寻找最优解的能力;通过随机搜索方法的概率,能自适应地调整搜索方向。由于遗传算法具有这些优点,它已被广泛应用于生产决策领域,如工程建设和管理中[154–158]。它是现代智能计算的关键技术。

遗传算法首先将实际问题的参数空间进行编码,用适应值来评价种群优劣,并对种群个体进行遗传操作,建立迭代过程。一般包括五个基本组成部分:确定染色体表达问题的解、生成初始种群、选择评价函数、设计遗传算子、计算遗传参数。

运用遗传算法求解优化问题时,首先需要确定问题的决策变量集合,并针对问题特征,设计编码方法;然后在此基础上,产生初始种群,并利用给定的适应值函数计算每个染色体的适应值。基于此适应值进行比较,选择每代进化中的最优染色体;然后对种群进行遗传操作(即选择操作、交叉操作和变异操作),从而产生新的染色体。最后对新的染色体进行评价,反复重复上述操作,直到找到最优解。

标准遗传算法有以下基本步骤:

步骤1:首先将问题的解空间个体编码为基因型个体。

步骤2:定义适应值来评价种群,适应值往往由模型的目标值来确定。

步骤3:确定遗传策略,即选择合适的选择、交叉、变异算子,其中要用到交叉概率和变异概率两个参数。

步骤4:随机生成初始种群。

步骤5:通过适应值评价初始种群的质量。

步骤6:根据遗传策略,即选择、交叉和变异算子生成新种群。

步骤7:检查结束条件,若满足就结束算法,并输出最优值,否则转到步骤6。

标准遗传算法的流程图如图2.1所示。

图2.1 标准遗传算法流程

在遗传算法的基本操作中,选择算子是为了从当前种群中挑出优良个体,将它们作为父代,生成子代,这一思想体现了达尔文的适者生存原则;交叉算子是为了生成新一代个体,在新个体中既继承了父代的一些特性,又体现了信息交换思想;变异算子也是为了生成新一代个体,并能够使算法跳出局部搜索,防止算法过早收敛。

遗传算法已被应用于许多车辆路径问题中[55,159,160],其有效性和适应性得到了广泛印证。本书将在第5章采用遗传算法求解带时间窗口的取送货车辆路径Stackelberg 均衡问题。

2.Stackelberg 问题的求解步骤

除了求解普通优化问题,遗传算法在Stackelberg 均衡规划问题中也有大量应用[161~163]。遗传算法在Stackelberg 均衡规划中的应用主要包括两部分:第一部分是对于上级决策者给定的x,找到下级决策者的最优解y。第二部分是将第一部分嵌入,来寻找上级决策者的有效解。

第一部分实际上是一个单目标决策问题,下面给出关于这部分遗传算法的步骤:

步骤1:输入上级决策者的一个可行解x。

步骤2:在下级决策者的可行域内随机生产pop-size个染色体 y (1),y (2),…,y(pop-size),并检验它们的可行性,若不可行,则重新产生。

步骤3:交叉和变异染色体,同时检测新产生后代的可行性,若不可行,则重新产生。(www.zuozong.com)

步骤4:通过适应值函数,计算每个染色体 y(j)的适应度。

步骤5:采用轮盘赌方法选择染色体。

步骤6:对步骤3 到步骤5 重复进行N 次。

步骤7:返回最好的染色体作为下级决策者的最优解。

将下级决策者的最优解记为 y (x)。对于上级决策者的一个决策x,都可由上面的遗传算法,得到跟随者的一个最优解 y (x)。在此基础上,可以设计主导者模型的混合智能算法。

如果模型中存在多个目标函数,那么还需要考虑多目标处理问题。通常有两种多目标问题处理方式,即固定权重法和随机权重法。与固定权重法相比,随机权重法能够让遗传算法在可变的方向上进行搜索,从而获得更多有效解[164]

对于主导者的目标E[F1 (x,y,ξ)],E[F2 (x,y (x),ξ)],…,E[Fm (x,y (x),ξ)],权重和目标为

随机权重由下式计算:

其中rj 是任意的非负随机数

在选择一对父代进行交叉前,新的随机权重由式(2.27)算出。每个个体的适应值由式(2.26)算出。个体j 被选中的概率ip 按下式计算:

其中 zmin是当前种群的最差值。

整个混合智能算法可以由以下步骤实现:

步骤1:随机初始化,生成 pop-size 个染色体 x (1),x (2),…,x(pop-size,并用模糊随机模拟检验它们的可行性。

步骤2:对于每一个可行的 x j),计算跟随者的最优解y (x j))。

步骤3:对染色体进行交叉和变异操作,同时利用模糊随机模拟检验后代的可行性。

步骤4:用基于随机权重的方法计算各个染色体的适应度。

步骤5:采用轮盘赌方法选择染色体。

步骤6:对步骤3 到步骤5 重复进行N 次。

步骤7:返回最好的染色体 x *

步骤8:计算y (x*)。

步骤9:返回(x*,y (x*))。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈

相关推荐