1. 前言
优化算法和程序是是当今计算机时代科学和工程问题研究中最重要的工具之一。一个好的优化算法应具备两个基本特征(设以求全局最大主峰为例):一是要找到主峰而不是众多的次峰;二是爬峰速度要快。此外,它还应具有通用性,最好能用于“黑箱”问题的寻优。。如能有一种优化算法既可保留上述两种基本算法的简单和通用特征,而又有高的寻优准确度和效率,显然是人们梦寐以求的。遗传算法(GA)为此开辟了一条诱人的道路。
遗传算法是由美国密执安大学Holland等人,经过20余年的努力而发展起来的,它将描述自然界生物进化的达尔文学说“物尽天择,适者生存”的原理引入到算法中。特别是近十年,由于计算机性能的提高,以及并行分布式计算的推广,遗传算法由于自身独特的优势而越来越受到人们的重视。进入21世纪,遗传算法已成为国际上的一个研究热点,围绕遗传算法,有一大批学者在从事下列方面的研究:遗传算法的机理、算法的收敛性和复杂度、编码方法、选择方法、杂交和变异方法、遗传的操作方式等。到目前为止,对各种问题的研究尚未有定论,正由于许多问题的存在激励着人们进行不断的探索和研究。
2. 简单遗传算法简介
简单遗传算法的基本思想是把待优化问题的参数编码成二进制位串的形式,然后由若干个位串形成一个初始种群作为待求问题的候选解,经过选择、交叉、变异的迭代搜索过程,最终收敛于最优状态。
算法过程如下:
步骤1:初始化,随机产生一个规模为P的初始种群,其中每个个体为二进制位串的形式,也就是染色体,每个二进制为称为基因。
步骤2:计算适应度,计算种群中每个个体的适应度。
步骤3:选择,选择是指从群体中选择优良的个体并淘汰劣质个体的操作。它建立在适应函数评估的基础上。适应度越大的个体,被选择的可能性就越大,它的下一代的个数就越多。选择出来的个体放入配对库中。
步骤4:交叉,从种群中随机选择两个染色体,按一定的交叉概率进行基因交换,交换位置的选取也可以是随机的。
步骤5:变异,从种群中随机选择一个染色体,按一定的变异概率进行基因变异。
步骤6:若发现最优解或者到达迭代次数,则算法停止。否则,转步骤2。
3. 提高遗传算法收敛速度的策略
初始种群的选择
初始种群的优劣对算法的效率和结果都有重要的影响,要搜索全局最优解,初始种群不仅要规模相当而且应该在解空间均匀分布。基本遗传算法是按照随机方法在最优解分布范围内产生一定数目的个体组成初始种群。
本文按照一定的模式选择种群。将种群分成几类。例如,如果我们选择初始种群为100个,那么将种群按照不同的模式均匀分成10类。每个类中的染色体有相同的模式。由下面的操作可知,这样做能够保证了群体的多样性。
适应度比例法的改进
在遗传算法的运行过程中,每一代都会产生一些优良个体。如果按照传统的选择方法,它们的优良模式有可能被后面的遗传操作破坏,就会降低群体的平均适应度,这样对进化是不好的。所以我们改进的目标是保证最优解的生存。最优个体(这里的最优个体来自全体染色体的10%)不按比例进行复制,直接保留到下一代中。因为复制的结果容易使遗传算法陷入局部最优解。导致各个个体间的适应度趋于一致。
具体操作过程为:
(1)找出每个模式中适应度最高的个体。该个体不进行交叉和变异。
(2)对同一模式中其它个体进行遗传操作。即交叉和变异是在同一个模式中的不同个体(最优的除外)之间进行。
(3)在每个模式中,经过交叉和变异后的每个个体进行适应度比较。依然保留最优的个体。
最优保存策略是选择操作的一部分,它能够保证不能破坏优良模式。也是遗传算法收敛性的一个重要保证条件。该策略与下面叙述的交叉和变异操作结合在一起,能够得到良好的效果。
交叉方式的改进
交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。交叉的目的是为了能够在下一代产生新的个体。通过交叉操作,遗传算法的搜索能力得以飞跃性的提高。交叉是遗传算法获取新优良个体的最重要手段。
交叉的概率一般选择的都很大。本文的交叉概率是根据交叉结果来决定的。无论是选择单点交叉还是多点交叉或者其它交叉方式,改进的目标是保证子代的适应度大于父代。我们选用的交叉方法是:所有个体(除去最优的10%)中每两个组成一对,全部进行交叉。根据交叉结果选择此次交叉是否进行。如果一对染色体,我们假设为A和B,再假设交叉的结果为A1和B1,那么会出现四种情况,(1)A1>A,B1>B;(2)A1B;(3)A1>A,B1
变异方式的改进
变异就是以很小的概率(即变异率)随机地改变群体中个体(染色体)的某些基因的值。变异操作的基本过程是:对于交叉操作中产生的后代个体的每一基因值,产生一个[0,1]之间的伪随机数,如果这个伪随机数小于变异概率,就进行变异操作。在二进制编码方式中,变异算子随机地将某个基因值取反,即0变成1,或1变为0。变异本身是一种局部随机搜索,与选择、交叉算子结合在一起,就能避免由于选择和交叉算子而引起的某些信息的永久性丢失。保证了遗传算法的有效性,使遗传算法具有局部的随机搜索能力。同时使得遗传算法保持群体的多样性,以防止出现未成熟收敛。在变异操作中,变异率不能取的太大,如果大于0.5,遗传算法就退化为随机搜索,而遗传算法的一些重要的数学特性和搜索能力也就不复存在了。
本文使用的变异概率是根据是由交叉方式的结果决定的。在交叉方式中,每个模式都可能出现不良个体,如果不良个体数量大于50%,那么说明此模式不良,应该进行淘汰。我们采用的方法是对此模式进行变异。引进新的模式。如果不良个体数量小于50%,那么就对这些不良个体进行变异。在不影响模式的前提下,进行变异。即在每个染色体的基因上,随机的选择一位,使之变异。至此,新的一代产生了。
4. 算法过程
算法的流程图如图1。
图1 改进的遗传算法程序框图
5. 在工业控制中的应用
遗传算法应用与工业控制可以做到以下几个方面:
(1)控制过程的监控;在工业控制监控过程中,有些系统会产生大量的随机的数据和不确定的因素,因此精确建模比较困难。也是因为数据的随机性和不确定性因素,造成工业监控系统难以准确控制。利用遗传算法进行过程监控,首先建立控制系统的理论控制模型,然后利用遗传算法能在大量数据上的寻优优势,提供监控方案。并且遗传算法也能进行自适应控制来随时调整控制模型,达到监控的优化并且使系统更趋于稳定。
(2)控制过程故障诊断(提供决策方案);把遗传算法理论与技术应用于控制过程故障诊断能够模拟专家系统实现对控制器的故障检查。故障检测过程中的参数一般都具有非线性特征,如果使用确定性的方法,很难建立其数学模型。遗传算法应用在智能诊断中,可以解决多变量非线性系统问题。而且系统的鲁棒性好,对参数变化不敏感,并且可以做出决策供维护人员参考。
(3)系统参数辩识(参数优化);随着工业控制规模的不断加大和时间的不断积累,需要保存和后期处理的数据越来越庞大,这就对工业控制系统提出了更高的要求。大量的参数构成了整个工业控制过程,原来的工业控制系统实时处理数据的能力很强,但是后期数据的处理能力显得有些力不从心,遗传算法在大量数据的处理方面拥有较多优势,在参数优化方面也有着其他算法不可比拟的优越性,如PID参数控制等。所以自从90年代以来在我国的工业控制系统中的应用也越来越广泛。遗传算法和工业控制系统的结合,不仅使当今的自动化更具灵活性、完整性、经济性和安全性,而且为信息集成和自动化系统提供了新的结构,具有良好的发展前景。
(4)控制器的优化设计。遗传算法在很多领域得到了较好的应用,运用遗传算法设计的控制器实时性好、响应快,并具有自适应调节功能,且精确、控制平稳,能满足较高要求,具有较高性价比。
6. 结论
本论文的创新点在于针对工业控制中经常使用的控制方式方法,使用我们改进的遗传算法,使得它能在工业控制中更好的使用。系统的运行结果跟程序本身有关也跟机器的性能有关。视情况不同而不同。对于不同的控制函数模型本文的遗传算法并不是十分优秀。但是对于某些控制模型来讲,还是有一些优势。在控制系统常用的非线性函数的情况下,本文的算法比标准的遗传算法有更好的结果。在实验阶段处理简单的函数的问题上,也具有相当的优势。
到目前为止,还没有找到一种能适合所有类型函数的遗传算法。目前对遗传算法的改进大多数集中在选择、交叉、变异、适应度等的参数选择上,而这些改进也没有统一的形式。本文的算法在交叉问题处理上,看上去似乎烦琐些,实验结果表明,它可以减少遗传的迭代次数。这种改进只适合某些特定的函数。所以对遗传算法的研究和改进还需要做大量的工作。
参考文献
[1] 司徒浩臻等.基于遗传算法的多序列比对算法研究.微计算机信息,2006,6-2:22
[2] A.H.Wright.Genetic algorithms for real parameter optimization, Amer: Sci, 1991
[3] K. Deb and H.-G. Beyer, Self-adaptation in real-parameter genetic algorithms with simulated binary Crossover, Proc. of the genetic and Evolutionary Computation, 1999.
[4] Chiba, T, Okado, S, Fujii, I, and Itami, K. (1996b). “Optimum support arrangement of piping systems using genetic algorithm.” J. Pressure Vessel Techno. 118, 507–512.
[5] Nolle, L., Armstrong, D.A., Hopwood, A.A. and Ware, J.A., \Simulated Annealing and Genetic Algorithms Applied to Finishing Mill Optimization for Hot Rolling of Wide Steel Strip", International of Knowledge-Based Intelligent Engineering System, 6, 2, 104-111, 2002.