实现遗传算法的神经网络系统的制作方法

文档序号:6452056阅读:605来源:国知局
专利名称:实现遗传算法的神经网络系统的制作方法
技术领域
实现遗传算法的神经网络系统,涉及一种遗传算法的物理实现系统,特别涉及一种基于神经网络模块的遗传算法的物理实现系统。本系统以提高遗传算法的优化计算效率为目的,属于人工智能的优化计算领域。
可见遗传算法在进行优化计算时必须反复进行许多代的进化运算,每一代由许多个体构成,对于每一个个体都必须进行适应度值计算,由于遗传算法自身这种对于种群多样性的要求和个体适应度值频繁计算的要求,造成了运行速度瓶颈,当所搜索的解空间庞大或者个体的适应度值评价函数非常复杂时,遗传算法的运行就变得非常缓慢。
针对这个问题,当前有两种研究方向1)并行遗传算法(parallel genetic algorithms)以孤岛模型(island model)和邻域模型(neighborhood model)为代表的并行遗传算法通过并行计算机或由多个数字计算机构成的计算机网络来提高遗传算法的运行速度。它将整个遗传算法的种群分成若干个子种群,由不同的计算机对每个子种群分别实行遗传算法的运算,每隔一定的进化世代数就在子种群之间进行一定量的个体交换。可见并行遗传算法只是在一定的程度上实现了遗传算法的并行化处理,在各个子种群中遗传算法的内在并行机制仍然得不到发挥,而且子种群之间的个体迁徙还会增加系统的同步和通信的负担,影响算法寻优速度的提高。总之,目前并行遗传算法的研究还远没有达到突破遗传算法速度瓶颈的目标。
2)硬件遗传算法(hardware genetic algorithm)硬件遗传算法的基本策略是采用专门的高速硬件来实现遗传算法的各种操作,从而达到提高遗传算法运行效率的目的。在目前硬件遗传算法的研究中,以FPGA为基础的硬件实现方案旨在通过硬件的高速计算性能提高遗传算法的运行速度,但此类方案的操作时钟频率受到存储器反应时间的限制。遗传算法需要大量的内存来存储群体的信息,因而该存储器瓶颈是不可避免的,而且高速存储器的使用也将使硬件遗传算法的花费昂贵。此外,硬件遗传算法还面临着编码串长度、群体规模、适应度值函数以及遗传操作算子的复杂性等方面的限制。总之,硬件遗传算法也远没有使得遗传算法的运行速度问题得到解决。
本发明的思考思路如下通常遗传算法内在的并行性为通过并行计算来提高其运行效率提供了可能。从背景技术中给出的遗传算法的流程可知,由于进化代概念的存在,遗传算法并行化处理只能以代为规模的上限,即以种群的规模作为并行处理的最大规模。同时遗传算法模拟进化的特点决定了在其并行处理方案中也一定具有反馈和迭代机制的存在。神经网络具有并行计算、信息分布存储和易于硬件实现的特点,正合乎遗传算法并行实现和硬件实现的要求,同时还有可能克服硬件遗传算法所面临的存储器瓶颈,因而可望通过神经网络实现遗传算法来克服遗传算法的运行速度瓶颈,实现遗传算法的内在并行机制,提高遗传算法的实时处理性能,从而突破遗传算法的运行速度瓶颈,扩大遗传算法的应用范围。
特别需要说明的是,以前关于遗传算法和神经网络相结合的文献都是以遗传算法为手段,以神经网络为目的,即探讨如何应用遗传算法来进行神经网络的优化和设计。本发明是反过来应用神经网络实现遗传算法。
本发明的技术方案设计结构参见见图1和图2。本系统主要由一个数字计算机(1)和实现遗传算法的神经网络模块组件(2)以及它们之间的接口组成。神经网络模块组件(2)通过不同的神经网络模块完全并行地实现遗传算法的选择、交叉、突变和个体适应度值评价等全部操作。在图2中用圆角矩形框表示的父代群体和新生子代不是一个物理的模块,而是分布存储在神经网络模块组件中的关于遗传算法当代群体的信息。本系统中由数字计算机(1)向神经网络模块组件(2)的接口将遗传算法运行的预置参数传向神经网络模块组件(2),其中,群体规模和编码长度传向初始化模块(3),群体规模还传向竞争模块(8),终止条件传向终止条件判断模块(5),交叉概率与突变概率传向遗传操作模块(7);由神经网络模块组件(2)向数字计算机(1)的接口将遗传算法每一代运行的中间结果和整个算法运行的最终结果(即图2中的父代群体)传给数字计算机(1),该结果被存储下来以便分析和显示。
本系统中,神经网络模块组件(2)完成一个反馈迭代的运算过程,图2中由个体适应度值评价模块(4)、终止条件判断模块(5)以及遗传操作模块(7)所组成的反馈回路对应于前述遗传算法完成循环过程,其中反馈迭代的次数即为遗传算法的进化代数,遗传算法中每一代遗传进化对应于本系统中的一次反馈循环。
本技术方案的特征在于,神经网络模块组件(2)在进化代的规模上通过神经网络模块完全并行地实现遗传算法的全部操作,整个系统依次包括如下工作步骤1、系统初始化;数字计算机(1)向神经网络模块组件(2)发送遗传算法的初始参数,包括群体规模m,染色体编码长度为n,作为遗传算法终止条件的最大进化代数Gmax和最大适应度值稳定代数Gmax,以及遗传算法的交叉概率和突变概率Px,Pm。其中,群体规模和染色体编码长度发送给初始化模块(3),终止条件发送给终止条件模块(5),交叉和突变概率发送给遗传操作模块(7),并保存在神经网络模块组件(2)的各个子模块中。在遗传算法的每一代和整个优化计算终止时,计算机(1)还将从神经网络模块组件(2)中读取有关当前群体的最优值、平均值以及最小值等有用的信息并显示出来。
2、群体初始化;群体初始化模块(3)接受来自计算机(1)的群体规模和染色体编码长度信息输入后,随机地产生遗传算法的原始(第零代)群体编码。
在本系统所实现的二值编码遗传算法中,群体初始化模块3随机产生m个长度为n的0-1编码个体(染色体)如下P0={C(1)|i=1,2,…,m}(1)C(i)=(c1(i),c2(i),…,cn(i))-----(2)]]>其中,cj(i)∈{0,1}]]>为第i个染色体的第j个基因编码。
在本系统所实现的实数编码遗传算法中,个体采用归一化实数编码,初始化模块随机产生m个长度为n的介于0-1之间的第0代群体的归一化实数编码如下P0={C(i)|i=1,2,…,m}(3)C(i)=(g1(i),g2(i),…,gn(i))-----(4)]]>其中,gj(i)∈
]]>为第i个染色体第j个基因的编码。
3、适应度值评价;适应度值评价模块(4)接受来自群体初始化模块(3)的群体编码信息输入,进行译码并对第零代群体进行译码和个体适应度值评价;遗传算法是由评价函数驱动的一类优化算法,其评价函数因具体的问题而异。因为三层前向神经网络已被证明可以逼近任意的适应度值评价函数,所以在本系统中采用针对具体问题训练的多层感知器(Multiple Layer Perceptron,MLP)作为适应度值评价子模块(4)。适应度值评价模块(4)由m个MLP组成,每个MLP完成对一个个体的适应度值计算。一个MLP由三层神经元构成(见图3),在输入层有n个输入节点,对应于一个个体的n维编码向量;中间隐层的节点数视具体的评价函数而定;输出层只有一个输出节点,输出所评价个体的适应度值。
对每一个个体的译码公式如下Vi=(Vi,max-Vi,min)×gi+Vi,min(5)其中,Vi为gi所编码的变量值,Vi,max为第i个自变量定义域的上限,Vi,min为第i个自变量定义域的下限。
适应度值评价模块(4)将群体的评价值输出到竞争模块(8),并将最优的适应度值输出到终止条件模块(5)。此外,计算机(1)还从本模块中读取当前代的最大、平均和最小适应度值记录。
4、终止条件判断;终止条件判断模块(5)接收来自适应度值评价模块(4)的当前代最优适应度值和来自竞争模块(8)的遗传算法当前进化代信息,并以此判断当前代群体是否满足算法终止条件,如果满足,则向计算机输出优化结果,否则,以当前代群体作为父代群体,继续下一步操作。
终止条件判断模块(5)由两个公知的比较器和计数器组合构成(见图4),分别完成两类终止条件的判断第一个组合由比较器和计数器各一个组成,计数器A对整个系统的反馈迭代次数(即遗传算法的进化代数)计数,比较器A则对计数器A的计数和预先设定的最大进化代数Gmax进行比较,如果两者相等则模块输出为1。这里实现的是遗传算法的最大代数终止条件判断。另一个组合由两个比较器和一个计数器组成,比较器B比较当前代的最大适应度值和上一代的最大适应度值,如果两者不等,计数器B清零,否则计数器B加1。比较器C将计数器B的计数(即遗传算法寻优过程中最优值稳定的代数)和预先设定的最大适应度值稳定代数Gmax进行比较,如果两者相等则模块输出为1。这里实现的是遗传算法的最大适应度值稳定代数终止条件,即指定如果遗传算法的寻优值经过多少代不变则算法终止。
终止条件判断模块(5)中的输入有三个来源最大进化世代数和最优值稳定的最大世代数由计算机(1)给定;遗传算法的实际进化代数从竞争模块(8)读入;本代和上代的最优值从评价模块(4)中读入。上述两个比较器和计数器组合的输出是或的关系,当满足上述两个条件之一时,模块输出为1,遗传算法运行终止,计算机(1)将从神经网络模块组件(2)中读取遗传算法的优化计算结果并显示出来。
5、权值计算;权值计算模块根据父代群体中个体的代龄计算遗传操作模块(7)中的连接权值矩阵,为实现遗传算法的赌盘选择操作提供依据,同时作为决定每一个在交配竞争中获胜的父代个体对其子代贡献的大小的依据。权值模块(6)接受来自竞争模块(8)的父代群体中个体信息(是上一代在生存竞争中的幸存者还是新生的个体),并以此计算群体在交叉操作模块中所对应的连接权值。本模块是一个多输入多输出的多层前向神经元网络(见图5),它通过改变遗传操作模块(7)的连接权值矩阵(12)决定父代个体对其子代贡献大小,该权值还被作为遗传操作模块(7)中交配竞争的依据,从而实现遗传算法的赌盘选择操作。依据个体代龄的权值计算公式如下Wi=(Gageig/ΣGageig)*rand(0,1)-----(6)]]> 其中Gageig为第g代中个体i的代龄,age0为新生个体的代龄,age1为生存竞争中幸存者的单位代龄增加量,rand(0,1)用于在交配竞争中引入一定的随机因素,实现赌盘选择操作。
因为适应度值高的个体将存活得更久,从而具有更高的代龄,所以代龄可以用来作为个体交配竞争的依据,并且在多父辈交叉操作中决定其对于子代个体贡献的大小。基于代龄的选择操作具有以下两个优点其一,可以象在神经网络中通常所采用的那样,在两个连续代的权值矩阵之间建立起明确的计算关系,W(t+1)=f(W(t)),而基于个体适应度值的选择操作则做不到这一点;其二,适应度值较高的个体的代龄将随着进化计算的过程逐渐增加,从而可以有效地避免由于超级个体的存在而导致的遗传算法的早熟现象。这是基于个体适应度值的选择操作所做不到的。
权值计算模块(6)的输入为经竞争模块(8)选择之后的参与遗传操作的父代群体的代龄;其输出权值矩阵一方面将被输出到遗传操作神经网络模块(7)的交叉操作子模块(9)中作为交配竞争的依据,另一方面将被输出到交叉操作子模块(9)中作为该模块输入层神经元到交叉操作层神经元的连接权值(12),从而确定每一个在交配竞争中获胜的父代个体对其子代贡献的大小。
6、遗传操作模块;遗传操作模块(7)根据权值矩阵完成父代群体的交配竞争,并由这些竞争获胜的父代个体完成遗传算法的多父辈交叉和多基因突变操作,产生子代群体的编码;遗传操作模块(7)包括多父辈交叉(9)和多基因突变(10)两个子模块,它接收来自经竞争模块(8)淘汰之后的父代群体编码信息输入,实现遗传算法的交叉和突变操作,并输出子代群体的编码到评价模块(4);每个遗传操作单元模块(7)产生一个子代个体。在本系统中我们提出了实现多父辈交叉操作和多基因突变操作的神经网络结构(见图7、8)以及相应的人工神经元模型(见图9、10、11、12)。每个遗传操作单元模块(7)产生一个子代个体,因而系统中遗传操作单元模块(7)的数量与遗传操作所产生新个体的数量相同。图7为产生一个子代个体的多父辈交叉单元模块的网络结构图。多父辈交叉操作模块(9)为一个三层的网络结构,网络的输入层具有m×n个输入节点,当系统产生的随机数小于由计算机(1)给定的交叉概率时,输入经过竞争模块选择过的父代群体编码;中间层由一个m输入m输出的竞争子模块控制m个开关的通断,用于根据个体的代龄和随机因素的作用从全部m个父代个体中选择k∈[2,m]个个体进行繁殖,完成交配竞争功能。输出层由多父辈交叉神经元组成,完成遗传操作并将新个体的n位基因编码输出到多基因突变子模块(10)。
在本系统的多父辈交叉操作模块(9)中,整个群体的每一个个体都根据其代龄大小和随机因素的作用或多或少的对其后代做出贡献。所产生的后代个体虽然只有一个,却可能综合了整个父代所有个体的信息,因而有可能获得更好的解空间搜索效果。图9为二值编码遗传算法多父辈交叉操作神经元,它完成如下操作 Y(i)=sign(Σj=1mW(j)*Zj(i))-----(9)]]>其中,Xj(i)为第j个父代个体的第i位基因编码,W(j)为第j个父代个体在遗传操作模块(7)中的权值,Y(i)为遗传操作产生的子代个体的第i位基因编码,i={1,2,…,n},j={1,2,…,m}。
本系统还提出实数编码遗传算法多父辈算术交叉操作的神经元(14)如图11所示。在通常遗传算法中算术交叉操作都在两个父代个体之间进行,本系统将该操作拓展到多父辈的情形,并将算术交叉操作的随机参数α(这里记为λ)与基于父代个体代龄的权值相联系。设k为参与繁殖的父代个体的数目,Ckp=(g1kp,…,gikp)]]>为第七个父代个体的染色体编码, 为第k个父代个体的第i位基因编码,则交叉操作神经元(14)完成多父辈算术交叉操作并产生子代个体的染色体编码如下offs.C=(offs.g1,…,offs.gn) (10)gioffs.=(Σj=1kλj·gijp)mod1-----(11)]]>λj=Wj/Σj=1kWj-----(12)]]>其中, 分别表示个体的编码长度和参与交叉操作的父代个体的数目,λ为一组系数,Σj=1kλj=1,]]>Wj为根据参与繁殖的父代个体的代龄所计算出的连接权值矩阵(12),模运算用于确保子代个体中每一位基因的实数编码在归一化范围
之间。
当系统产生的随机数小于由计算机(1)给定的突变概率时,突变模块对于来自交叉模块的新个体进行突变操作。图8为产生一个子代个体的多基因突变操作单元模块(10)的网络结构图。在本系统的多基因突变操作中,突变操作可能在染色体的任何一个位点上发生。由于多基因突变操作能够同时在多个维数上改变个体的编码,因而可以更为高效的跳出局部极小,从而获得更好的探测效果。突变操作单元模块(10)的输入为交叉操作模块(9)所产生的新个体编码,其输出为整个遗传操作所产生的子代个体编码,该子代个体编码被输出到评价模块(4)进行适应度值计算,如果该子代个体不在生存竞争中被竞争模块(8)所淘汰的话,其编码还将被输出到遗传操作模块(7)作为下一个父代群体的一员。
图10为二值编码多基因突变神经元(14),它通过随机生成一个n位0-1码串r作为掩码,根据掩码某一位上1或0的取值确定个体编码相应位上的值取反或保留原值不变,从而达到多基因突变的目的。即 鉴于非均匀突变操作能够随着遗传操作代数的增加而缩小其搜索的区域,实现局部微调,是最能体现实数编码遗传算法优势的算子之一,在本系统中还提出了实现多基因非均匀突变操作的神经元(15)(见图12),该神经元首先生成一个n位0-1码串r作为掩码,根据掩码某一位上1或0的取值确定个体编码相应位上的值取反或保留原值不变,从而达到多基因突变的目的。其突变操作如下 Δ(t,y)=y·(1-q(1-t/gmax)b)-----(16)]]>其中,pgi和offs.gi分别为父代和子代个体的第i位基因编码,τ∈{0,1}为一个随机数,q为一个0-1之间的随机数,t为遗传算法的当前代数,gmax为遗传操作的总代数,b为用户指定的系数。
在本系统中,一次交叉操作的主体可以遍及整个种群,交叉操作的位点遍及个体的每一个基因。即一次交叉操作在整个群体的范围和整个染色体的长度上进行,最终产生一个子代个体。有关研究表明,多父辈交叉操作能较明显的提高遗传算法的性能。本系统将多父辈交叉操作的范围拓展到整个父代群体的每一位基因编码,同时将突变算子的操作位点拓展到个体的整个编码长度。对于二值编码遗传算法而言,扫描交叉(Scanning Crossover)算子和单点突变算子是本系统中遗传操作算子的子集,对于实数编码遗传算法而言,算术交叉算子和非均匀突变算子是本系统中遗传操作算子的子集。如果将二值编码遗传算法多父辈交叉操作中每个个体的权值系数设定为1,将多基因突变算子的操作位点限定为1,则该操作将退化为扫描交叉操作和单点突变操作;如果将多父辈交叉操作中的K值固定为2,将多基因突变算子的操作位点限定为1,则该操作将退化为算术交叉操作和单点非均匀突变操作。因此本系统至少可以获得与普通遗传算法相同的寻优质量。
7、适应度值评价模块对子代群体进行译码和个体适应度值评价;该步骤与第3)步相似,将子代群体的编码从遗传操作模块(7)输出到评价模块(4),分别计算其个体适应度值并将个体的适应度值输出到竞争模块(8)。
8、竞争模块;竞争模块(8)接受来自评价模块(4)的父代群体和子代群体的适应度值信息,竞争模块实现实现父代群体和子代群体之间的生存竞争,从而形成新一代群体,输出群体生存竞争的结果。
本模块采用公知的K-MAXNET特殊神经元网络,其原理见图13。它通过所有神经元的完全互联(包括自联)和侧抑制机理实现赢家通吃(Winner-Take-All,WTA)的策略,使得具有最大输入值的一个神经元输出为1,其余的输出为0。K-MAXNET是其推广形式,它能从全部N个输入值中选择出K个最大值。遗传算法生存竞争的依据是个体的适应度值。设L为参与竞争的子代群体规模,则本模块的输入输出节点数均为m+L,其输入为参与竞争的父代和子代群体的适应度值;模块的参数K固定为m,即选择m个适应度值最大的个体组成下一代;模块的输出为m个1和L个0,分别对应于m个存活的个体和L个被淘汰的个体。或者表述如下设第t进化代时参与生存竞争的群体适应度值集合为Et=Etp∪Eto---(17)]]>其中,Etp(i),i={1,2,…,m}]]>为父代群体的适应度值集合,Eto(i),i={1,2,…,L}]]>为遗传操作所产生的新群体的适应度值集合,则K-MAXNET竞争模块(8)的输入和输出分别为X(i)=Et(i),i={1,2,…,m+L} (18)Y(i)=St+1(i)∈{0,1},i={1,2,…,m+L}其中,St+1具有m个1和L个0。对于i,j∈[1,m+L],有if St+1(i)=1,St+1(j)=0, (19)thenEt(i)≥Et(j).即选择适应度值较高的m个个体成为新的父代群体,其余的被淘汰。
竞争模块(8)的输入为来自评价模块(4)的参与竞争的父代群体和子代群体的适应度值,其输出为由0、1表示的竞争结果生存或淘汰。该输出将决定父代群体和子代群体中有哪些个体的编码能够作为遗传操作模块(7)的输入。
9、重复第4到第8步操作,直到满足算法的终止条件后,由计算机(1)从神经网络模块组件(2)中读取优化计算结果并输出显示。
本发明具有如下的技术效果1.本系统兼具并行实现和硬件实现两方面的优势并弥补其各自的不足。遗传算法模拟生物进化的迭代计算的特点决定了遗传算法代与代之间的进化计算只能依次进行,所以并行计算只能在每一个进化代之内实现。我们的系统正是在整个进化代的基础上实现遗传算法的并行计算,因而是遗传算法最大限度的并行实现,克服了并行遗传算法在各子种群内并行化程度不够以及由于子种群间个体迁徙所带来的通信和同步负担的缺点。此外,神经网络信息分布存储和容易硬件实现的特点也使得我们的系统可以容易地通过硬件实现,从而克服了硬件遗传算法造价昂贵和存储器瓶颈等缺点。
2、本系统可以大幅度的提高遗传算法的运行速度和效率。本系统将因为神经网络模块的硬件实现带来运行速度的大幅度提高。更为重要的是,在遗传算法的实现中,繁殖子代个体的所有遗传操作包括选择、交叉、突变和适应度值评价等对于每一个新个体都得依次进行,而在本发明的方案中,整个进化代中的所有遗传操作都可完全并行地完成,即在本系统中整个群体的繁殖操作用时与单个个体的繁殖操作用时相同。仅此一项,本系统的计算效率就将相对于同等硬件运行速度的硬件遗传算法实现方案提高种群规模倍,所需的时间开销约为同等硬件条件的遗传算法实现方案全部计算时间的种群规模大小分之一。不计算法运行的其他开销,在本系统中遗传算法一次运行的计算时间为T≤T1×Gmax≈TG4×1Psize-----(20)]]>其中,T1为繁殖单个子代个体的计算时间,Gmax为最大进化计算的代数,Psize为种群规模。通常情况下,种群的规模为数十或数百,也就是说,本系统将使得遗传算法相对于同等硬件运行速度条件下的硬件遗传算法实现方案的优化计算速度提高1-2个数量级。
3、在本系统中采用受训练的多层感知器作为适应度值适应度值评价模块(4),当更换不同的适应度值评价模块时,整个系统立即变成一个新的优化问题解决者,因此本系统具有很好的柔性,拓宽了遗传算法的应用领域,并使得遗传算法从一种算法变成为一个机器。
4、本系统实现多父辈交叉操作和多基因突变操作,多父辈交叉操作已被许多研究者证明具有较两父辈的交叉操作更好的优化性能,因此本系统反映了遗传算法研究领域的最新研究成果,可以取得比普通遗传算法更好的优化质量。


