首页 理论教育 深入探讨遗传算法研究内容

深入探讨遗传算法研究内容

时间:2023-07-02 理论教育 版权反馈
【摘要】:遗传算法维持由一群个体组成的种群,每一个体均代表问题的一个潜在解,每一个体都被评价优劣并得到其适应值。在传统遗传算法中,杂交算子被用作主要的算子,遗传系统的性能在很大程度上依赖于杂交算子的性能。

深入探讨遗传算法研究内容

遗传算法维持由一群个体组成的种群,每一个体均代表问题的一个潜在解,每一个体都被评价优劣并得到其适应值。某些个体要经历称作遗传操作的随机变换,由此生产新个体。产生新个体主要有两种变换方法:变异(Mutation)的方法是将一个个体改变从而获得新的个体;杂交(Crossover)的方法是将两个个体的有关部分组合起来形成新的个体。新产生的个体[称作后代(Offspring)]继续被评价优劣。从父代种群和子代种群中选择比较优秀的个体形成新的种群。在若干代以后,算法收敛到一个最优个体,该个体很有可能代表着问题的最优或次优解。遗传算法一般由编码、适应度评价、遗传算子和运行参数设定等四部分构成[139]

1.编码问题

如何将问题的解编码成为染色体是遗传算法使用中的关键问题。该问题已经从多方面进行过研究,比如当个体需要解码成为解时从基因型空间到表现型空间的映射性质,以及个体被遗传算子操作时的变形特性等。

在Holland的工作中编码采用了二进制字符串(binary strings)的形式[17]。已经知道,由于Hamming悬崖的存在,二进制编码对于函数优化问题存在严重缺陷。Hamming悬崖指的是表现型空间中距离很小的个体对可能有很大的Hamming距离[140]。举例来说,个体对01111111111和10000000000属于表现型空间中的相邻点(最小Euclidean距离点),但它们却在基因型空间具有最大的Hamming距离。为了翻越Hamming悬崖,个体的所有位都需要同时进行改变。由杂交和变异实现翻越Hamming悬崖的可能性非常小。在这种情况下,二进制编码无法维持表现型空间中点的位置。

对于工业工程领域里的许多问题而言,几乎不可能用二进制编码来表示它们的解。在过去的10年里,已经针对特定的问题提出了各种编码方法,其目的都是为了能够更有效地实现遗传算法。根据采用何种符号作为基因的等位基因,编码方式主要包括:①二进制编码;②实数编码;③格雷码编码;④整数或字母排列编码;⑤一般数据结构编码。实数编码对于函数优化问题最为有效。关于实数编码在函数优化和约束优化领域比二进制编码和格雷码编码更有效的说法,已经得到了广泛的验证[141~144]。由于实数编码基因型空间中的拓扑结构与其表现型空间中的拓扑结构一致,因此很容易从传统优化方法中借鉴好的技巧来形成有效的遗传算子。整数和字母排列编码对于组合优化问题最为有效。由于组合优化问题最关键的是要寻找满足约束项目的最佳排列或组合,因此字母排列编码对于这类问题是最有效的方法。对于更为复杂的现实问题,用合适的数据结构来表示基因的等位基因,可以有效抓住问题的本质,在这种情况下基因可能是n维数组或更为复杂的数据结构。

2.适应度评价

遗传算法需要设计一个与目标函数有关的适应度函数来决定进化进程。对每一个个体都要进行适应度评价,并按与个体适应度成正比的概率来决定当前群体中每个个体遗传到下一代群体中的机会多少。个体适应度越大,则该个体遗传到下一代群体中的机会就越多;个体适应度越小,则该个体遗传到下一代群体中的机会就越小。

3.遗传算子

遗传算法使用下面三种遗传算子:①选择算子,为按比例选择算子;②杂交算子,为单点或多点杂交算子;③变异算子,为基本位变异算子或均匀变异算子。

当很难事先获得问题的求解步骤时,搜索就成为更为广泛的问题求解方法之一了。有两种代表性的搜索行为,即随机搜索和局部搜索。随机搜索(Random search)广泛探索整个解空间并且能够从局部最优中逃离。局部搜索(Local search)深度探索最优解并且能够向着局部最优解进行爬山。这两种搜索能力构成了整个搜索彼此互补的组成部分,理想的搜索应该同时具有这两种搜索性质,采用传统方法来设计这样的理想搜索方法几乎是不可能的。遗传算法是一种结合了有向和随机两种能力的通用搜索方法,该算法可以在对搜索空间进行深度搜索和广度搜索之间维持很好的平衡。在遗传算法中,由选择机制来深度搜索积累的信息,由遗传算子来广度搜索解空间中新的区域[139]

