采用演化算法的硬件设计的制作方法

文档序号:6357173阅读:834来源:国知局
专利名称:采用演化算法的硬件设计的制作方法
技术领域
本发明涉及可演化硬件(evolvable hardware),更具体地来说涉及采用可演化的硬件设计硬件体系结构。
可演化硬件(EHW)指一种特定类型的硬件,其体系/结构和功能动态且自发性地改变,以在执行某些任务时提高其性能。可演化硬件在如下文章中有所讨论X.Yao所著标题为“追踪可演化硬件之路”的文章(Communications of the ACM,vol.42,no.4,pp.47-491999)以及X.Yao和T.Higuchi所著“可演化硬件的前景和挑战”的文章(IEEE Trans.On Systems,Man,and Cybernetics,PartCApplications and reviews,vol.29,no.1,pp.87-97,1999)。
近年来这一新领域的兴起一直深受可重构硬件和演化计算(evolutionary computation)的发展的影响。众所周知,常规硬件的缺点是不灵活。硬件结构和功能一旦制造完成,则无法更改。但是多数现实问题却不是固定不变的。它们随时间变化。为了既有效率又有效果地解决这些问题,需要不同的硬件结构。EHW提供了一种理想途径,通过动态调整硬件结构以适应问题从而使硬件“软化”。
EHW可以描述为将演化计算技术应用于电子硬件设计例如滤波器设计;或者可以通过动态和自发地重配置其体系结构在线调整的硬件。前者侧重于将演化计算技术视为潜在的设计工具,而后者侧重于硬件的调整。值得一提的是,EHW与演化算法的硬件实现大不相同,因为其硬件是用于加速各种演化操作的。硬件本身并没有更改或进行调整。
EHW有两个主要方面仿真演化和电子硬件。仿真演化可以由遗传算法(genetic algorithm)(GA)、遗传规划(genetic programming)(GP)、演化规划(evolutionary programming)(EP)或者演化策略(evolutionary strategy)(ES)来驱动。至于哪种演化算法最适于EHW,没有统一的定论。不同的演化算法(EA)适合不同的EHW。EHW中所采用的电子硬件可以是数字、模拟或混合型的电路。EA的优点之一在于它们对EHW中所用电路的类型的约束非常少。
多数EHW非常倚重可重配置的硬件,如现场可编程门阵列(FPGA)。FPGA的体系结构和功能直接由它的体系结构比特确定。这些比特是可重配置的。EHW利用此灵活性的优点以及采用EA来使这些比特演变,以便既有效率又有成效地完成某些任务。
对“可演化硬件”最通用的定义是,“通过演化算法实现硬件设计(通常指电子的,而非机械、生物、化学的)”。演化算法有许多种类,它们均用在EHW中,但是结合“适者生存”的思想,它们均基于生成-测试法则。一般来说,个体(本例中为设计方案)构成的种群(population)最初是随机生成的。然后,算法将按照如下步骤进行1.将适应度测量值分配给每个个体。
2.选择一些适应度高的个体作为父代(parent)。
3.通过演化算子(evolutionary operator)(例如,交叉(crossover)算子、变异(mutation)算子)生成新的个体(后代)。
4.从当前种群和后代的并集中,选择一些个体生存到下一代。
5.回到步骤(1),除非种群中的个体满足某种终止标准。


