第1页共6页改进的遗传算法在数字信号处理中的应用摘要:本文介绍了改进遗传算法IGA并把它应用于最优小波基的选取。通过将信号用小波级数展开后得到其在某个期望尺度上的近似表示,由此建立一个表达信号与其近似之间误差的代价函数,然后我们利用改进遗传算法最优化此代价函数以获得全局最优的正交小波基。1遗传算法与小波1.1遗传算法遗传算法(GeneticAlgorithms)是基于生物进化理论的原理发展起来的一种广为应用的、高效的随机搜索与优化的方法。其主要特点是群体搜索策略和群体中个体之间的信息交换,搜索不依赖于梯度信息。它是在70年代初期由美国密执根(Michigan)大学的霍兰(Holland)教授发展起来的。1975年霍兰教授发表了第一本比较系统论述遗传算法的专著《自然系统与人工系统中的适应性》(《AdaptationinNaturalandArtificialSystems》)。遗传算法最初被研究的出发点不是为专门解决最优化问题而设计的,它与进化策略、进化规划共同构成了进化算法的主要框架,都是为当时人工智能的发展服务的。迄今为止,遗传算法是进化算法中最广为人知的算法。近几年来,遗传算法主要在复杂优化问题求解和工业工程领域应用方面,取得了一些令人信服的结果,所以引起了很多人的关注。在发展过程中,进化策略、进化规划和遗传算法之间差异越来越小。遗传算法成功的应用包括:作业调度与排序、可靠性设计、车辆路径选择与调度、成组技术、设备布置与分配、交通问题等等。1.2遗传算法的特点遗传算法是解决搜索问题的一种通用算法,对于各种通用问题都可以使用。搜索算法的共同特征为:①首先组成一组候选解;②依据某些适应性条件测算这些候选解的适应度;③根据适应度保留某些候选解,放弃其他候选解;④对保留的候选解进行某些操作,生成新的候选解。在遗传算法中,上述几个特征以一种特殊的方式组合在一起:基于染色体群的并行搜索,带有猜测性质的选择操作、交换操作和突变操作。这种特殊的组合方式将遗传算法与其它搜索算法区别开来。遗传算法还具有以下几方面的特点:(1)遗传算法从问题解的串集开始嫂索,而不是从单个解开始。这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。第2页共6页(2)许多传统搜索算法都是单点搜索算法,容易陷入局部的最优解。遗传算法同时处理群体中的多个个体,即对搜索空间中的多个解进行评估,减少了陷入局部最优解的风险,同时算法本身易于实现并行化。(3)遗传算法基本上不用搜索空间的知识或其它辅助信息,而仅用适应度函数值来评估个体,在此基础上进行遗传操作。适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。这一特点使得遗传算法的应用范围大大扩展。(4)遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导他的搜索方向。(5)具有自组织、自适应和自学习性。遗传算法利用进化过程获得的信息自行组织搜索时,硬度大的个体具有较高的生存概率,并获得更适应环境的基因结构。1.3小波工程界使用的小波一般而言是实值的紧支正交对称或反对称的,这有很多好处,尤其是在数字图象处理中对边界的处理中。然而Daubiches在证明了紧支正交对称或反对称的实值小波有且仅有Harr小波。这一结论给的工程应用来说确实是一大缺陷。很多的学者和专家经过艰苦的努力都找不到实值的紧支正交对称或反对称的小波,这是已成为事实。本文提出一种利用改进遗传算法的最优正交小波基选择方法。通过将信号用小波级数展开后得到其在某个期望尺度上的近似表示,由此建立一个表达信号与其近似之间误差的代价函数,然后我们利用改进遗传算法最优化此代价函数以获得全局最优的正交小波基。最后应用数值实验结果证明本文的方法能够快速准确地得到全局最优的正交小波基,从而得到信号在期望尺度上的最佳近似。2最佳小波基选取及改进遗传算法小波分解是一种新的信号分析技术,它通过把信号在小波基上展开后,将其分解到不同的频带上,由于信号的小波分解是一个无限和式,实际中我们往往将这个和式截取到某个期望尺度上而得到信号的一个近似表示,在小波基为正交基的情况下,这个信号的近似优劣完全依赖于分析小波的选择。我们利用二进制矩阵编码方法的改进遗传算法IGA(ImprovedGeneticAlgorithm)来获取合适的分析小波。其基本的思想是通过对信号与其近似之间的误差建立一个代价函数(CostFunction),把上述问题转化为一个优化代价函数的问题,优化过程随分析小波的不同而不同。由于这个优化问题的复杂性,并且其还存在多个局部最优值,从而使得直接通过对代价函数求解或通过其它优化方法获得最优分析小波有着很大的困难,因此,为能有效的获得全局最优的分析小波,我们利用改进遗传算法IGA来解决这个优化问题,以获得对信号的最佳近似。第3页共6页2.1IGA的矩阵编码编码是遗传算法中的基础工作之一。对于TSP,常用的编码方式有两种:一种是城市次序编码,即按遍历城市的次序排列进行编码。此方法稳定性强,便于直观地表示解,但搜索性能差,不符合最小字符集编码,还会引起交叉操作的困难,即产生许多非法个体。将它的非法个体转化为合法个体,其修复的方法有部分匹配交叉PMX、顺序交叉OX、循环交叉和基于知识的交叉方法等;另一种是边编码,若边eij在一Hamilton圈上,则对应的xij=1;若边eij不在该Hamilton圈上,则xij=0。这种方法简单易行,符合最小字符集编码,便于用模式定理进行分析,搜索性能好,但稳定性差,不易直接判断个体是否合法,也会由于交叉、变异操作而产生大量非法个体。针对以上两种编码方式存在的不足,本文提出一种更好的方法——矩阵编码。矩阵的元素令为xij若商人经过边eij,则xij=1;否则xij=0,规定xii=0,其中i,j∈V.从而,对n个顶点的TSP,得到n×n的编码矩阵,其形式如下所示:矩阵编码虽然与边编码在元素的表示意义上相同,但它克服了边编码无法表示和判断个体的合法性的局限,显示出很强的优越性。其优点表现为:1)能形象、直观地判断是否合法个体;2)有利于计算个体的适应值;3)生成多样化的合法个体;4)易于将非法个体变为合法个体;5)比城市次序编码稳定。2.2选择机制按最佳保留选择机制,即首先按赌轮选择机制执行遗传算法选择功能,然后将当前解群体中适应度最高的个体结构完整地复制到下一代群体中。其主要优点在于能保证遗传算法终止时得到的最后结果,一定是历代出现过的最高适应度的第4页共6页个体通过选择操作,使种群一代一代得到优化,缩小搜索范围,节约计算时间,从而很快收敛到最优解。2.3交叉策略交叉操作是遗传算法的核心操作部分,通过交叉,能生成具有更多模式的个体,使个体的多样化能促进算法搜索到全局最优解。本文根据矩阵编码,提出相应的三种交叉操作,它们是:1)行列交叉:首先随机选取双亲中对应的一行或列,将其互换得两个新的个体。2)映射同/异或交叉:将两个父代中对应位置的元素0、1进行比较,若两个都为0/1,则同/异或的结果为1/0;若一个为0,一个为1,则同/异或的结果为0/1。3)顺序交叉:选定一父代个体中的任第K行(0kn)分别加到另一父代个体中首行(列)的前面,其它行(或列)依次下(右)移,则生成两个新的后代个体。2.4改进遗传算法程序框图第5页共6页2.5仿真结果及分析本文提出基于矩阵编码的遗传算法已用Matlab5.3在Windows2000上实现.为消除随机性带来的干扰,算法对随机取的20个实例重复执行30次;每次进化600代,并将仿真实验数据取平均值记录于表1中。表1中的第一列为城市的规模数第二列为传统的遗传算法GA运行结果。第三列为改进遗传算法IGA运行结果。其中,距离取0—1之间的随机数据,要增大距离,可直接乘以一个倍数即可达到。表120个TSP的计算实例实验结果表明,采用矩阵变异的遗传算法将传统遗传算法边编码产生的大量无法处理的非法个体转化成合法个体,保证了个体的多样性,扩大了解的搜索空间,其实验结果明显优于传统的遗传算法。在一维OMRA的基础上,我们应用上面的方法可以把频率分辨率提高一倍,在实际应用中我们可以有选择的对所感兴趣的部分(尤其是其高频部分)进行对称处理而且这种工作量相对于传统的小波包来讲也很小。第6页共6页传统小波包对于分解层数N较大的情况却难以计算,计算量大,从而阻碍了它在工程中的广泛运用。本文提出的方法从某种角度上说可以降低传统小波包从第N-1层分解到第N层时的复杂度。当然我们也可以选择我们感兴趣的部分进行处理,这也体现了小波包本身的思想。