在传统遗传算法中,杂交算子被用作主要的算子,遗传系统的性能在很大程度上依赖于杂交算子的性能。变异算子在各个染色体中自动产生随机的变化,通常被用作次要的算子。从本质上讲,遗传算子执行的是随机搜索,不能保证产生改进的后代,已经发现对于许多大规模组合优化问题,遗传算法的收敛速度很慢。对于杂交和变异有许多经验式比较研究,关于变异有时比杂交更重要的论断已经得到确认[139]

关于解释遗传算法是如何搜索分布式信息来产生优秀个体存在两个假设:(www.xing528.com)

(1)积木块假设[27]。根据积木块假设,杂交算子重组两个父代的特性来产生子代,有时杂交会重组两个父代的最好特性并产生优秀的子代。由于个体的适应函数值通常依赖于简单性质的复杂模式,因此算子能够把对父代适应函数值有所贡献的这些模式传播给子代就显得非常重要。异位显性(Epistasis)的概念指的就是编码中基因间的强相互作用。换句话说,异位显性度量的是一个基因对适应函数值的贡献依赖于其他基因的程度的大小。对于一个给定的问题,高度的异位显性意味着无法形成积木块。

(2)受控收敛偏差假设[145]。受控收敛偏差假设认为应利用种群收敛的程度来指导搜索,新的点从某一分布中进行采样,该分布是种群任一时刻分布的函数,随着种群逐渐收敛,偏差变得越来越小。积木块假设强调在父代种群中保留的性质的重组与传播,而受控收敛假设则强调从当前种群的分布函数中进行随机采样[139]

从搜索能力的角度出发,期望设计出能够同时具有随机搜索和有向搜索两种能力的方法。Cheng和Gen提出了下面的设计遗传算子的方法[146],对于两个遗传算子杂交和变异来说,一个用来执行随机搜索并试图探索局部最优解以外的区域,而另一个则用来执行局部搜索并试图寻找到更好的解,遗传搜索于是具备了两种搜索能力。采用这种方法,变异算子将与杂交算子在遗传搜索中具有同等重要的地位[139]

4.运行参数设定

遗传算法有下述4个运行参数需提前设定:

(1)n:群体大小,即群体中所含个体的数量。

(2)T:遗传运算的终止演化次数。

(3)Pc:杂交概率。

(4)Pm:变异概率。

需要说明的是,这4个运行参数对遗传算法的求解结果和求解效率都有一定的影响,但目前尚无合理选择它们的理论依据。为了使初始群体在解空间均匀分布,n不能取得太小,否则不能保证群体的多样性,易出现早熟收敛;而如果n选得太大,不但增加了计算时间,而且也不能有效地改进进化迭代的解。确定n的大小需要综合考虑全局收敛速度和计算量。同时,n的确定与所求问题的非线性程度和复杂程度有关,非线性越强、问题越复杂,n应取得越大,目前n还只能依靠经验选定。杂交概率pc越大,优秀个体出现的概率越大,新旧个体替换越快,收敛越快。变异概率pm越大,标准遗传算法开拓新的搜索区域的能力越强,产生新个体越多,优秀个体出现的概率越大,找到全局最优的可能性也越大,但是标准遗传算法越趋向于随机搜索,算法的收敛性就越差。在标准遗传算法实际应用中,pm取得太小,个体产生变异的能力不够,会出现整个群体过早地演变成同一个体,但这个个体极可能是一个局部最优点;pm取得太大,个体经常在变异,群体的平均适应度值改变很慢,降低了收敛速度。标准遗传算法的这些参数的设置对标准遗传算法的优化性能影响很大,但目前对这些参数的设置尚未统一,如Schaffer建议标准遗传算法的最优参数范围是n=20~30、pc=0.75~0.95、pm=0.0~0.05[147],席裕庚等建议标准遗传算法的最优参数范围是n=20~200、pc=0.5~1.0、pm=0.0~0.05[29]

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

我要反馈