图1显示EHW演化周期中的主要步骤。随机地或试探性地生成编码为染色体(chromosome)10的体系结构比特的初始种群。然后将它们下载12到FPGA 14中,以进行适应度评估。为了削减成本和节省空间,某个EHW只有一组FPGA硬件,用于依次评估每个染色体的适应度。FPGA的适应度,通常等效于其染色体的适应度,对它的估计是通过FPGA与环境16的交互来进行的。然后将此适应度用于选择父代染色体18,以便进一步进行复制和遗传操作。交叉和变异20通常用于从父代生成后代的染色体22。然后这些后代根据某种替代策略来替代它们的父代。某些替代策略可能会保留父代,而抛弃其后代。在替代步骤之后,形成新一代的染色体。
图1的示意图利用EPGA作为EHW的一个实例。但是,所述的步骤同样适用于其他类型的EHW。
一般可区分出五种级别的EHW1.One-Shot Extrinsic生成-测试周期完全以软件方式完成。对设计进行仿真测试,在该过程结束时,创建一个或一组可以硬件方式实现的设计。
2.One-Shot Mixtrinsic同级别1,只是设计要同时通过仿真和在实际的硬件中进行评估。
3.One-Shot Intrinsic同级别1,只是在每个生成-测试周期里,所有设计都编程到硬件中,并通过测试实际的硬件来进行评估。设计过程的控制在主计算机上以软件方式完成。
4.One-Shot Intrinsic with On-Chip Control同级别3,只是采用可编程硬件部分来实现设计过程的控制。
5.Adaptive Intrinsic同级别4,只是每当环境发生变化时重复设计周期,从而允许硬件适应变化的环境、硬件故障。
从研究的角度来看,级别1与其余级别之间的存在巨大的差异。如果在芯片上实际地评估硬件,设计可能(且经常会)包括未被仿真并且传统设计过程中通常没有考虑到的效果(例如单元之间的寄生耦合)。这可能导致非常有趣且创新的设计,但同时分析也会非常困难。从级别2到级别5并非不重要,但是缺乏研究,存在许多工程/实现方面的问题。当然,从实际应用的角度来看,级别5可能是非常理想的。
除级别1外的所有应用均是基于可重复编程硬件的。它们通常是FPGA和其他PLD;虽然也可以采用模拟可重配置器件。目前采用FPGA或ASIC的设计最可能适用。演化设计方法是一种生成-测试方法。因此需要可以机械方式评估所生成的电路。再者,此测试应该相当快。其精确含义取决于多种因素,尤其是设计的难度(对于某些难题,常常需要评估数百万或甚至十亿个电路设计),以及可用于完成设计的时间。
EHW最好用于小型设计,以减小复杂性。在目前公布的应用中,似乎指定和连接约30个元件即被视为困难的任务。如果例如限制可能的互连来限制搜索空间,则可以使用更多的元件。元件的具体所指由实现方式而定,它可能是FPGA上功能单一的单元(或模拟电路上的晶体管),也可能是较大的模块,例如算术函数装置。
EHW的主要优点是它不依赖于已建立的设计方法(可以采用,但并不要求使用这些方法)。实际上,较之其他方法,演化设计方法通常最适合用于可用设计信息很少或可用设计方法限制了可设计的电路群的场合。设计过程中越多采用“秘诀(black magic)”或“试错法”,EHW就越可能产生更好的设计。由于演化算法基于种群特性,故常常可以很好地解决多目标优化问题。
级别5的EHW设计是一种特殊情况。对于希望硬件自己调整以适应变化中的环境或自我重新布线来响应硬件故障(容错HW)的应用而言,EHW被视为一种非常有前途的方法。在此情况中,EHW设计过程并没有与设计人员形成竞争,因为设计人员不可能持续不断地进行重新配置。因为资源有限和要求响应时间快,所以搜索空间小且测试快在自适应设计应用中尤其重要。
本发明目的在于提出一种采用演化算法设计硬件元件的改进方法。从最广义的形式来说,本发明在于采用分组(clutering)和帕瑞托前沿(Pareto front)选择哪些个体将幸存到下一代。帕瑞托前沿由群体(cluster)中的非受控个体组成。
更具体地来说,提出一种采用演化算法设计硬件元件的改进方法,该方法包括如下步骤a)给出硬件元件的初始种群;
b)将该初始种群编码为染色体;c)根据多目标适应度标准评估初始种群中每个个体的适应度;d)基于初始种群的适应度评估结果选择父代染色体;e)对所选择的父代染色体执行遗传操作以生成后代群体;f)从父代和后代染色体中选择一组新染色体,其中包括根据父代和后代染色体形成多个群体以及构造每个群体的非受控染色体的帕瑞托前沿;以及g)对新的染色体集合重复步骤c}至f}以形成新一代,一直持续到满足预定终止标准为止。
本发明还提出一种采用演化算法重新设计现有硬件元件的方法,它包括如下步骤通过对现有硬件元件的染色体表示执行遗传操作,由现有硬件元件生成后代种群;从现有染色体和后代染色体中选择一组新染色体,其中包括形成多个染色体群并形成每个群体的非受控染色体的帕瑞托前沿;根据一个或多个标准评估每个个体的适应度;基于适应度评估结果选择父代染色体;以及重复选择新染色体集合、适应度评估和选择父代的步骤,直到形成一组新的后代染色体、满足预定的性能或其他标准为止。
本发明的实施例的优点在于在演化过程中鼓励和保持设计的多样性。这不但避免了过早收敛,而且可以将人类专家在设计部件时不会考虑到的非常规设计纳入考虑。
分组步骤最好包括基于基因型(genotype)之间的距离形成群体。
在该过程进行到n代之后最好重新分组。这样做的优点在于所定义的群体均匀地分布在种群中的染色体上。
在重新分组一定次数之后,群体最好稳定下来以致群体之间不存在遗传物质的交换,其优点在于有助于保持多样性。
最好定期从群体的帕瑞托前沿中删除一些染色体。这种前沿移位的优点在于它防止前沿增长过大而增加许多相似的个体。最好通过将具有最小基因型距离的非受控个体标识成一对,然后删除适应度最差的对编号而使前沿减小。
最好对帕瑞托前沿采用严格约束。其优点在于从前沿中删除极端的个体,以防它们可能将有希望的个体挤出去。
最好通过如下四种方法之一来选择父代染色体利用组合适应度(combined fitness)选择、利用共享适应度选择、以及在两种个体均不受控时用小生境计数(niche count)或者群体大小来优选非受控个体而非受控个体。
最好,生成后代的遗传操作的应用包括变异和/或交叉。最好是两点交叉。
可以利用本发明的实施例来设计范围很广的硬件元件,包括数字滤波器。在数字滤波器的设计中,染色体基因型最好为滤波器的零-极点描述而表现型(phenotype)为转移函数。这样做的优点在于可以表示所有IIR线性滤波器,且所有表现型都是可行的。而且保留局部性,因为相似的基因型具有相似的频率响应特征且搜索空间相对平滑。
下文将参考附图通过示例描述本发明的实施例。
图1是可演化硬件的演化周期中主要步骤的示意图;图2显示用于说明频率响应约束的可能的低通滤波器的振幅和群时延;图3显示演化算法的框架;图4显示帕瑞托前沿的不同区域;图5显示初级演化系统生成的低通滤波器的过渡带中的振幅过冲;图6显示运行1和运行2的种群最佳适应度曲线;图7显示运行4和运行5的种群最佳适应度曲线;图8和图9分别显示人工设计的对应于第一和第二问题实例的滤波器的振幅和群时延响应、以及右手边的零极点图;图10是类似于图8和图9的、显示问题实例1运行1的最优群体中的最优个体的图;图11是类似于图8和图9的、显示问题实例1运行1的次优群体中的最优个体的图;图12是类似于图8和图9的、显示问题实例1运行2的最优群体中的最优个体的图;图13是类似于图8和图9的、显示问题实例1运行3的最优群体中的最优个体的图;图14是类似于图10的、显示问题实例2运行4的最优群体中的最优个体的图;图15是类似于图10的、显示问题实例2运行4的次优群体中的最优个体的图;图16是类似于图10的、显示问题实例2运行5的最优群体中的最优个体的图;图17显示人工参考设计与运行3得到的演化设计之间振幅的比较;以及图18显示人工参考设计与运行3得到的演化设计之间延迟的比较。
本发明将从数字滤波器的设计来加以讨论。要着重强调的是,本发明属于用于硬件设计的演化计算技术。数字滤波器只是可以采用本发明来设计的一个硬件实例,本发明并不局限于数字滤波器或其设计。要描述的设计方法采用基于矢量的染色体表示方案,其中,利用若干交叉和变异算子来操纵这些染色体。如下文所述,可以采用适应度共享(fitness sharing)来共同演化不同的设计。
采用本发明的方法来设计数字滤波器之所以具有吸引力,是因为如下原因问题与工程有关。数字滤波器在通信系统中(通常在数字和模拟信号处理系统之间的接口处)扮演着非常重要的角色。实例为移动通信、语音处理、调制解调器等。
数字滤波器可以是(通常都是)在可重构硬件中实现的,因此适用于EHW。
虽然已成功建立了数字滤波器设计学科并对其进行了很好的研究,但不存在通过通常可接受的努力就可获得最优设计的常规设计规程。数字滤波器是活跃的研究领域。
数字滤波器的设计空间意义明确,但是既庞大又复杂。意义明确的空间有利于不同结果的比较。既庞大又复杂的设计空间对于实施本发明的演化系统来说是一个挑战,能够较好地评估我们的系统在处理棘手的设计问题方面的适用性。
一般可获得滤波器性能的量度,从而提供较易计算的EA的适应度量度。它还提供用于比较不同设计的直截了当的量度。
数字滤波器有许多不同种类,具体取决于所采用的元件的类型(例如线性元件或非线性元件)、对互连的限制(例如有无反馈)以及预期的滤波器特性。设计各滤波器的难度取决于滤波器的确却类型;对于某些类型,可利用分析方法,而对于另一些,则采用近似法。总之,不同的滤波器通常需要不同的设计方法。专门从事设计一种类型的滤波器的设计人员可能设计不出其它类型的最优滤波器。因为没有通用的设计方法,所以演化设计自然成为人工设计的好的替代方法。
将要描述的实施例将本发明的方法应用于W.S.Lu所著论文所描述的设计问题中,该论文标题为“设计具有均波通带和峰值受限的最小二乘阻带的稳定的IIR滤波器”(IEEE Transactions on Circuitsand Systems IIAnalos and Digital Signal Processing,vol 46,no.11,pp 1421-1426,1999)。在该论文中,仍是以常规方法解决两个问题,生成两种设计。所公布的结果允许将采用常规方法完成的设计性能与采用本发明的演化方法完成的设计性能作直接比较。
为了帮助理解,下文将说明滤波器设计的一些基本理念和概念。虽然滤波器设计技术对于本专业人员来说耳熟能详,但是在滤波器设计教科书中可以发现更多的详细信息,如A.Antonion所著《DigitalFilters-Ahalysis,Design and Applications)》,McGraw Hill International,第二版,1993年;以及T.W.Parks和C.S.Burrus所著《Dilgital FilterDesign.Topics in Digital Signal Processing》,John Wiley and Sons,1987年。
所述实施例考虑的是线性无限脉冲响应(IIR)数字滤波器。对于线性滤波器,可以通过频率响应来表征其特性(behaviour)。这就是0与半取样频率之间所有频率(这通常用ω表示,0<ω<ωθ/2,其中ωθ是取样频率)的输出信号相对于输入信号的相位和振幅。所要求的滤波器特性用频率响应来说明。
一般来说,数字滤波器的设计过程通常包括两个步骤。在第一步骤中,推导符合设计标准的滤波器的数学表述。然后在第二个步骤中将此表述转换为硬件表述。这两个步骤就难度、所采用的方法以及性能标准而言差异非常大。类似于多数滤波器设计论文,本说明书也只考虑较难的第一步骤。此步骤得到最优(接近最优)的多项式,该多项式然后可以转换为硬件实现。
任何线性数字滤波器均可用复多项式函数即传递函数(等式1)以数学形式来表示。可以将此多项式函数即等式2重新写为两个积项的商,其中分子指定多项式的零点,而分母指定极点。该函数通常具有一个比例常数(等式2)。这两种表述是等效的。将零-极点表述变换为多项式表述很容易,但是反之并非如此。通过计算z=ejωT(T为取样频率)的值从传递函数来推导频率响应。
H(z)=Σi=0nbizn-iz(n-r)Σi=0rbizr-i]]>等式(1)H(z)=b0×(z-zz0)(z-zz1)...(z-zzn)zr-i(z-zp0)(z-zp1)...(z-zpi)]]>等式(2)
并非所有传递函数都可以用硬件滤波器来实现。必须遵守两个主要要求实数系数多项式表述中的系数直接转换为硬件实现中的乘数。让信号与复数相乘是非常困难的,故所有系数都应该都是实数。从零极点角度来看,如果所有极点和零点都是实数或以复共轭对的形式(即a+jb和a-jb)存在,则这是可以实现的。
稳定性因为一般的IIR滤波器具有反馈回路,所以它可能振荡。输出可能会无限增大(或在硬件中增大直到溢出)。在稳定的滤波器中,有界输入始终会得到有界输出。仅当所有极点都在单位圆内,即‖a+jb‖<1,滤波器才是稳定的。虽然特定应用中要用到非稳定滤波器,但多数滤波器都被设计成稳定滤波器。
滤波器的性能通常为多目标的。不存在适用于所有滤波器的通用标准。精度目标取决于滤波器的类型及它们的应用所施加的工程约束。所考虑的两种实例滤波器都是低通滤波器。应用实例会是一个角频率为20千赫兹的电话系统中的滤波器。频率低于此频率的信号应无改变地通过滤波器,而高于此频率的信号应该被抑止。理想的低通滤波器会允许信号在低频区(通带)无改变地通过,而在高频区(阻带)完全阻止信号。实际上,过渡带常常位于通带和阻带之间。滤波器设计的目标就是要使信号在通带中的失真最小化,而使信号在阻带中受到最大的抑制。过渡带应该尽可能地窄。
要使信号在通带中的失真最小化,必须满足两个标准。第一个标准是通带的频率响应特征的振幅应该尽可能地恒定。例如,语音信号中的所有频率应该按照完全相同的量予以放大。
第二个标准是通带的相位必须尽可能为线性的。在实际情况中,常常采用所谓的群时延,即相位的一阶倒数δ/δω。因此第二个标准可以称为恒定的群时延。这意味着滤波器使所有频率延迟相同的时间量。如果群时延不是恒定的,则某些频率通过滤波器较其他频率快,从而导致输出的信号失真。
在阻带中,设计目标通常要使信号尽可能地衰减。因为信号衰减,阻带中的信号的相位和群时延通常变得不重要。
对于过渡带,很少采用约束。
图2显示典型的低通滤波器。上半部分显示振幅,而下半部分显示群时延。理想的特性曲线24用粗线表示,只要实际特性曲线(细线)26在阴影区内,则就是可接受的。
为了有助于采用体现本发明的方法来设计的滤波器与其他现有技术的设计作比较,只要有可能,本报告就沿用前述W.S.Lu文章中所用标准,即1.通带和阻带中振幅的加权平方误差;2.阻带中的峰值振幅;3.对通带中恒定振幅的最大偏移;4.对目标群时延的最大偏移;以及5.稳定性。
人类专家所用的常规设计过程采用标准(1)作为最优标准,而以具有预定义值的标准(2)至(5)作为约束。要检查我们的演化系统是否可以发现比人工设计更好的设计,还可以应用标准(2)至(5)作为我们的演化系统中的约束。具体来说,通过实现染色体表示法中稳定性充分条件的稳定性线性不等式来确保稳定性。在下文适当的时候将对如何在体现本发明的演化系统中实现适应度函数的详细说明作讨论。
滤波器设计的演化方法演化算法(EA)指根据自然界演化的思想和原理设计的一类基于种群的随机搜索算法。这些思想和原理包括演化策略(ES)[参见H-P Schwefal的“演化和最优化搜索”,纽约,John Wiley & Sons 1995年];演化编程(EP)[参见D.B.Fogel的“演化计算面向机器智能的新哲学”;纽约,NY;IEEE Press,1995年]以及遗传算法(GA),[参见D.E.Goldberg的“搜索、最优化和机器学习阅读中的遗传算法”MAAddison-Wesley,1989年]。所有这些算法的一个重要特征是它们的基于种群的搜索策略。种群中的个体彼此竞争并交换信息,以便执行某些任务。EA的一般框架可以通过图3来说明。
已经表明,EA尤其适用于处理大型复杂问题,可产生许多局部最优解。与传统的基于梯度的搜索算法相比,EA算法较少可能陷入局部最小值。它们不依赖于梯度信息,因此非常适合于此类信息不可获得或者获取或估算此类信息的成本非常高的问题。它们甚至可以处理没有明确的和/或具体的目标函数可供利用的问题。这些特征使它们较之许多其他搜索算法更为稳健。
染色体表示法选择每个个体的(染色体)表示对于任何EA的成功都是至关重要的。它不只定义搜索空间(连同搜索算子),而且还可以将偏置(bias)引入演化设计过程。如果我们对有关问题拥有丰富的现有知识,就可以利用此类知识推导出使搜索更有效率的某些偏置。但是,不正确的偏置会将演化搜索(evolutionary search)带入歧途。我们应该使可能通过表示法引入的强偏置最小化。因此,表示法应该满足若干条件。在本实施例中,还存在如下的附加考虑表示法必须便于发现创新设计和设计基因(design gene)。
EA中所采用的表示法必须“适用于”应用领域。更具体地来说,一个好的表示法应该将如下事宜纳入考虑完整性表示法应该能够表示所有潜在的令人感兴趣的设计;可行性此表示法下的所有基因型可以变换为可行的表现型;局部性相似的基因型产生相似的表现型;平滑性基因型中的微小变化应导致其适应度产生微小变化。
本节讨论如何用染色体(即基因型)来表示定义滤波器的传递函数。
如上所述,传递函数一般以如下两种形式之一给出滤波器的多项式或零-极点表述。因为传递函数与频率响应特征曲线之间的直接关系,可以直接对传递函数(等式2)的零-极点形式中的极点和零点进行解释当前频率附近的极点使信号放大;而零点则使信号衰减。因为极点和零点是复数,所以复数平面中的位置自然可以极坐标来表示。在这种坐标系下,角度直接指定极点或零点有效时的频率,而距原点的距离指示信号“强度”。
作为一个替代方案,还可以直接将多项式(等式1)的复数参数编码为基因型。但是,在这种表示法下,这些参数与频率响应并无“显而易见”的联系。通常不可能说参数的变化会如何改变频率响应。再者,对复参数直接编码,也无法直接测试稳定性,而采用极坐标时则是可能的。
基于极坐标的零极点表示法具有如下优点。
它可以表示所有线性IIR滤波器;如下所示,它可以确保所有表现型的可行性;使局部性(locality)保留即,相似的基因型将会有相似的频率响应;以及搜索空间相对平滑,因为基因型的变化将导致频率响应的微小变化,继而在多数情况下导致基因型的适应度的微小变化。
滤波器的传递函数可以用一系列成对的实数值数字表示,其中每对数字表示极点或零点的极坐标。一附加的实值数对用于编码比例参数bo。每对实值数被称为基因。
为了应用所指定的约束,当基因型映射到表现型(即变化函数)时,需要将极点和零点置于实轴上(即IM(z)=O),或者以共轭复数对的形式出现。所有极点必须位于单位圆内,以确保滤波器的稳定性。
例如,Np2+Np1+Nz2+Nz1+1对实值数的基因型由Np2个极点对构成基因型中的每对实值数表示一个复数极点。共轭复数极点通过基因型-表现型映射自动生成,以确保滤波器是可行的。半径可以在-1.0和1.0之间,确保稳定性。
Np1个单极点对于这些极点,忽略角度。只利用半径来确定在实轴上的位置。半径限于-1.0和1.0之间。
Nz2个零点对确定零点共轭复数对之一,则自动生成其成对者。半径可以处于-1.0和1.0之间,但是按因子RzMx在基因型-表现型映射中缩放。
Nz1个单零点忽略角度。半径处于-1.0和1.0之间,按因子RzMx缩放。
比例因子b0忽略角度。半径用于缩放多项式,它处于在-1.0和1.0之间,按因子SMax缩放。
此外,传递函数在原点可以具有N(po)个极点。下表1显示一个基因型实例,它具有两对共轭复数零点、一个单实数零点、一对共轭复数极点以及一个单实数极点。它在原点还有两个极点。如果假定零点比例因子RzMx为2.0,而总体比例因子SMax=3.0,基因型则变换为如下表现型(传递函数)H(z)=5.1×(z-(0.65+j1.67))(z-(0.65-j1.67))(z-(-0.39+j1.14))(z-(-0.39-j1.14))(z-0.4)z2×(z-(-0.40+j0.57))(z-(-0.40-j0.57))(z-0.5)]]>
零点所采用的比例因子和bo表示所有实值数字对都具有完全相同的范围半径介于-1.0和1.0之间,角度介于-π和π之间。这通常有利于在缺乏有关零点、极点之间差异和b0的特殊知识的情况下执行演化搜索。比例因子Rmax和Smax是在多次试验中固定下来的。将它们设置得最优需要一些领域知识。
搜索算子演化搜索算子的设计与染色体表示密切相关。因为基因是实值数字对,而不是单一的数字,所以需要新的搜索算子,如交叉和变异。在本技术领域中,将交叉和变异算子用于染色体表示是众所周知的。
交叉算子因为半径-角度对密切相关,故允许用交叉操作将它们分开似乎没有什么意义。因此交叉点限于这些对之间。换言之,两个父代只可能在两个基因之间交叉,而不可能在一个基因内交叉。均匀交叉(uniform crossover)和两点间交叉都已经实现,但多数试验采用的是后者。值得一提的是,所实现的均匀交叉和两点交叉算子是它们二进制对应部分的通用化版本。
变异算子因为允许的范围不同,角度变异的执行不同于半径变异。这两种情况中都用到柯西变异(Cauchy mutation)。变异算子中的比例因子p是固定的,但对角度和半径而言则有所不同。当半径变异时,搜索空间的边缘会反映该变异(例如,如果极点的当前半径为0.9且变异为+0.3,则最后为(1.0-0.2)=0.8)。当角度变异时,其值只是在±π处“反转(wrap around)”。
我们已经理解,所有极点和零点的位置之间具有高度相关性,因此使单个极点或零点变异导致改进的适应度的可能性较小。另一个方面,同时使所有值变异,似乎对基因型干扰太多。作为折衷,采用如下方法因为每个基因属于一种基因型,随机决定是否要使该基因变异。这样设置变异概率,使得每个基因型平均有2或3个基因变异。
鼓励和维持多样性当设计复杂性很高的数字滤波器时,算法需要搜索的搜索空间通常非常大。搜索空间高度相关且具有许多大的、假的、低适应度的局部最优解。天真的EA可能容易地过早收敛到局部最优解上,而难于发现可接受的结果。
为了避免过早收敛,要点在于在整个演化过程中鼓励和保持种群的多样性。利用帕瑞托优化、适应度共享和分组可以实现种群多样性。
帕瑞托适应度滤波器性能通常都是多目标的。基于帕瑞托适应度的选择方案是我们的EA的自然选择。在帕瑞托选择法中,可以采用使用任何数量的标准。仅需要在个体之间根据优势条件(domincance)建立局部等级。如果根据至少一个标准一个个体的适应度高于另一个的适应度,而根据其余的标准其适应度与另一个体的相当,则该个体控制该另一个体。一个种群通常包括许多非受控个体,它们被称为“帕瑞托前沿”。在帕瑞托前沿的个体中,不能说哪个比另一个好。
帕瑞托前沿的不同区域中的不同个体可能具有很不相同的基因型。因为它们是非受控的,所以它们应该不会彼此直接竞争。可以针对不同标准而优化的帕瑞托适应度(和选择法),使我们的EA能够探索搜索空间中的不同区域。这种方法可以在同一种群中支持不同的高适应度设计。
适应度共享虽然帕瑞托最优化可以探索搜索空间中的不同区域,但是它未将任何选择压力引入EA以增加多样性。因此多数帕瑞托最优化方案实施生境定位(niching)或适应度共享。适应度共享指用于修改个体的原始适应度,以便“类似的”个体共享适应度,即使它们的适应度降低,其中相似度测量是适应度共享技术中的关键问题。这里两个个体的相似度是通过它们之间的基因型距离来定义的。
以前的研究表明,适应度共享可以在演化过程中增加和维持种群的多样性,鼓励发现不同的个体。我们已经发现在我们的演化设计系统中适应度共享对增加和维持种群多样性起了非常大的作用。
相似度测量。基因型由若干实数对构成。每对描述复数平面中的一个点。因此可以将两个基因型的匹配点之间的欧几里德距离用作它们之间距离的量度。需要特别注意的是那些角度被忽略了的对(单极点、单零点和总的缩放比例)。在此情况中采用的是常量角度。只有基因型中位置上的点才匹配。极点和零点并不分类。如果两个个体具有相同的极点和零点,但在基因型中的顺序不同,则它们之间有很大的距离。对所有对累加该距离,从而得到两个基因型之间的总距离。
距离计算是在笛卡儿坐标系中计算的。为了减少适应度共享中的转换时间,每个基因型都缓存了极坐标的等效笛卡儿数据。
除适应度共享外,将要描述的分组也需要距离计算。
共享适应度。适应度共享根据种群中占据同一个“小生境”的其他个体的数量来修改个体的原始适应度。因为距离计算的计算成本很高,所以只将每个个体与种群中个体的少量随机样本作比较。这有点类似于隐性适应度共享。如果如上述计算得到的两个个体之间的距离低于门限距离(即小生境半径),则个体的“小生境计数”增加一个与该距离成反比的值。小生境计数通过除以已作过比较的个体的样本数归一化。
在本共享算法中,只有总的组合适应度(combined fitness)受共享影响。因为适应度的定义认为较低适应度较好,故适应度共享需要增加具有非零小生境计数的个体的适应度值。共享适应度按照适应度*(1.0+小生境计数*c8),其中c8是调整共享度的参数。我们的算法中还有其他一些参数,例如,小生境半径和从种群中抽取的样本的数目。
为了允许更大的灵活性,使组合适应度、共享适应度以及归一化的小生境计数均可供选择法利用。
每群体自适应共享。适应度共享中一个重要的参数是共享(小生境)半径。如果它太大,则太多个体落在该半径内,这样个体共享值之间只有很小的差距。如果该半径太小,则只有少数个体在该小生境半径内拥有任何其他个体也只获得有关小生境大小的很少信息。在分组演化算法的运行过程中,个体分布变化显著,从在初始种群下个体在搜索空间上均匀分布到后来个体集中到少数群体上。再者,不同的群体具有不同分布,具体视其适应度曲线(fitnesslandscape)的形状而定在某些适应度峰值区(fitness peak),个体的紧密程度远大与其他峰区。因此,根据本发明的最佳实施例,小生境半径不是固定的,而是根据当前的种群分布按群体来计算的。在每一代中,在利用该特定群体的当前半径进行共享计算之后,该群体的新半径最好计算为该群体中个体的当前平均基因型距离的0.5倍。
分组帕瑞托选择法允许位于帕瑞托前沿的个体只要是非受控的就可以共存。适应度共享可以帮助增加和维持种群多样性。这两种技术都不擅长于帮助受控个体在种群中幸存下来。
为了搜索大设计空间的不同区域并发现不同的高质量解,在多数选择方案中优选非受控个体,它们常常构成群体很大的一部分。一旦建立了帕瑞托前沿,它将控制任何进一步的搜索。
帕瑞托前沿可以具有“极端”区域,其中,根据至少一个目标,适应度极好,但是根据其他目标又非常差。它还可以具有“折衷”区域,其中,适应度根据不同目标既不非常好,也不非常差。图4显示考虑两个目标时的这样两种情况。在该附图中,极端区域为适应度1或适应度2低于1的部分。折衷区域为余下的部分。显然,我们对任何极端区域都不会感兴趣,因为根据目标之一适应度太差而不可接受。而在折衷区域有大量值得进一步探寻的潜在解。
当在我们的演化系统中采用了帕瑞托选择法和适应度共享时,种群中的具有相同零-极点配置的个体往往变化很小。单单帕瑞托选择法和适应度共享不足于得到显著不同的设计。为此,采用两阶段分组算法。在第一阶段,算法搜索很大的空间,意图在于发现尽可能多的好的“群体”。对每个群体维持独立的帕瑞托前沿,从而确保了不会有单个群体可以控制帕瑞托前沿。在第二阶段,算法在一定程度上分别对所有各群体进行单独搜索,在群体中不进行任何遗传物质的交换。
帕瑞托选择法、适应度共享得到感兴趣且有希望的结果。一个或两个将长时间维持其在最佳“组合适应度”方面优势的群体常常可以很快地发现好的解。但是,当所述一个或两个群体达到其极限而停止改善时更好的解最终会从其他群体中出现。分组不止有助于增加和维持种群多样性,还有助于发现更好的解。
帕瑞托选择法、适应度共享以及分组的一个缺点是引入了额外的计算时间。虽然为了获得更好且创新的设计,花费此时间可能是恰当的,而且花费此时间可能远比由设计人员完成相同的设计所花时间少,但仍希望尽可能减少计算时间。采用将要描述的自适应约束可以显著减少计算时间。
适应度评估适应度评估是设计中的一个难题,因为设计任务通常都是多目标的,且有时难以量化设计质量。适应度评估按三个步骤完成。第一,根据上述的映射将基因型转换为表现型。此表现型是滤波器的传递函数。第二,通过每隔一定时间间隔对传递函数取样来导出频率响应。根据频率响应计算出若干适应度值(根据不同的目标)。第三,执行适应度共享。
生成频率响应曲线该传递函数实际是两个积的商。每个积包含形式为(z-zpn)或(z-zzn)的若干项,其中zpn和zzn是由基因型推导出的极点和零点(参见等式2)。单个频率的滤波器响应可以通过计算z=ejω、和、积以及最后的商容易地计算得到。对0≤ω≤2π重复进行计算以得到频率响应。
所有计算都涉及复数。对于具有许多项的复杂滤波器,计算频率响应需要大量计算。如果考虑极点和零点要么位于实轴上要么以共轭复数对形式出现,则可以节省少量计算时间。计算工作量直接取决于计算中所用的样本数。实践中,对通带和阻带采用不同的取样率有时是合理的。样本的数量和分布(placement)对设计中的不同目标有不同的影响。一些目标(即根据这些目标的适应度值)对样本的数量和分布相当敏感,而另一些则不然。这种敏感度问题并非演化方法所独有。滤波器设计的任何其他方法同样会出现此问题,包括人类专家所进行的设计。
适应度值对应于每个带单独计算。
通带和过渡带。人类专家一般不在过渡带对滤波器的性能施加任何约束。但是,我们发现在过渡带常常出现很大的“过冲”,如图5所示。换言之,非常接近于截频频率的信号会被强烈地放大。这可能导致信号失真。因此,在我们的系统的通带的一些适应度值中包括了过渡带,即在下列的条目(1)和(3)中。
在通带和过渡带的适应度评估中计算四个值。
因此,通带和过渡带的标准如下1.通带和过渡带上与振幅1.0的最大偏差(以分贝计)在信号大于1.0的区域中。
2.振幅在允许频带之外的所有样本的总和,
为(amplitudeMaxAllowedAmplitude)4-1,]]>如果信号大于1.0,包括过渡带;为(MinAllowedAmplitudeamplitude)4-1,]]>如果信号小于1.0,排除过渡带。
3.仅仅通带上的累计平方误差,即∑(amplitude-1.0)2。
4.群时延与目标群时延的最大偏差。
5.群时延在允许频带之外的所有样本的总和,为(delay-max AllowedDelay)8-1或(min AllowedDelay-delay)8-1。
阻带 在阻带中,忽略信号的相位。对振幅要计算三个值阻带的标准如下6.通带上的最大振幅按如下公式转换成分贝并取倒数如果maxAmplitude<0.99则1/(-20×log10(maxAmplitude));否则11.455×20×(1+log10(maxAmplitude/0.99))需要第二种形式以便得到对实际上并不实现任何低通特性、但在阻带中振幅大于1.0的滤波器有用的结果。
7.振幅超过允许频带的所有样本的总和,为(amplitude/maxAllowedAmplitude)4-1。
8.阻带上的振幅的累计平方。
在所有(1至8)的情况中,值总是越小越好。该系统被实现为使“适应度”最小化。情况1至8为滤波器设计提供一组共8个标准。
组合适应度 对于多目标最优问题,很少存在最佳个体,对所有目标,该个体都比所有其他个体好。换言之,不存在可以在整个演化搜索中引导演化朝着正确方向的单个目标(准确说是适应度值)。我们需要将所有目标纳入考虑。在我们的工作中,我们已采用组合适应度值,它是根据不同适应度的值加权求和得到的。在我们的多数试验中,组合适应度函数是上述(1)、(4)和(6)项的加权和。所采用的加权系数分别为10、10和100。
父代的选择父代的选择对EA的性能有很大影响。我们的多数试验都采用如下四种方法之一来完成1.利用组合适应度的竞赛选择法(Tournament selection);2.利用共享适应度的竞赛选择法;3.利用小生境计数的基于优势条件的竞赛选择法如果一个个体是不受控的,而其他个体是受控的,则非受控个体赢得竞赛。否则,具有最小小生境计数的个体胜出;4.利用群体大小的基于优势条件的竞赛选择法同上,但利用的是同一群体的个体数而非小生境计数。
目前确信上述的2提供了种群中最佳个体质量与种群多样性之间的最佳折衷方案。
替代策略替代策略用于从所有父代和后代集合中选择要幸存到下一代的个体。这不同于上述的父代选择。我们已经在我们的演化系统中实现了若干替代策略。已发现基于群体的替代策略非常有效。
群体替代策略由四个步骤构成。在第一个步骤中,将个体分配给若干群体之一。标识非受控的个体。在接下来的两个步骤中,就哪些非受控个体将幸存到下一代作出决策。最后,用所有父代和后代集合中剩下的个体填充下一代中的剩余空缺。
分组和帕瑞托前沿的标识最近的研究表明帕瑞托最优解中精英论(elitism)的优点。在精英帕瑞托最优化中,帕瑞托前沿成员被移到外部存储器中,而无须为生存而与其他个体竞争。我们已经实现它的简易版本。在我们的例子中,帕瑞托前沿的成员仍旧是种群中的一部分,但被标记为非受控的。因此,它们多数将自动幸存到下一代。
因为分组,在我们的演化系统中,种群中会存在多个帕瑞托前沿。分组的动机是要维持多个帕瑞托前沿,使得它们不彼此竞争。
我们的替代策略的第一个步骤是确保将每个个体分配到群体之一中。群体的数量在整个运行过程中是固定的(但是,某些群体可能是空的)。算法每运行一次有三个阶段,其中,以不同的方式进行分组。
初始阶段在生成初始种群之后,利用如上计算的基因型之间的距离采用k-means分组算法对种群分组。k-means分组的结果是,为每个群体建立了一个群体中心(cluster-center)。
探索阶段此阶段的目的在于标识数量足够多的有一定机会生成感兴趣的结果的不同群体。在此阶段中,至少每隔n代(我们的多数试验中采用n=100)使种群重新进行一次分组。通过来自相同群体的父代之间的交叉或者通过单个父代变异而创建的后代将被分配到这些父代所在的相同群体中。其他后代将被分配到中心与之最接近的群体。如果到最近中心的距离大于种群中任何两个群体中心之间的最大距离的m(我们的多数试验所用m约为1.8)倍,则触发重新全面分组。此阶段持续预设次数的代(例如1000)。
利用阶段(exploitation phase)重新分组和群体间交叉可以导致一个群体的遗传物质污染另一个群体。如果此物质是非常成功的,则最后可能会导致所有群体收敛。这无助于发现不同的设计方案。因此,在利用阶段,所有群体均被冻结。交叉只允许在同一个群体的父代之间进行。不执行任何重新分组。因此,群体中就不会有遗传物质的交换。所有新的后代将从它们的父代继承群体信息。当然,通常也有可能发现在每个群体内出现非常不同的基因型。这些不同的基因型很可能填充群体帕瑞托前沿的不同区域。
在已将所有后代分配给群体之后,计算新的帕瑞托前沿。这是按群体来进行的。首先,计算后代中的非受控个体。否则,将这些个体与先前的非受控个体合并。还会对照所述的当前适应度约束对个体进行检查。
收缩帕瑞托前沿在精英帕瑞托选择法的多数实现方案中,帕瑞托前沿中的个体数量在整个运行过程中将不断增长。有必要定期从帕瑞托前沿删除一些个体,以防止前沿和种群过度增长。只要前沿中个体的数量超过预设门限,就从群体的帕瑞托前沿中删除个体。
一般来说,只要可能发现许多非常相似的个体,就应该删除个体,因为保留非常相似的个体几乎没有什么意义。为此,将所有个体进行“配对”处理将具有最小基因型距离的两个个体配对,然后将具有第二最小距离的两个个体配对,依此类推。每个个体只允许在一个这种配对中。每对中删除一个个体。重复此过程,直到足够数量的个体被删除为止。要删除的个体的数量是预设参数。
有关要删除配对中哪个个体的决策基于个体的组合适应度。较好的个体生存。收缩操作永远不会从群体中删除种群中最好的个体。
收紧约束利用帕瑞托选择法,只要适应度值差的个体不受控于任何其他个体,则它们仍可以生存。例如,最终的种群可能容易包括不允许任何信号通过的滤波器,因为它们使信号在阻带受到的抑制最大,而与同一群体中的其他滤波器大不相同。这些极端的个体可能构成帕瑞托前沿中个体的很大一部分,且将前沿中折衷区域中有希望的个体挤出去。
为个体设置某种约束以限制帕瑞托前沿中此类极端个体的数量,是很有用的。不幸的是,设置这些约束是很困难的。严格的约束将限制极端个体的数量,但是也会造成将可能的好个体排除在外的风险。为了回避这个问题,采用了自适应机制,它使约束矢量动态地适应种群中当前取得的适应度值。
每n代,通过“最终约束矢量”(FCV)收紧一次约束。该矢量具有与适应度值一样多的元素。其中的这些值是预先定义的。它们是算法运行结束时施加的约束。通常,当前的最终约束被大致设置为预期最佳个体性能的3-4倍。第二矢量,“当前约束矢量”(CCV)初始化为最差可能适应度值(极小化情况下为正无穷大)。
对于每个特定适应度标准,区分三组不同的个体具有该特定适应度最佳值的个体;具有最佳总的组合适应度的个体;以及具有该特定适应度最差值的个体。
当考虑所有适应度标准时,个体可能属于不止一组。具体地来说,对应一个适应度标准的第一组中的个体也经常属于对应另一个适应度标准的第三组。例如,在阻带中具有最佳信号衰减的个体可能在通带具有最大振幅偏差。
一般来说,第一组个体通常与第三组有联系,因为根据一个或多个其他适应度标准,这些个体通常是很差的。第二组很重要,因为它最有希望得到具有有用折衷的解。为了使演化搜索集中于第二组中的个体上,采用如下算法。
1.发现对应于每个适应度标准的最差个体。
2.对应于每个适应度标准,计算FCV中值与种群中当前最差值的商。选择最大商标准用于收紧目的。
3.根据先前步骤选择的标准对所有非受控个体进行分类。
4.标识出最差的n个个体并标记它们以备删除(n是预定义参数,例如大小为1400的种群的0.5%)。
5.将所选标准的值设置为余下最差个体所达到的值来更新CCV。
CCV用于确定哪个个体应该在帕瑞托前沿中。一个或多个适应度值比CCV中的值差的个体将被允许存在于群体中,但是不会被标记为非受控的。它将不会成为帕瑞托前沿的成员。每次运行上述算法将使CCV中的值减小。减小的速度取决于演化的进度。一旦CCV的值达到FCV中的值,则不会再进一步减小。
从群体中删除具有最佳组合适应度的个体,这是可能的。发生这种情况的可能性主要取决于每次收紧过程中删除的个体的数量。收紧的速度也很重要。收紧得快可以使演化的初始进度提高很多,但是可能删除非常有希望的个体。因为有希望的个体通常都是不同标准之间折衷的结果。它们不可能是符合任何单一标准的最佳个体,因此可能会被删除。实践中,删除少量几个个体就足够了。
约束收紧的另一种可能的效果是,特别是当群体中所有个体都具有“极端”适应度值时会将该群体中的所有个体都删除。当这种情况发生时,算法将自动增加余下群体的帕瑞托前沿的允许大小(size)。这非常有用,因为算法可以集中于剩下的群体上。从某种意义上说,在群体之间引入有限度的竞争,驱使差的群体灭绝。
受控个体将所有非受控个体作为下一代考虑之后,下一代中的任何空缺将由受控个体填补。为了确定种群中哪些个体生存,所有父代和后代的所有受控个体按照组合适应度、共享适应度或小生境计数来分类。这些个体中的最佳者幸存到下一代。
其他替代策略除所述的替代策略外,还可以采用其他策略。对于不进行分组的运行,可以采用精英帕瑞托选择方案。此选择机制是上述选择机制的简化版本。因为不采用分组,所以只维持一个帕瑞托前沿。该选择法未对适应度值施加任何约束。另一个策略是简单截尾(truncation)策略,其中,最佳个体幸存到下一代。
图6至图18显示采用所述演化系统完成的设计结果,其中,将该设计与人类专家的设计作比较以评估演化的滤波器设计的质量。
在所讨论的所有结果中,采用了通带中的300个样本,阻带中的200个样本。为进行公平的比较,采用与我们的演化系统所采用的完全相同的取样和适应度计算方法来计算人类专家的设计的适应度值。由于取样和舍入方式的原因,滤波器的计算适应度值与人类专家报告的值相近但是不完全相等。
两个测试问题两个测试问题都是低通滤波器,只是极点和零点数量、截频频率以及时延和振幅的目标不同。
问题案例1ωp=0.2,ωz=0.28,最大振幅偏差0.1分贝,最小阻带衰减43分贝,群时延=11个样本且最大偏差为0.35,阶数为15,具有7个零点对、1个单零点、2个极点对、1个单极点、10个位于原点的极点。
问题案例2ωp=0.25,ωz=0.3,最大振幅偏差0.3分贝,最小阻带衰减32分贝,群时延=9个样本且最大偏差为0.5,阶数为12,具有6个零点对、无单零点、5个极点对、1个单极点、位于原点的1个极点。
对于案例1,表示个体的基因型需要12对数字,而对于案例2则需要13对数字。当计算案例1中人工设计的适应度时,注意到振幅曲线看上去稍微太高。当b0的值从上述W.S.Lu的论文中给出的-0.00046047修改为0.000456475时,适应度值变得与该论文中所给的值很相近。相信该已公布的论文中存在打印或真正的错误。这可能是由计算频率响应时的舍入处理引起的。以下性能比较均采用经过校正的值。
演化系统的性能下表2显示设计案例1的三次运行的结果。其中列出了运行1所用的所有群体和运行2和3中的三个最佳群体的、具有最佳组合适应度的群体个体的性能。下表3显示设计案例2的相似结果。这两个表这的第一行表示W.S.Lu的论文中人类专家提出的用于评估滤波器质量的性能量度。在表2中,PbmaxAmp是通带最大振幅偏差(以分贝计);PbmaxDel是通带最大时延偏差(以样本个数计);以及SbmaxAmp是阻带中最大振幅的倒数(以分贝计)。
从表2立即可以作出多个发现。首先,运行1的20个群体中的三个是空的,这说明用于收紧约束(tightening constraints)和集中于多个有希望的群体的所述技术显然有效。
其次,每一次运行至少演化出一个优于人类专家设计的滤波器的更好设计。根据考虑了所有设计标准的组合适应度,运行1中第4和第14个群体中的最佳个体分别达到6.085和6.046的性能,好于人类专家所达到的6.293。运行2中的第4个群体和运行3中的第2个群体中的最佳个体分别达到5.702和5.760,这表示较之人工设计有9.4%和8.5%的性能提高。运行3中的第19个群体中的最佳个体也优于人工设计,虽然只是稍微优于。
第三,通过仔细检查可以看出,演化的设计彼此差异很大。例如,运行2中第4个群体中的最佳个体在通带中具有极小的最大时延偏差(0.043),而运行3中第2个群体中的个体具有非常小的通带最大振幅偏差,虽然两个设计的组合适应度值很接近。这两个实例说明演化系统在发现不同设计方面的强大功能。EA可以搜索的设计空间比设计人员所检查的要大得多。
第四,表2中只有一个演化设计(运行1中第9个群体中的最佳个体)根据其阻带性能达到较人工设计好的性能,虽然组合适应度较差。显然这说明人工设计的阻带性能0.023实在难于超过。同时,这也指出了改进演化系统的方向,即增加SbmaxAmp的权重,以便在演化搜索中对此标准予以更多重视。
表3显示第2测试问题的结果。下表3显示与表2所示相似的点。运行4和运行5都得到比人工设计好的个体,即运行4中第15个群体中和运行5中第17个群体中的最佳个体。
在产生表2和表3的结果的试验中,运行1、2和4使用表2和表3中第3至5列中的三个适应度值和组合适应度。在运行2和5中,还将平方误差(即3.5节中的标准(3)和(8))用于确定优势条件和计算约束。这些值是在整个频带上计算的,它们应该提供有关设计的更多信息,因为适应度评估中所考虑的其他值只给出与单点有关的信息。最优化平方误差还可以为EA提供发现更好结果的其它途径。
表2
表3运行1、2、4和5采用1400的种群大小运行了50000代。每个群体的帕瑞托前沿中允许最多有70个个体,缩小帕瑞托前沿之后最少为50个个体。运行3采用相同参数,不同的是运行了67000代。运行50000代在500兆赫兹的奔腾计算机上通常花费多达1.5天的时间。
图6和图7显示系统的演化过程。附图中的曲线表示种群中的最佳适应度。附图显示甚至在第50000代附近适应度仍在不断提高。看上去如果运行试验的时间越长,很可能发现更好的设计。值得一提的是,计算时间越长所得解越好并非总是正确的。仅当有足够多的种群多样性时,EA才能在其搜索过程中取得进展。由于在我们的系统中实施了帕瑞托最优化、适应度共享和分组,所以我们在本演化系统中可以使种群多样性维持在较高水平的时间较其他EA长得多。这就是如果增加遗传代数就可能有希望获得更好的性能的主要原因之一。
演化设计的实例为进行比较,图8和图9显示了人类专家设计的两个滤波器。每个附图的左边显示滤波器的响应曲线。上部分曲线是振幅。下部分曲线表示滤波器的群时延。三个垂直线显示,ω=ωp,ω=0.25,ω=ωz。振幅和时延曲线都采用线性刻度。在附图的右手边,显示了传递函数的极点和零点。极点用十字表示,而零点用圆圈表示。
图10和图16显示演化出的滤波器设计。图10和图11显示运行1中最佳(14)和次佳(4)群体中的最佳个体。图12显示运行2中最佳(4)群体中的最佳个体,图13显示运行3中最佳群体(2)中的最佳个体。可以比较零-极点图来非常容易地检验设计的不同之处。对于问题案例1,从运行1中第14个群体得到的演化设计(如10)以及从运行2中第4个群体得到的演化设计(图12)具有相似的零-极点图。图11(运行1中第4个群体的最佳个体)和图13(运行3中第2个群体的最佳个体)的零-极点图也彼此相似。但是,它们与图8所示人工设计的零-极点图的差异很大。从人类设计人员通常不会提出这种设计这种意义上说,它们确实是创新的。
针对问题案例2演化得到的滤波器更加清除地说明了不同设计的发现,其中几乎所有演化的设计(图14到图16)彼此大不相同,而且与人工设计也大不相同。图14和图15分别显示运行4中最佳和次佳群体中的最佳个体。它们分别来自群体14和20。图16显示运行5中最佳群体即群体17中的最佳个体。
演化设计与人工设计的比较图17和图18详细地将对应于问题案例1的最佳演化设计(运行3群体2)与附图中标为参考设计的人工设计进行比较。在图17中,振幅的对数刻度强调了阻带性能上的差异。演化设计明显较好。作为插入的显示内容,通带性能明显较为平缓(即很好)。
图18清楚地显示演化得到的滤波器设计在时延方面具有较好的性能。该性能完全由通带右端的值确定。因为演化得到的滤波器在该端振荡,所以它具有相当好的适应度。此图还解释样本频率和位置为什么如此重要此点处的时延具有非常陡的梯度,样本位置的任何变化都将导致该值的强烈变化。
其他试验除上述结果外,我们还采用不同选择方案和替代策略进行了其他一些试验,以便评估不同技术(包括我们自己开发的)的优缺点。例如许多试验采用了上述的“替代最差”策略。这种策略对差的个体具有非常强的选择压力,并有利快速收敛。如人们所期望的,它使计算时间较短,但是有收敛到根本不令人满意的解的风险。
当我们拥有一些相当好的人工设计时,我们已经注意到尽可能地利用人工设计中的知识,进行演化校准是有益的,不用每次从头开始演化设计。为此,我们用根据人工设计变异得到的个体对初始种群的小部分(10%)进行初始化。这一小部分变异的人工设计在没有丧失很多种群多样性的情况下将一些潜在有用的基因引入到种群中。我们的初步结果显示这种初始化可以在非常短的时间内使人工设计的性能改进10%。周密分析显示所述性能改进多数是精细调节,因为演化解趋于与人工设计相似。但是,细调某些参数会带来显著的性能增益。因为许多行业的产品需要在交付之前需要调整和校准,我们的试验研究表明EA可能是用于这种任务的非常有前景的校准和精细调节工具。
所述实施例提出一种强调发现创新和非常规设计的演化设计系统。上面以数字滤波器设计作为示例来说明演化系统如何利用诸如帕瑞托最优化、适应度共享、分组等技术来演化得到不同的滤波器。已在我们的系统中实现了几种技术并对其进行了试验。试验结果表明可以对演化计算技术有效地加以应用,以演化出与人类专家的设计大不相同的设计。演化出的设计的性能通常比人工设计好。其成功的主要原因之一是EA具有探索更大设计空间并因此发现人类设计者所忽略的设计的能力。
演化设计的一个缺点在于计算时间长。不过,虽然演化设计可能很耗时,但它使设计人员至少部分从试验和测试不同设计替代方案中解脱出来。就完成一个好的设计而言,演化设计系统所花费的时间通常比设计人员所耗费的少。
演化计算技术可以用作问题援救工具(problem saving tool)以及发现引擎。该系统演化出高质量的设计。发现和提取隐藏在所演化出的设计中的好设计可产生新的设计原理或者构件,所述构件可用于其他设计任务而无需每次回到演化系统中。
利用EA设计硬件与常规设计很不相同。演化设计是有赖于知识的(knowledge-lean)和颇具探索性的。它是对常规设计的补充,而非与之竞争。常规设计指多数设计人员所沿用的现有方法。常规设计通常采用确定性算法或程序从已建立的模型导出设计。例如,人类专家将二次规划应用于滤波器设计。
在演化设计系统中将设计问题公式化为多目标最优化问题,这样较为直截了当。虽然由于需要开发系统而使演化设计系统的建立成本很高,但系统开发出来之后运行成本较低。例如,当需要不同的滤波器时,演化设计系统只需对各种滤波器采用不同的适应度评估函数。但是,在人类专家采用的常规方法中,则可能需要为不同的滤波器开发完全不同的算法。
表4概括了硬件设计的常规方法与演化方法之间的主要不同之处和相似之处。其中一些比较结果是滤波器设计问题所特有的,故是说明性的。
表4确定目标和约束的方式可能对设计结果具有重大影响。在演化方法中,直接用适应度函数和染色体(基因型)对目标和约束进行编码。适应度函数直接衡量究竟采用什么目标,如线性振幅的最大偏差。要么使约束成为适应度函数的一部分或要么将其编码成染色体。例如,我们的染色体表示法保证演化中不会产生任何不稳定的滤波器。由此,无需任何稳定性测试。此目的的取得不会牺牲任何可行设计空间。
在滤波器设计的常规方法中,有必要使约束线性化,这实际上排除了一些稳定的设计。换言之,部分可行搜索空间被排除而未被常规方法考虑。再者,因为采取“最小最大值”形式的目标不能轻易线性化,最优化实际上是利用基于整个函数的加权最小平方误差来实现的。即,被优化的与应该优化的并不完全相同。常规算法非常可能丢失加权平方误差较大而最大误差较小的好设计。
用于实现体现所述发明方法的软件是用Java来开发的,并且该软件在体系结构上是以插件为基础构造的,它利用配置文件来指定装入哪个模块来执行操作。这允许对若干算子的不同组合进行研究。所采用的模块有两种不同类型。演化算法的基本部分是用接口来定义的,一个或多个模块被设计来实现各个接口。其他模块组只实现基本的可挂接(hookable)接口这些模块为某些已加载的挂接件(hook)登记。这些模块允许将元级算子引入算法结构。模块之间存在某种相互依赖性,例如,模块会运行必需的挂接件来激活“元级”模块。模块仅在它们被需要时实现。
Java允许所有模块对象简单地保存到文件中,以便可以保存所有运行数据。但是,在Java中,一旦对象被更改,则此数据无法重新装入。因此,将一个方法添加到类中会导致无法装入已保存的运行数据。因此,所有模块必须将它们的运行数据分别保存到文件中。当文件更改时只要数据格式不变,则仍有效。
基本模块为Loader(装入器)这实际不算是一个模块,而是唯一的固定元素。它负责装入所有模块,运行挂接件初始化,以及当需要重新启动运行时重新装入保存的数据。它允许重复运行来收集统计数据。
Loop(循环)实现基本演化算法的循环,它调用演化和选择模块,在每个循环开始和结束时运行挂接件。
GenotypeFactory(基因型工厂)创建适合所选表示法的基因型。
Population(种群)实现种群存储,它允许在种群中添加个体,从种群中删除和选择个体。目前所用的模块实现单个种群,但是分布式模块也是可能的。
ParentSelection(父代选择)负责从种群中选择父代。
Genetics(遗传)利用BinaryOperator(二进制算子)和UnaryOperator(单目算子)模块提取父代并返回后代列表。
BinaryOperator 实现一个或多个二进制遗传算子,例如交叉。
UnaryOperator 实现一元遗传算子,通常为变异。
Evaluation(评估)提取个体列表并对各个体作出评估,目前按顺序对所有个体进行评估,但分布式评估也是可能的。
FitnessFunction(适应度函数)评估过程利用它来计算单个个体的适应度。
Replacement 将当前的种群和后代组合成新一代。
Termination 如果应该终止运行,则返回“真”。
Statistics(统计)保持循环计数、种群大小、最佳和平均适应度等基本统计。
下列模块实现元级函数。
装入哪些模块取决于传递给EA装入器的特性文件。这些模块依赖于相应的挂接件,以便从基本模块中运行。
FitnessSharing(适应度共享)它在每次评估之后和每个循环之后运行,实现适应度共享。
InjectSolutions(输出解)它在创建最初的个体之后运行,输出根据已知解创建的个体。
PrintStats(打印统计数字)将统计数字打印到屏幕上。
SaveStats(保存统计数字)将统计数字保存到文件中。
SaveRun(保存运行)定期运行“saveYourself(保存自己)”挂接件以指示所有模块将它们的数据保存到文件中。
ResponsePlotter(响应绘图器)绘制最佳个体。
已参照低通数字滤波器作出了本说明书。数字滤波器设计具有若干适用演化方法的特征。多数情况下,滤波器可以利用有限的互连集合用相对少的高级元件来创建;因此可由演化算法探索的搜索空间内可能存在有用的设计。而且,无论是以仿真方式或是在硬件中测试数字滤波器均相对容易而且快速。
取决于所要设计的滤波器类型,可供利用的常规设计方法非常少。线性无反馈滤波器(linear feedback-free filter)(FIR滤波器)的设计通常是简单明了的,但对带反馈的滤波器(IIR滤波器)而言,仅有针对特定类型的滤波器的设计方法。以分析方式处理非线性滤波器几乎是不可能的,因此设计起来很困难。
最后,在如移动通信等领域中,信道特征的变化需要自适应设计。基于演化HW的滤波器可以“实时”调整滤波器的结构使之适应不同的环境。对于常规设计而言,唯一可能的调整就是更改滤波器电路的系数,一般是FIR滤波器。
相比之下,设计数学协处理器或类似装置因种种原因不大可能成为好的应用领域。一般来说,设计可能非常庞大且复杂,这意味着要搜索巨大的搜索空间。而且,因为输入的数量和内部状态的原因,测试即便可能也非常慢。同时,这使得这种任务对演化方法而言很难。
另一方面,关于如何设计单元,有大量知识可供利用,通常无需调整硬件使之适应新环境。因此,常规设计方法可能更适用于此类设计任务。
根据上述应明确,本发明的方法适用于设计硬件元件的许多其他类型。并非穷举的列表包括高阶模拟滤波器、模拟放大器、模拟电路、微波镜频干扰抑制混频器(microwave image rejection mixer)、模拟滤波器校准仪、非线性数字滤波器、数字均衡器、无损数字图像压缩。包括此列表仅是为了给出几个实例。其他许多应用也是可能的,并将由对本领域的技术人员所想到。
权利要求
1.一种采用演化算法来设计硬件硬件的方法,包括如下步骤a)给出硬件元件的初始种群;b)将所述初始种群编码为染色体;c)根据多目标适应度标准评估所述初始种群的每个个体的适应度;d)基于所述初始种群的所述适应度评估结果选择父代染色体;e)对所选择的父代染色体执行遗传操作以生成后代种群;f)从所述父代和后代染色体中选择一组新染色体,其中包括从所述父代和后代染色体形成多个群体以及形成各群体的非受控染色体的帕雷托前沿;以及g)对所述新染色体集合重复步骤c)至f)以便形成新一代,一直到满足预定终止标准为止。
2.如权利要求1所述的方法,其特征在于对所述父代和后代染色体分组的步骤包括根据基因型之间的距离形成群体。
3.如权利要求1或2所述的方法,其特征在于在n代之后执行重新分组。
4.如权利要求3所述的方法,其特征在于在所述重新分组步骤中,相同所述群体中具有单个或两个父代的后代被重新分组到所述父代的群体中,其他后代则被分配到具有最接近中心的群体中。
5.如权利要求3或4所述的方法,其特征在于经过预定次数的重新分组之后,所述群体就固定下来了。
6.如权利要求3、4或5所述的方法,其特征在于包括形成所述经过重新分组的染色体的每个群体的帕雷托前沿。
7.如上述任一权利要求所述的方法,其特征在于群体数是固定的。
8.如上述任一权利要求所述的方法,其特征在于包括当帕雷托前沿中个体的数量超过预定阈值时从所述帕雷托前沿中删除染色体。
9.如权利要求8所述的方法,其特征在于删除染色体的步骤包括使按基因型距离间隔最小的染色体配对,并删除所述配对中适应度较低的染色体。
10.如上述任一权利要求所述的方法,其特征在于包括应用收紧约束,以从所述群体的帕雷托前沿中消除染色体。
11.如权利要求10所述的方法,其特征在于所述应用收紧约束的步骤包括标识对应于所述或各适应度标准的最差个体,计算所述标识个体的最终约束矢量的值的商,以及删除具有最差商的个体。
12.如上述任一权利要求所述的方法,其特征在于所述选择父代染色体基于所述适应度标准之上的染色体的组合适应度。
13.如权利要求12所述的方法,其特征在于所述组合适应度是适应度标准的加权和。
14.如权利要求1至11中任一权利要求所述的方法,其特征在于所述选择父代染色体基于共享的适应度,其中,个体的适应度用占据一定适应度小生境的其他个体的数量作了修改。
15.如权利要求1至11中任一权利要求所述的方法,其特征在于对父代染色体的所述选择基于对非受控个体的优选,并且如果所述选择在非受控个体之间进行,则所述选择基于最小小生境计数。
16.如权利要求1至11中任一权利要求所述的方法,其特征在于对父代染色体的所述选择基于对非受控个体的优选,并且如果所述选择在非受控个体之间进行,则所述选择基于个体所属群体的大小。
17.如上述任一权利要求所述的方法,其特征在于对所述父代染色体应用所述遗传操作包括使所述父代染色体变异。
18.如上述任一权利要求所述的方法,其特征在于对所述父代染色体应用遗传操作包括使基因交叉。
19.如权利要求18所述的方法,其特征在于所述交叉包括两点交叉。
20.一种采用演化算法重新设计硬件元件的方法,包括如下步骤通过对硬件元件的染色体表示应用遗传操作,从所述现有硬件元件生成后代种群;从现有染色体和后代染色体中选择一组新染色体,其中包括形成多个染色体群体和形成各群体的非受控个体的帕雷托前沿;根据一个或多个标准评估每个个体的适应度;根据所述适应度评估结果选择父代染色体;以及重复所述的选择一组新染色体、适应度评估和选择父代的步骤,直到形成满足预定的性能标准或其他标准的一组新的后代染色体为止。
21.如上述任一权利要求所述的方法,其特征在于所述硬件元件是数字滤波器,所述染色体具有包括所述滤波器的零-极点表述的基因型。
22.如权利要求21所述的方法,其特征在于所述染色体基因型是所述滤波器的传递函数。
23.根据权利要求1至22中任一权利要求所述方法设计的硬件元件。
24.根据权利要求1至22中任一权利要求所述方法设计的数字滤波器。
25.一种计算机程序产品,当它在计算机上运行时,使所述计算机执行如权利要求1至22中任一权利要求所述的方法。
26.一种计算机程序,当它在计算机上运行时,使所述计算机执行如权利要求1至22中任一权利要求所述的方法。
27.一种采用演化算法优化设计的方法,包括如下步骤a)给出硬件元件的初始种群;b)将所述初始种群编码为染色体;c)根据多目标适应度标准评估所述初始种群中每个个体的适应度;d)基于所述初始种群的所述适应度评估结果选择父代染色体;e)对所述选择的父代染色体应用遗传操作以生成后代种群;f)从所述父代和后代染色体中选择一组新染色体,其中包括从所述父代和后代染色体形成多个群体以及形成各群体的非受控染色体的帕雷托前沿;以及g)对所述新染色体组重复步骤c)至f)以形成新一代,一直到满足预定终止标准为止。
全文摘要
设计数字滤波器等硬件元件可以通过设置滤波器的初始种群并将它们编码为染色体来最优化。然后评估每个染色体的适应度,再根据适应度标准选择父代染色体。接着利用诸如变异和交叉之类的遗传操作从后代和可选的父代集合中生成后代染色体,利用基于非受控个体的帕雷托前沿与分组的组合方法来选择幸存个体。重复此过程,直到满足终止标准。
文档编号G06N3/00GK1529873SQ02809754
公开日2004年9月15日 申请日期2002年3月13日 优先权日2001年3月15日
发明者姚新, T·施尼尔, 姚 新, 岫 申请人:马科尼英国知识产权有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1