图1本发明的系统方框图;初始化信息如种群规模、终止条件、交叉突变概率等由计算机(1)输出到神经网络模块组件(2);遗传算法的中间计算结果和最终结果包括种群的进化代数、最优个体等由神经网络模块组件(2)输出到计算机(1);图2完成遗传算法全部操作的神经网络系统方框图;输入为来自计算机(1)的遗传算法初始化信息;输出遗传算法的中间计算结果和最终结果到计算机(1);图3适应度值评价模块的神经网络结构图;输入来自群体初始化模块(3)或遗传操作模块(7),输出到竞争模块(8);图4是终止条件判断模块的结构图;输入遗传算法进化代数来自于竞争模块(8)的竞争次数(进化代数),最大世代数和最大优化值稳定世代数来自计算机(1),本代和上代的最优值来自评价模块(4);输出算法终止与否的信息,用于控制将神经网络模块组件(2)的优化结果输出到计算机(1);图5是权值计算模块的神经网络结构图;输入来自评价模块(4),输出到遗传操作模块(7);图6是遗传操作模块的方框图;输入包括父代群体信息,来自初始化模块(3)或竞争模块(8)选择之后的结果,权值矩阵W来自权值模块(6);输出到评价模块(4);图7为多父辈交叉模块的网络结构图;输入包括父代群体编码来自初始化模块(3)或遗传操作模块(7),权值矩阵W来自于权值模块(6);输出到突变模块(10);图8为多基因突变模块的网络结构图;输入为来自交叉模块(9)的个体编码和随机产生的掩码,输出子代个体编码到评价模块(4);图9为二值编码的多父辈交叉操作神经元;输入为父代群体的当前位编码,来自初始化模块(3)或竞争模块(8)之后选择的结果,输出为子代个体的当前位编码,输出到突变模块(10);图10为二值编码的多基因突变操作神经元;输入来自交叉模块(9),输出到评价模块(4);图11为实数编码的多父辈交叉操作神经元;输入来自初始化模块(3)或竞争模块(8)选择之后的结果,输出到突变模块(10);图12为实数编码的多基因突变操作神经元;输入来自交叉模块(9),输出到评价模块(4);图13为k-MAXNET竞争网络;输入来自评价模块(4),输出用于控制父代群体的构成,改变遗传操作模块(7)的输入;图14为大海捞针测试函数的解空间曲面图;图15和图16分别为本发明和普通遗传算法对于大海捞针函数的20次优化计算结果的对比;图17为遗传算法的一般流程图。
具体实施例方式本实施例中以本系统优化经典测试函数大海捞针函数(Needle-in-a-Haystack)的过程为例来说明本系统的工作过程。大海捞针函数要求寻优极大值点,其解空间地形(Landscape)如图14所示,在定义域四角各有一个局部极大值点y=2748.78,中间唯一的全局极大值点ymax=f(0,0)=3600被无数的全局极小值点孤立包围在一个很小的区域之内,这使得该全局极大值点很难寻优,因而该函数被广泛的用于检验算法的寻优能力。鉴于大海捞针函数的解空间地形在其中央区域变化剧烈,在该区域内的寻优要求有较高的精度,本例采用实数编码遗传算法,并将遗传算法的参数设定为交叉概率0.80,每位编码的突变概率0.01,群体规模20,终止条件为最多进行20000次个体适应度值评价,算法重复运行20次。为了准确地评价算法的寻优质量,我们定义了两个性能指标,它们分别为最慢寻优速度和寻优成功率,其中最慢寻优速度为在N次重复试验中算法首达(逼近)全局最优值的最大进化代数,寻优成功率为在N次重复试验中算法找到全局最优值的次数占总试验次数的百分比。算法逼近全局最优值表征为在一次试验中,算法的寻优值As与函数全局最优值Fop之差的绝对值占函数值域的百分比小于某一个预先给定的范围Er=(|Fop-As|/‖y‖)×100%≤ε=0.001(21)本系统的具体实施过程如下
第一步,由图1中的数字计算机(1)向神经网络模块组件(2)设定遗传算法运行的参数包括群体规模20,染色体编码长度为2,交叉概率0.80,每位编码的突变概率0.01,终止条件为最多进行20000次个体适应度值评价,系统重复运行的次数为20。其中,群体规模和染色体编码长度发送给初始化模块(3),终止条件发送给终止条件模块(5),交叉和突变概率发送给遗传操作模块(7);第二步,由图2中的种群初始化模块(3)随机地产生20个原始(第零代)群体编码并由适应度值评价模块(4)计算其适应度值,得到群体编码和相应的适应度值见表一,并由图1中的神经网络模块组件(2)向数字计算机(1)输出当前代的群体信息(个体的编码和适应度值);第三步,由图2中的终止条件模块(5)判断是否满足算法终止条件,因不满足条件,转下一步;第四步,由图2中的权值模块(6)根据父代群体的代龄计算群体中每一个个体在遗传操作模块(7)中所对应的连接权值矩阵W如表二所示;第五步,产生随机数,如果该随机数小于在第1步中给定的交叉概率,则由图2中的遗传操作模块(7)根据权值矩阵W完成交配竞争,对在交配竞争中获胜的父代个体进行多父辈算术交叉操作。再次产生随机数,如果该随机数小于在第1步中给定的突变概率,则由突变操作模块(10)对交叉操作产生的新个体完成多基因非均匀突变操作。上述操作共产生20个子代个体编码,并由图2中的适应度值评价模块(4)计算其适应度值如表三所示;
第六步,根据该适应度值由竞争模块(8)完成父代群体与子代群体之间的生存竞争,优胜劣汰,形成新的父代群体如表四所示,并由图1中的神经网络模块组件(2)向计算机(1)输出算法当前的中间结果;对比原始的第零代群体和目前形成的第一代群体可知,在这一次生存竞争中共更新了10个个体的编码,即第零代中有10个适应度值较低的个体被第一次遗传操作所产生的子代中相对较优秀的10个个体所取代,它们分别是第1、4、5、6、8、11、13、14、19和20号个体;第七步,由图2中的终止条件模块(5)判断是否满足算法终止条件,因不满足条件,重复第三步至第七步操作直至满足算法的终止条件;第八步,由图1中的神经网络模块组件(2)向数字计算机(1)输出算法的最终寻优结果并显示。在本次算法运行的第350进化代,本系统成功地逼近大海捞针函数的全局极大值点,其寻优所得的全局最优值为f(-0.0000000051242219,0.0004263378393965)=3599.9738261334442000;第九步,重新向神经网络模块组件(2)发送初始化参数,重复上述第一步到第七步的操作,直至完成在数字计算机(1)中预设的系统重复运行次数,最终在数字计算机(1)中显示系统运行的结果。
本系统对于大海捞针测试函数所进行的20次寻优结果如图15所示。在这20次重复试验中,本系统的寻优成功率为100%,最慢寻优速度为650进化代。作为对比试验的普通遗传算法的20次重复试验结果如图16所示,显而易见,普通遗传算法的这两个衡量指标都不及我们的系统好。由此可见本系统的寻优效果非常理想,试验结果充分说明了本系统的寻优能力,这是由于本系统采用了多父辈交叉操作和多基因突变操作的结果。
必须指出的是,在图15和图16的优化曲线图中,横坐标均采用的是遗传算法的进化代数,侧重于体现本系统在收敛性能方面与普通遗传算法的比较,也就是说重点在寻优质量方面的比较。关于本系统相对于遗传算法的软件实现在计算速度方面的提高因子已经在关于发明效果的部分指出,不计因为神经网络硬件实现所带来的速度提高因素,本系统将比软件实现方案的速度提高遗传算法的种群规模倍,具体到本实施例而言,仅仅由于本系统的完全并行性,本系统的运行速度将比同等条件下的其他实现方案快20倍。表一第0代群体的编码和适应度值

表二第零代群体所对应的权值矩阵

表三第0代群体经遗传操作所产生的子代群体编码及评价值

表四第0代群体及其子代群体经过生存竞争所产生的第1代父代群体

权利要求
1.一种实现遗传算法的神经网络系统,本系统主要由一个数字计算机(1)和实现遗传算法的神经网络模块组件(2)以及它们之间的接口组成,它是由数字计算机(1)设定遗传算法的全部初始参数,并通过与神经网络模块组件(2)的接口将遗传算法运行的预置参数传向神经网络模块组件(2),然后由神经网络模块组件(2)以群体规模并行实现全部遗传操作,并通过与数字计算机(1)的接口将遗传算法每一代运行的中间结果和整个算法运行的最终结果传给数字计算机(1),由计算机(1)将系统优化计算的结果存储下来进行显示,本发明的特征在于,神经网络模块组件(2)在进化代的规模上通过神经网络模块完全并行地实现遗传算法的全部操作,整个系统依次包括如下工作步骤1)系统初始化;数字计算机(1)向神经网络模块组件(2)发送遗传算法的初始参数,包括群体规模m,染色体编码长度为n,作为遗传算法终止条件的最大进化代数Gmax和最大适应度值稳定代数Gmax,以及遗传算法的交叉概率Px和突变概率Pm,其中,群体规模和染色体编码长度发送给初始化模块(3),终止条件发送给终止条件模块(5),交叉和突变概率发送给遗传操作模块(7),并保存在神经网络模块组件(2)中;2)群体初始化;群体初始化模块(3)接受来自计算机(1)的群体规模和染色体编码长度信息输入后,随机地产生遗传算法的原始(第零代)群体编码;3)适应度值评价;适应度值评价模块(4)接受来自群体初始化模块(3)的群体编码信息输入,进行译码并对第零代群体进行译码和个体适应度值评价;适应度值评价模块(4)将群体的评价值输出到竞争模块(8),并将最优的适应度值输出到终止条件模块(5);4)终止条件判断;终止条件判断模块(5)接收来自适应度值评价模块(4)的当前代最优适应度值和来自竞争模块(8)的遗传算法当前进化代的信息,并以此判断当前代群体是否满足算法终止条件,如果满足,则向计算机(1)输出优化结果,否则,以当前代群体作为父代群体,继续下一步操作;终止条件判断模块(5)的输出到遗传操作模块(7);终止条件判断模块(5)中的输入有三个来源最大进化世代数和最优值稳定的最大世代数由计算机(1)给定;遗传算法的实际进化代数从竞争模块(8)读入;本代和上代的最优值从评价模块(4)中读入;5)权值计算;权值计算模块(6)根据父代群体中个体的代龄计算遗传操作模块(7)中的连接权值矩阵,为实现遗传算法的赌盘选择操作提供依据,同时作为决定每一个在交配竞争中获胜的父代个体对其子代贡献的大小的依据;权值计算模块(6)的输入为经竞争模块(8)选择之后的参与遗传操作的父代群体的代龄,其输出的权值矩阵一方面将被输出到遗传操作神经网络模块(7)的交叉操作子模块(9)中作为交配竞争的依据,另一方面将被输出到交叉操作子模块(9)中作为该模块输入层神经元到交叉操作层神经元的连接权值(12);6)遗传操作;遗传操作模块(7)根据权值矩阵完成父代群体的交配竞争,并由这些竞争获胜的父代个体完成遗传算法的多父辈交叉和多基因突变操作,产生子代群体的编码;遗传操作模块(7)包括多父辈交叉(9)和多基因突变(10)两个子模块,它接收来自经竞争模块(8)淘汰之后的父代群体编码信息输入,实现遗传算法的交叉和突变操作,并输出子代群体的编码到评价模块(4);每个遗传操作单元模块(7)产生一个子代个体,系统中遗传操作单元模块(7)的数量与遗传操作所产生新个体的数量相同;7)适应度值评价;适应度值评价模块(4)对子代群体进行译码和个体适应度值评价;该步骤与第3)步相似,将子代群体的编码从遗传操作模块(7)输入到评价模块(4),分别计算其个体适应度值并将个体的适应度值输出到竞争模块(8);8)生存竞争;竞争模块(8)接受来自评价模块(4)的父代群体和子代群体的适应度值信息,竞争模块实现实现父代群体和子代群体之间的生存竞争,实现优胜劣汰,从而形成新一代群体;9)重复第4)到第8)步操作,直到满足算法的终止条件;前述的神经网络模块组件(2)中用圆角框表示的父代群体和新生子代不是物理的模块,而是分布存储在神经网络模块组件中的关于遗传算法当代群体的信息。
2.根据权利要求1所述的实现遗传算法的神经网络系统,其特征在于,在本系统中采用由m个针对特定的评价函数训练过的多层感知器(Multiple LayerPerceptron,MLP)组成的MLP族作为适应度值评价模块(4),每个MLP子模块完成对一个个体的适应度值计算,由于采用自变量的归一化编码,对每一个个体的译码公式如下Vi=(Vi,max-Vi,min)×gi+Vi,min(1)其中,Vi为gi所编码的变量值,Vi,max为第i个自变量定义域的上限,Vi,min为第i个自变量定义域的下限。
3.根据权利要求1所述的实现遗传算法的神经网络系统,其特征在于,终止条件判断模块(5)由两个公知的比较器和计数器组合构成,分别完成两类终止条件的判断第一个组合由比较器和计数器各一个组成,计数器A对整个系统的反馈迭代次数(即遗传算法的进化代数)计数,比较器A则对计数器A的计数和预先设定的最大进化代数Gmax进行比较,如果两者相等则模块输出为1;这里实现的是遗传算法的最大代数终止条件判断;另一个组合由两个比较器和一个计数器组成,比较器B比较当前代的最大适应度值和上一代的最大适应度值,如果两者不等,计数器B清零,否则计数器B加1;比较器C将计数器B的计数(即遗传算法寻优过程中最优值稳定的代数)和预先设定的最大适应度值稳定代数Gmax进行比较,如果两者相等则模块输出为1;上述两个比较器和计数器组合的输出是或的关系,当满足上述两个条件之一时,模块输出为1,遗传算法运行终止。
4.根据权利要求1所述的实现遗传算法的神经网络系统,通过权值计算模块计算并确定交叉操作模块中输入层神经元到交叉操作神经元的连接权值矩阵,其特征在于,采用了基于个体代龄的权值计算公式Wi=(Gageig/ΣGageig)*rand(0,1)]]> 其中Gageig为第g代中个体i的代龄,age0为新生个体的代龄,age1为生存竞争中幸存者的单位代龄增加量,rand(0,1)用于在交配竞争中引入一定的随机因素,本模块为实现遗传算法的赌盘选择操作提供了依据。
5.根据权利要求1所述的实现遗传算法的神经网络系统,其中实现遗传算法的遗传操作模块的特征在于,设计了实现选择、交叉和突变操作的神经网络模块,实现了遗传算法的赌盘选择操作、二值编码遗传算法的多父辈交叉和多基因突变操作以及实数编码遗传算法的多父辈算术交叉和多基因非均匀突变操作,其具体的计算步骤如下1)在交叉操作模块(9)的竞争层中通过一个竞争网络子模块实现父代群体的交配竞争,该竞争子模块的输入为权值网络计算出的权值矩阵,输出用于控制交叉操作模块中从输入层到交叉操作层的m个开关的通断,即根据种群的权值矩阵决定每一个父代个体参与交叉操作与否,从而实现了遗传算法的赌盘选择操作;在本系统中,参与每一次交叉操作的父代个体数量在2到群体规模之间随机确定;2)在交叉操作模块(9)中从输入层每个输入节点到交叉操作层每个神经元的连接权值W由权值计算模块(6)在每一代从外部注入,通过该连接权值的改变,系统实现每一个参与交配的父代个体对于其子代个体贡献大小的改变;3)在交叉操作模块(9)和突变操作模块(10)中分别设计了二值编码遗传算法的多父辈交叉操作和多基因突变操作神经元以及实数编码遗传算法的多父辈算术交叉和多基因非均匀突变操作神经元,并由这些神经元分别实现相应的遗传操作如下二值编码遗传算法多父辈交叉操作为, Y(i)=sign(Σj=1mW(j)*Zj(i))]]>其中,Xj(i)为第j个父代个体的第i位基因编码,W(j)为第j个父代个体在遗传操作模块(7)中的权值,Y(i)为遗传操作产生的子代个体的第i位基因编码,i={1,2,…,n}, j={1,2,…,m};实数编码遗传算法的多父辈算术交叉操作为,offs.C=(offs.g1,…,offs.gn)gioffs.=(Σj=1kλj·gijp)mod1]]>λj=Wj/Σj=1kWj]]>其中, 分别表示个体的编码长度和参与交叉操作的父代个体的数目,λ为一组系数,Σj=1kλj=1,]]>Wj为根据参与繁殖的父代个体的代龄所计算出的连接权值矩阵(12),模运算用于确保子代个体中每一位基因的实数编码在归一化范围
之间;在多基因突变操作中,本模块通过随机生成一个n位0-1码串r作为掩码,根据掩码串某一位上1或0的取值确定个体编码相应位上的值取反或保留原值不变,从而达到多基因突变的目的,其中二值编码遗传算法的多基因突变操作为, 实数编码遗传算法的多基因非均匀突变操作为, Δ(t,y)=y·(1-q(1-t/gmax)b)]]>其中,pgi和offs.gi分别为父代和子代个体的第i位基因编码,τ∈{0,1}为一个随机数,q为一个0-1之间的随机数,t为遗传算法的当前代数,gmax为遗传操作的总代数,b为用户指定的系数。
6.根据权利要求1所述的实现遗传算法的神经网络系统,其特征在于采用了K-MAXNET竞争网络实现了遗传算法的生存竞争和交配竞争。其中,竞争模块(8)接受来自评价模块(4)的父代群体和子代群体的适应度值信息,实现实现父代群体和子代群体之间的生存竞争,从而形成新一代群体;嵌入在交叉操作模块(9)中的交配竞争子模块接受来自权值计算模块(6)的基于父代群体代龄的权值信息,输出用于控制交叉操作模块(9)中开关的通断,从而实现父代个体之间的生存竞争,完成遗传算法赌盘选择操作,竞争模块(8)的输入为参与竞争的父代和子代群体的适应度值,输出为m个1和L个0,分别对应于m个存活的个体和L个被淘汰的个体,X(i)=Et(i),i={1,2,…,m+L}Y(i)=St+1(i)∈{0,1},i={1,2,…,m+L}其中,St+1具有m个1和L个0。对于i,j∈[1,m+L],满足条件if St+1(i)=1,St+1(j)=0,thenEt(i)≥Et(j)。
全文摘要
实现遗传算法的神经网络系统,由计算机(1)神经网络模块组件(2)及之间的接口组成。特征包括1.当通过计算机设定遗传算法的种群大小、编码方式和长度、遗传操作概率以及算法终止条件之后,神经网络模块组件以种群规模并行实现包括选择、交叉、突变和个体适应度值评价在内的全部遗传操作,并通过计算机输出其的优化计算过程和结果;2.设计了实现多父辈交叉操作和多基因突变操作的遗传操作神经网络模块,实现了二值编码遗传算法的多父辈交叉和多基因突变操作及实数编码遗传算法的多父辈算术交叉和多基因非均匀突变操作;3.设计了实现遗传算法赌盘选择操作的权值计算模块,采用了基于个体代龄的赌盘选择概率计算方案。本发明的优化计算具有结构化、柔性化、并行化、硬件化、寻优速度高、质量好的特点。
文档编号G06N3/06GK1450493SQ03122949
公开日2003年10月22日 申请日期2003年4月25日 优先权日2003年4月25日
发明者龚道雄, 阮晓钢 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1