GA算法

2024-10-10

GA算法(共8篇)

GA算法 篇1

虽然GA (Genetic Algorithm) 因其良好的全局优化机制, 和简捷实用, 鲁棒性强等特点, 已被应用于许多领域, 但将GA和JSP结合在一起却相对较少。基于此, 笔者在试探性地给出了基于GA的JSP算法之后, 又基于MATLAB平台作了进一步的模拟与仿真, 据此, 不仅可观察该算法之求解效果, 还可进一步研究GA和JSP的诸多细节, 有参考价值。

一、JSP之数学描述

设有n个零件J 1, J 2, …, J n经过m台机器M 1, M2, …, Mm加工, 一个零件在一台机器上的加工为一道工序, 用“加工顺序”表示各台机器上零件加工的先后次序, 使总加工时间最短即JSP。它要求满足:任何情况下一台机器一次只加工一个零件、一个零件一次只能在一台机器上加工、零件的加工顺序按照M矩阵的顺序进行、每个零件在每台机器上不重复加工、加工过程不允许中断等条件[1]。一般将零件Ji在j道工序的加工时间记为Tij。

二、JSP之GA求解模型[2]

基于求解JSP问题, 不既要考虑到零件、机器、时间等几个变量间的约束关系, 还要考虑到总加工时间最短的目标函数。该算法涉及到两个矩阵。M (i, j) 矩阵, 表示第i个零件在第j个机器上的加工顺序, 指机器号。显然同行间不重, 但同列间可重。矩阵T (i, j) 表示第i个零件在第j个机器上的加工时间, 它是固定的, 其值表示加工时长。显然, 同行 (或列) 间的值无约束。编码时, 取M矩阵的第一列作为染色体矩阵的第一列, 取T矩阵的第一列作为染色体矩阵的第二列。多个样本的产生可采用“随机扰动”模式。因合并后的新矩阵奇偶列之间代表数值不同, 数字范围不同, 因而将其两两并在一起, 通过奇数列的数值作为随机数范围进行变化。随机应避免染色体非法等问题, 以确保初始种群的可操作性。另外, 还要取定种群规模N、总迭代次数G、交叉概率Pc和变异概率Pm等变量, 甚至须记录各代最佳时间Time Best (i) 、各代平均时间Time Avg (i) 和最佳顺序Scheduling Best等。目标函数可取机器的最长完工时间最小。

三、MATLAB仿真平台

Matlab (即Matrix Laboratory, 矩阵实验室) , 是一种用于算法开发、数据可视化、数据分析以及数值计算的计算语言和交互环境, 包括Matlab、simulink以及GUI等部分。经多年的改进与完善, 它已在许多科研领域扮演重要角色。正是基于Matlab所具有的诸多优点, 本文才选用Matlab R2007b作为仿真模拟的工具和平台。编码时, 利用工作空间进行GA代码, 借助Matlab GUI界面显示其最终结果之甘特图和折线图等[2]。GUI是Matlab的图形用户接口 (或界面) , Matlab内设GUI的初始函数, 创建axes坐标轴对象时可自动生成以.M为后缀名的源代码文件。设置GUI工作空间后, 自动调节所绘图形的大小。先用set函数对其中需要计算求得的数据进行算法编写, 再用axes函数对图形参数进行设置。此外, 还涉及figure图形设置。本设计中的参数均不固定, 因参数的设置本身就是一个值得探讨和研究的问题, 所以固定参数会削弱算法的可利用价值[3]。因MATLAB内设GA机制, 故该程序须设计初始种群的生成、若干操作 (如选择、交叉和变异等) 、最大加工周期的计算等相关代码。甚至包括遗传操作之选择等控制策略。

四、基于GA的JSP之MATLAB仿真实现

该仿真利用Matlab的GUI插件搭建而成, 界面主要由参数设置、结果显示两部分组成[4]。其中, 需手动输入的参数有种群规模 (即个体数) 、交叉概率、变异概率、进化代数和运行次数等, 结果 (即所求参数) 涉及最大加工周期和提高效率值。界面简洁明了, 使用方便, 如图1所示。在该示例中, 取零件数n=8, 机器台数m=7, 对应的加工描述矩阵M及其加工时间矩阵T如下, 且N取50, Pc取0.7, Pm取0.01, 进化10代, 运行10次, 经仿真可知, GA于第60代时收敛明显, 说明GA的计算速度非常迅速且有效。该图不仅包括GA之相关变化情况[5], 还包括零件每一次的加工所需时长和加工时间起止点 (蓝框) 等相关信息。图2反映了在不同运行次数 (10次红色, 100次蓝色) 时的最优值变化情况, 说明GA近优解一直在最优解附近摆动, 因此, 虽然无法保证每次的仿真结果都符合期望, 但多次运行还是非常有效的[6]。

本文基于Matlab平台, 完成了对JSP求解算法之仿真模拟。通过仿真示例可看出, 该方法不仅高效, 还GA和JSP两个运筹学研究热点结合在一起, 对进一步挖掘两大理论之潜力和相关细节有深远意义。但是, 在仿真过程中, 要注意克服“早熟”现象。另外, 实用中还会遇到诸如机器故障、零件优先加工等各种随机问题也值得关注。当然, 不论是编码, 还是相关约束等, 都有进一步挖掘之意义, 进而拓宽GA的功能。

因水平所限, 或有许多错误或不足, 敬请各位专家和同行批评指正!

摘要:GA应用广泛, JSP是运筹学热点, 基于此, 笔者曾提出了《基于GA的JSP算法设计》。现将其在MATLAB平台上作模拟仿真, 不仅可观察该算法之求解效果, 还可进一步研究GA和JSP的诸多细节, 意义深远。

关键词:算法,GA,JSP,模拟仿真,Matlab

参考文献

[1]曹迎槐, 等.军事运筹学[M].国防工业出版社, 2013, 1.

[2]曹迎槐.基于GA的JSP算法设计[J].公安海警学院学报, 2014, 4.

[3]柳毅.企业生产调度的智能优化方法[M].北京:人民邮电出版社, 2008.

[4]张青, 等.基于遗传算法的流水车间调度模块设计与实现[J].机电工程, 2006, 6.

[5]何正风.MATLAB在数学方面的应用[M].北京:清华大学出版社, 2012.

[6]雷英杰.MATLAB遗传算法工具箱及应用[M].西安电子科技大学出版社, 2005.

GA进军西部 中宝盛大开业 篇2

成都中宝是GA集团(新加坡德国汽车私人控股有限公司)进军西部的第一家宝马4S店。同时GA集团也是目前宝马集团中国地区综合实力较强、4S店数量较多的经销商集团。

据成都中宝总经理赵巍介绍,该城市展厅是中宝瞄准城南商圈耗巨资打造的崭新展厅,分为上下两层,可同时展示10余台BMW豪华汽车。成都中宝4S店延续了BMW一贯简约而高贵的风格。

据了解,成都中宝集展示、销售、售后服务为一体。总经理赵巍表示:“近年来BMW品牌在中国的发展非常迅速,我们将致力于以BMW品质作为工作标准,以客户为导向,在引入BMW更多车型产品的同时,令客户感受到尊贵和高品质的服务体验。同时,我们希望更能够成为成都了解BMW世界的一个窗口,将BMW先进的理念和生活方式引入本地。”

华晨宝马汽车有限公司西区总监展飞在仪式上也表示:“相信随着成都中宝宝马的开业,不仅BMW品牌会更加贴近客户,BMW也会努力融入本地,为经济、环境、社会的发展做出其自身贡献。”

中宝能如此大手笔的进军城南市场,这与它强大的后盾分不开。GA是一家专业从事BMW、MINI、Ferrari, porsche, Martha Lahti等高端品牌汽车经销业务的集团,在全国拥有多家高端品牌汽车4S店。

成都作为于西部大开发战略政策的受益地区,所以GA集团第一站选择了四川成都这个城市作为重心西移战略的落脚点。据了解,集团下一步,将陆续启动西安、重庆甚至更多的西部城市的网点建设计划。此外,西安中宝宝马4S店也已经于3月13日举行了奠基仪式。

相比宝悦、中达、锦泰这3家宝马,成都中宝几乎全要依靠新客户,面对挑剔的车主中宝宝马必然需要增添举措来满足消费者,谈到这里时赵巍说:“我们是新店,在保证利润的情况下会给客户提供更大的优惠或者更多的礼品赠送,在服务方面,会要求每位员工做到更好,以客户满意为准则,遵循BMW全球统一的服务标准,给予客户最好的服务与感受,围绕‘高效、透明、关爱’三大客户价值不断推出创新服务举措,以提升工作质量。我们有信心后来居上。” (记者 陈锐)

GA算法 篇3

遗传算法(Genetic Algorithm-GA)的产生最早归功于美国Michigan大学的Holland在20世纪60年代末、70年代初开创性工作[1],是模拟生物遗传和自然淘汰的生物进化过程的一种模型。与传统的优化算法有较大的不同,遗传算法有其自身的优点,主要表现在以下几方面[2](1) GA在每个时刻都可以对多个子空间进行搜索,对初始值不做要求。(2) 在GA中仅靠适应度来评价个体优劣,基本上不用搜索空间的知识或辅助信息。(3) GA具有很强的鲁棒性。虽然GA具有诸多的优点,但作为全局搜索算法,仍然存在无法全局收敛的情况,发生这种情况较为典型的是“早熟”现象。遗传算法“早熟”是指群体多样性遭到破坏,算法搜索停滞不前,最终收敛到一个局部最优解,而无法收敛到全局最优解。“早熟”现象的本质特征是因为群体多样性受到破坏。

在选择算子的作用下,优秀模式会大量增加,低劣模式会迅速减少,整个群体向好的方向进化,但是在选择算子的作用下,群体丧失了多样性,群体进化中后期就可能产生“早熟”现象。针对传统遗传算法“早熟”现象,许多的研究人员对其进行了改进,如文献[3]作者通过改进传统的选择算子,从而对传统GA进行了改进,文献[4]采用种群多样性算子产生较好的初始种群分布,并以该算子作为判断种群是否早熟收敛的依据。本文分析研究了“早熟”现象产生的原因,通过改进传统杂交算子和引入二元变异算子来替换传统变异算子对遗传算法进行了改进,实验结果证明,改进后的算法有效的抑制了“早熟”现象的出现。

1 简单遗传算法(Simple Genetic Algorithm)

标准遗传算法的运行过程为一个典型的迭代过程,其必须完成的功能工作内容及主要步骤如下:

1)选择合适的编码策略,把实际问题的参数集合X和域转化为位串结构空间S;

2)定义一个合适的适应度函数f(X);

3)确定所需要的遗传策略,其中包括选择群体大小N,选择交叉及变异方法,以及确定交叉概率pc、变异概率pm等相关的遗传参数;

4)随机初始化生成群体P;

5)计算群体中个体位串解码后的适应值f(X);

6)按照确定的遗产策略,运用相关的选择算子、交叉算子和变异算子作用于群体,形成下一代群体;

7)判断群体性能是否满足某一指标,或者已完成预定的迭代次数,不满足则返回步骤6),或者修改遗传策略再返回步骤6)。

2 算法改进

2.1 交叉算子的改进

在传统的遗传算法中,经常会出现“近亲繁殖”现象。所谓“近亲繁殖”现象即:一对父母A,B经过遗传操作后产生的一对子代为ab1、a1bab1、a1b随即被放入子代中。然而在进化到下一代或者下几代的时候,ab1、ab1很有可能作为新的父母进行遗传操作,此时即发生了“近亲繁殖”。这也是造成群体单一性的主要原因之一。

本文通过引入一个相似度系数(0到1之间的数)的概念,来改进交叉算子。其步骤为:

(1) 以一定概率随机选择两个个体作为父母。

(2) 对两个个体的相对应的基因位进行比较,用两者相同基因位的个数除以个体染色体总长度,把结果定为相似度,如果相似度小于0.5或者达到实际要求的标准,则可以进行交叉,否则返回步骤1。

(3) 反复执行以上两步操作,直到生成的子个体数量满足条件为止。

2.2 变异算子

传统的变异算子执行的是一元取反操作,操作数只需要一个基因,无法有效地保持同一基因位上等位基因的多样性[5],这也是产生“早熟”现象的主要原因。文献[5]中作者提出了一种新的二元变异算子,并通过实验验证了这种变异算子确实优于目前所采用的传统变异算子,所以本文采用这种二元变异算子来替换传统的变异算子。

传统的变异算子只需要对一条染色体进行操作,所执行的操作是一元取反操作,与传统变异算子不同,二元变异算子采用的是两条“染色体”进行参与,具体操作如下:

11010011010100010111

因为“同或/异或”的逻辑运算规律,运算后的两种逻辑状态是互补的,也就是说,同一基因位上的不同种类的基因经过变异后同时存在,从而有效的避免了基因位的缺失。

2.3 改进后算法流程和步骤

改进算法的流程图如图1。

基于相似度交叉算子和二元变算子的GA算法的执行步骤如下:

(1)种群初始化,计算个体适应度。

(2)遗传操作:

① 执行选择操作,选择一对父母。

② 执行相似度交叉操作,判断相似度,若相似度<0.5或者满足实际需求,则执行(3),否则返回(1)。

③ 执行二元变异操作。

(3) 计算适应值,若满足程序终止条件,则程序结束,进入下一个体或者下一代循环。

3 改进算法有效性实验

为了验证算法的有效性,本文采用两个典型函数对改进的算法进行测试,并与标准算法进行比较。

(1)f1=x sin(10πx)+2.0; -1≤x≤2。

此函数是一个一维连续的、包含三角函数的多峰值函数,其最大值为3.085 3,此测试函数是求最大值。

(2)f2(x)= exp(-0.001x)cos2(0.8x), x >0。 此函数其全局最大值是1.0,最大点为0。

为了更好的比较改进后的算法的有效性和正确性,分别对改进后的算法和标准GA算法进行仿真。改进算法的参数设置如下:采用两个规模为50的子群体,交叉概率设置为0.90,变异概率设置为0.01,进化代数为100代。标准算法的参数设置与改进算法相同,对两种算法各进行100次仿真。算法实验结果如表1。

本文采用目标函数作为适应值计算函数,进化代数为100代后终止进化。通过多次的实验仿真,我们从仿真结果中可以看到改进后的算法无论在最优解或者是收敛速度上都有明显的改进。

4 结语

针对标准GA算法的“早熟”现象,本文通过改进传统的交叉算子,避免了“近亲繁殖”的现象的出现,一定程度上保证了群体的多样性。采用二元变异算子替换传统的变异算子,保证了同一基因位上等位基因的多样性,起到了很大的局部微调的作用,上述的改进方法使得改进后的遗传算法在性能上大大的优于传统的GA算法。

参考文献

[1] Holland J H.Adaptation in natural and artificial systems.Ann Arbor:The University of Michigan Press,1975

[2]周育人.一类改进的遗传算法及其优化性能分析.2003;25(1):1—3

[3]陈有青,徐蔡星,钟文亮.一种改进选择算子的遗传算法.计算机工程与应用,2008;44(2):44—49

[4]林锐浩,陈晓龙.基于种群多样性指导的遗传算法.计算机工程与设计,2005;26(11):3100—3102

GA算法 篇4

“旅行商问题”常被称为“旅行推销员问题”, 指的是需要有一个推销员拜访多个地点, 如何找到时间来访问每个地点, 然后返回到最短路径的起点。规则是简单的, 但增加了位置的数量后, 解决极为复杂。以42个地点举例, 以确定是否要列出所有最好的旅游路线, 然后计算总路径大, 几乎难以计数。多年来全球数学家竭尽全力, 试图找到一个高效的算法。在文章中, 基于遗传算法寻求TSP问题的更优解决。

2 遗传算法介绍

2.1 遗传算法的机理

在遗传算法中, 优化问题的解决方案被称为个体, 它可表示为染色体或基因串。染色体通常可以表示为一个简单的字符串或数字串, 这个过程称为编码处理。算法随机生成一定数量的个体。在每一代均可以被评估, 并通过计算获得适应度值。之后个体和群体组成的下一代。这个过程是通过交配 (crossover) 和突变 (mutation) 来实现。根据一项新的个体适应选择, 这个过程被重复:每个个体进行评价, 计算两个个体的适合度进行交配, 然后突变, 形成第三代。周而复始, 直到终止条件出现。

2.2 遗传算法的实施步骤

(1) 选择一个编码;给出一个有N个染色体的出事群体pop, t:=1。

(2) 对群体pop (t) 中每一个染色体计算它的适应函数fi=fitness (popi (t) ) 。

(3) 若停止的规则满足, 则算法会停止;否则, 计算概率

并以概率的分布 (9) 从pop (t) 随机选染色体来构成一个新种群

(4) 通过交配得到一个拥有N个染色体的Cross POP (t+1) 。

(5) 用一个较小概率p, 将一个染色体一个基因发生突变, 形成Mute POP (t+1) ;t:=t+1, 一个新的群体POP (t) =Mute POP (t) 产生;返回2步。

3 遗传算法求解旅行商问题

3.1 编码

由于遗传算法不能直接处理空间数据的问题, 所以我们要质疑的空间数据被映射到数据串型空间的遗传结构, 而基因型字符串变换算法程序结构可以处理基因数据的空间。例如, 计算现在北京, 广东, 天津, 新疆四个城市, 但算法不直接处理与北京, 广东, 天津, 新疆, 这些数据, 所以我们给他们编号, 北京 (0) , 广东 (1) , 天津 (2) , 新疆 (3) , 路径 (广东→新疆→北京→天津) 可以将其表示为一个字符串结构型数据 (1302) 。

(1) 二进制编码化, 基因代码用0、1表示。例如:基因A:01100100011 (代表一个个体的染色体)

(2) 编码的互换 (用于解决排序) 。例如旅行商问题中, 一串新的基因编码用来表示遍历的城市顺序, 如:6783401295, 表示这九个城市中, 要先经过城市6, 再经过城市7, 依此类推。

(3) 值的编码。在值的编码中, 每以个基因就是一串新值。这些新值可以是与问题相关的任何值。

3.2 适应度函数和选择

遗传算法是好还是坏的适应度函数值来评估一个个体的, 适应度函数值越大, 质量越好。在本实施例中, 采用的适应度比例法是遗传算法是最常见基本的选择方法, 即选择每个单独的概率成正比其适应值。

3.3 交叉的过程

生物的进化是生物基因重组的中心作用, 遗传算法是核心操作系统交叉, 即所谓的交指结构的两个或更多亲本部分由个体重组操作代替生成一个新的个体。

文章采用匹配交叉 (PMX) 法:先随机产生两个新的交叉点, 再定义这两点间区域为匹配区域, 并交换两个父代匹配区域。

父代A项:132|468|7638

父代B项:983|567|3694

变换为:

对于TEMP A、TEMP B中匹配区域以外出现数码的重复, 要依据匹配区域内的位置进行逐一替换。匹配关系:1<———>5 3<———>6 7<———>0

子代A项:532|567|0668

子代B项:986|468|6394

3.4 变异

变异性是指特定基因编码的字符串被替换为另一种基因突变的概率值的基础上, 对各个值, 以形成一个新的个体。GA的变异操作是产生新个体辅助方法, 它决定了GA局部搜索的能力, 同时还能保持种群的多样性。

基本位变异算指随机分配到一个单独的代码串或几个基因的某些突变操作。用于通过如果值为0的原始基因位点的突变, 然后将它变成一个突变操作所需的二进制个体表示为1;即1到0, 0到1。

变异前:

变异后:

3.5 其他运行参数选择

GA运行参数应根据具体的问题进行选择处理, 并固定, 算法参数到目前为止, 没有一个为所有的应用领域的GA理论能适用。下面是使用GA参数时, 一般建议的方法:

(1) 交叉率的选择。交叉率一般应该会比较大, 推荐会使用85%-96%。 (2) 变异率的选择。变异率一般应该会比较小, 一般使用0.4%-1%最好。 (3) 遗传运算终止进化代数。个人的想法是设置一个计数器, 如果变异连续几代出现最佳个体n值相同 (严格来说应该是, 最好的个体适应连续的N-代后代种群<=父最优适应个性) 即可终止运作。

4 试验及结果分析

实验:

采用的算法各参数设计为:种群规模70, 交叉概率0.9, 变异概率0.1, 保留比例0.6, 最大代数20。用上述算法对一个有15个真实城市和真实距离旅行商问题进行求解, 要求合理安排行程路线, 使总的旅行距离最短。

程序结果最优路径为:

计算总耗时:54.735秒

5 结束语

(1) 随着迭代次数递增, 优化结果会逐渐接近最优解, 并在最佳值附近来回波动。

(2) 交叉概率Pc值均对优化结果的影响较大, 从0.8选择值的范围为1.0, 可以得到更好的优化效果;突变起到支撑作用, 变异概率值只要得到适当, 不会对优化结果造成太大影响。

(3) 初始种群的选取对优化结果有较大的影响。

参考文献

[1]郭靖扬.旅行商问题概述电子科技大学光电信息学院[J].大众科技, 2006.

[2]王海龙, 周辉仁, 魏颖辉.基于遗传算法的一类旅行商问题研究[J].计算机应用, 2009.

[3]王大志, 汪定伟, 闫杨.一类旅行商问题的计算及仿真分析[J].系统仿真学报, 2009.

[4]周辉仁, 唐万生, 魏颖辉.基于GA的最小旅行时间的旅行商问题研究[J].计算机应用研究, 2009.

GA算法 篇5

广义预测控制 ( GPC) 是在自适应控制研究基础上而发展起来的一种新型控制方法。该算法是一种鲁棒性强、能够有效地克服系统滞后、可应用于开环不稳定非最小相位系统的先进控制算法。然而, 基本的GPC算法没有考虑到工业过程的要求对控制作用的约束, 在广义预测控制中存在了约束, 势必会对控制量求解带来难度, 使问题复杂, 计算量加大, 影响了GPC算法的性能。

遗传算法 ( GA) 是处理复杂优化问题的一种方法。由于GA不受问题性质、优化准则形式等因素的限制, 而且目标函数在概率引导下进行全局搜索, 能够有效的处理带约束的优化问题。但是GA也有其缺陷早熟收敛问题, 局部搜索能力弱。遗传算法以一种群体中的所有个体为对象, 并随机对一个被编码的参数空间进行高效搜索。在进行种群初始化时, 选择的种群规模较小, 群体多样性降低, 随着后续进化的进行, 群体很快趋于单一化, 当种群选择增大或者编码长度增大时, 优化过程所需要的时间变长。文献[1, 2]应用遗传算法解决约束GPC寻优方法, 在优化处理带约束的非线性优化问题时, 虽然提高了寻优效率, 但是算法的局部搜索能力减弱, 进化代数多, 算法收敛速度慢, 甚至容易导致早熟。

本文在遗传算法的基础上, 引入非线性规划算法, 应用两种算法的结合代替广义预测控制的滚动优化, 很好解决了上述问题。针对文献[1, 2]出现的问题, 通过加入非线性规划算法增强局部搜索能力, 两种算法同时进行搜索, 从而达到更好优化解, 减少进化代数, 尽快达到收敛, 提高寻优结果的精度。并通过MATLAB仿真实验, 得到满意的控制效果。

1 广义预测控制算法

1. 1 预测模型

Clarke等提出的广义预测控制[3,4]GPC是一种自适应预测控制算法。系统设计灵活方便, 具有预测模型、滚动优化和在线反馈校正等特征。通过受控自回归积分滑动平均 ( CARIMA) 模型来描述一个具有非平稳噪声的实际被控对象, 这个模型可以写成:

其中, y ( k) 、u ( k) 和 ξ ( k) 分别为系统的输出; 输入和均值为零的白噪声序列。差分因子 Δ = 1 - z- 1; A ( z- 1) 、B ( z- 1) 和C ( z- 1) 分别是z- 1的多项式, 为了简单起见, 令C ( z- 1) = 1。

1. 2 预测输出

为了得到超前j步预测输出值, 利用下列丢番图 ( Dioaphan-tine) 方程:

式中:

令:

可知Gj ( z- 1) 的前j项正是系统单位阶跃响应g0, g2, …的前j项。

故有:

因此广义预测模型为:

即:

式中:

1. 3 滚动优化

广义预测控制通过某一性能指标的最优来确定未来的控制作用。其中动态响应系数和控制增量起决定作用, 该算法的控制是通过使用最优化准则:

式中, n为最大预测长度, 一般应大于B ( z- 1) 的阶数; m表示控制长度 ( m≤n) ; 为简单起见, 取 λ ( j) = λ ( 常数) , λ 为控制加权系数。

利用梯度寻优法得到最优解为:

最优控制量为:

式中, W =[w ( k + 1) , w ( k + 2) , …, w ( k + n) ]T; gT为 ( GTG +λI) - 1GT的第一行。

1. 4 控制对象存在的约束

广义预测控制一般考虑如下三种约束[5]情况, 即控制增量约束、控制量约束和输出约束。

控制量增量约束:

控制量约束:

输出约束:

式中:

约束广义预测控制问题, 可以归结为在满足上述三个约束条件下, 使目标函数式 ( 6) 达到最小。

2 遗传算法和非线性规划的概述

2. 1 遗传算法概述

遗传算法[6,7] ( GA) 是由Michigan大学Holland教授于1975年首次提出的一种进化算法, 其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则。这是一种新的全局优化搜索算法, 其具有简单通用、鲁棒性强、适于并行处理等优点, 已广泛应用于计算机科学、优化调度、运输问题、机器学习和组合优化等领域。

遗传算法首先将问题的每个可能的解按某种形式进行编码, 编码后的解称为染色体 ( 个体) 。随机选取N个染色体构成初始种群, 再根据预订的评价函数对每个染色体对每个染色体计算适应度, 使得性能较好的染色体具有较高的适应度。选择适应度高的染色体进行复制, 通过遗传算子选择、交叉 ( 重组) 和变异, 来产生一群新的更适应环境的染色体, 形成新的种群。这样一代一代不断繁殖、进化, 通过这一过程使后代种群比前代种群更加适应环境, 末代种群中的最优个体经过解码, 作为问题的最优解或近似最优解。基本遗传算法的运算过程如图1所示。

2. 2 非线性规划概述

非线性规划[8]是20 世纪50 年代才开始形成的一门新兴学科。1951 年H. W. 库恩和A. W. 塔克发表的关于最优性条件 ( 后来称为库恩- 塔克条件) 的论文是非线性规划正式诞生的一个重要标志。非线性规划研究一个n元实函数在一组等式或不等式的约束条件下的极值问题, 且目标函数和约束条件至少有一个是未知量的非线性函数。其形式可以表达如下:

式中, 设计变量x =[x1, x2, …, xn]T是n维欧氏空间Rn中的向量, f ( x) 为目标函数, hi ( x) = 0, gj ( x) ≤0 为约束条件。

函数fmincon是Matlab最优化工具箱中求解非线性规划问题的函数, 它从一个预估值出发, 搜索约束条件下非线性多元函数的最小值。其形式可以表达如下:

式中, x、b、beq、lb和ub是矢量; A和Aeq为矩阵; c ( x) 和cep ( x) 返回矢量的函数; f ( x) 、c ( x) 和cep ( x) 是非线性函数。

3 基于GA-NP算法的广义预测控制

关于约束广义预测控制问题, 实际上是求解非线性优化问题。为了使控制性能指标达到极小值, 转化为求解遗传算法的极大值问题, 遗传的迭代计算后得到满足约束的最优控制量解, 再通过非线性规划来搜寻更优的值, 从而使控制效果达到更好[9]。基于非线性规划遗传算法的广义预测控制结构如图2 所示。

3. 1 算法结合的思想

经典非线性规划大多采用梯度下降的方法求解, 局部搜索能力较强, 但是全局搜索能力较弱。遗传算法全局能力较强, 但是局部搜索能力较弱, 一般只能得到问题的次优解, 而不是最优解。因此, 结合两种算法的优点, 一方面采用遗传算法进行全局搜索, 一方面采用非线性规划算法进行局部搜索, 以得到问题全局最优解[10,11]。

3. 2 算法流程

应用遗传算法和非线性规划算法代替广义预测控制的滚动优化, 两种算法寻优相互配合, 能够快速、精确地找到最优控制增量, 达到最优的控制效果。基于遗传算法和非线性规划算法优化的广义预测控制流程如图3 所示。其中, 种群初始化模块根据求解问题初始化种群, 适应度值计算模块根据适应度函数计算种群中染色体的适应度值, 选择、交叉和变异为遗传算法的搜索算子, M为固定值, 当进化次数为M的倍数时, 则采用非线性规划寻优的方法加快进化, 非线性寻优利用当前染色体值搜索问题的局部最优值。

3. 3 算法实现

( 1) 种群初始化

遗传迭代算法中必须充分考虑广义预测控制中的约束, 以防止在种群迭代计算中出现不满足约束的个体, 从而影响结果的有效性。在初始种群的产生过程中可以把约束加进来, 即仅从满足广义预测控制的约束区间 ( Δumin, Δumax) 中产生初始个体。

由于遗传算法不能直接处理问题空间的参数, 因此必须通过编码把要优化问题的可行解从其解空间转换到能够处理的搜索空间。遗传算法编码有二进制编码方法和实数编码方法, 对于广义预测控制性能指标的优化问题宜选择实数编码的方法。这是因为实数编码方法不必进行数值转换, 可以直接在解的表现型上进行遗传算法操作。GPC的每一个控制变量可用一个实数表示, 编码的长度即每个染色体基因的个数等于控制步长编码结构如图4 所示。

( 2) 适应度函数选择

遗传算法适应度函数选择可以对优化性能指标进行变换得到, 其形式为:

式中, J ( t) 可以是式 ( 6) 的形式, 通过变换将需优化GPC的极小值问题转化为遗传算法的极大值问题, 并使遗传算法的适应度函数值都在区间[0, 1]中变化。

( 3) 选择操作

选择操作从旧群体中以一定概率选择优良个体组成新的种群, 以繁殖得到下一代个体。个体被选中的概率与适应度值有关, 个体适应度值越高, 被选中的概率越大。选择操作采用轮盘赌法。

( 4) 交叉操作

交叉操作采用实数交叉法, 假设在2 个个体akj和alj之间进行算术交叉, 则得到的新个体为:

式中:b为交叉参数, 范围[0, 1]。

(5) 变异操作

变异操作的主要目的是维持种群多样性。变异操作从种群中随机选取一个个体, 选择个体中的一点进行变异以产生更优秀的个体。第i个个体的第j个基因aij进行变异操作为:

式中, amax是基因aij的上界; amin是基因aij的下界; f ( g) = r2 ( 1 -g / Gmax) 2, r2是一个随机数, g是当前迭代值, Gmax是最大进化次数, r为[0, 1]区间的随机数。

( 6) 非线性规划寻优

遗传算法每进化一定代数后, 得到所有满足目标函数的最优种群个体为初始值进行局部寻优, 并把寻到的局部最优值作为新个体染色体继续进化。

4 仿真实例

设被控对象为如下开环不稳定非最小相位系统:

式中, u ( k) 为系统输入信号, y ( k) 为系统输出信号, n为最大预测长度, m为控制长度, λ 为控制加权系数, α 为柔化系数, 取广义预测控制器参数为n = 6, m = 2, λ = 0. 8, α = 0. 3, 控制增量ΔU =[- 0. 4, 0. 4]; 交叉和变异概率分别为0. 6 和0. 02, 初始种群大小为80, 最大进化代数70, ξ ( k) 为[- 0. 03, 0. 03]均匀分布的白噪声。仿真图如图5 - 图7 所示。

由仿真图5、图6 比较可见, 在输入控制增量约束的情况下采用GA-NP优化约束广义预测控制具有更强的适应能力和跟踪性能, 控制输入增量的变化不剧烈。由仿真图7 比较可见, GA-NP优化约束广义预测控制所需要的进化代数明显减少, 寻优效率有很大的提高。

5 结语

广义预测控制吸收了自适应控制与预测控制的优点, 利用对象的输出和输入对模型参数实时在线辨识与校正, 不断优化控制。由于工业中存在着约束条件, 给这种控制在工业中的应用造成很大的局限性。为了达到在约束条件下目标函数最小, 避免应用一些约束预测控制算法的使过程复杂, 计算量大, 从而寻找有效的解决优化问题的方法。本文提出了基于遗传算法和非线性规划算法混合优化的广义预测控制器, 将两种算法的优点综合起来, 提高寻优精度和计算效率, 通过仿真研究表明该方法在被控对象存在约束的情况下, 可以取得很好的控制效果。

摘要:针对实际工业过程中存在着约束, 提出一种基于遗传算法和非线性规划寻优算法广义预测控制GPC (Generalized Predictive Control) 。非线性规划局部搜索能力较强, 遗传算法全局搜索能力较强, 结合两种算法的优势并引入到广义预测控制的滚动寻优过程中并求得最优控制律。仿真结果表明, 该算法提高广义预测控制处理约束的能力, 且控制效果良好。

关键词:广义预测控制,遗传算法,非线性规划,约束

参考文献

[1]张强, 李少远.基于遗传算法的约束广义预测控制[J].上海交通大学学报, 2004, 38 (9) :1562-1566.

[2]童朝南, 肖磊, 彭开香, 等.基于遗传算法的结晶器液位约束广义预测控制[J].控制与决策, 2009, 24 (11) :1735-1739.

[3]Clarke D W.Generalized predictive control (PartⅠ&Ⅱ) [J].Automatic, 1987, 23 (2) :137-160.

[4]李国勇.智能预测控制及其MATLAB实现[M].2版.北京:电子工业出版社, 2010.

[5]丁宝苍, 罗小锁, 罗霄, 等.先进控制理论[M].北京:电子工业出版社, 2010.

[6]雷英杰, 张善文, 李续武, 等.MATLAB遗传算法工具箱及应用[M].西安:西安电子科技大学出版社, 2005.

[7]李明.详解MATLAB在最优化计算中的应用[M].北京:电子工业出版社, 2011.

[8]Guzman J L, Berenguel M, Dormido S.Interactive teaching of constrained generalized predictive control[J].Control Systems Magazine, IEEE (S0272-1708) , 2005, 25 (2) :52-66.

[9]肖本贤, 朱志国, 刘一福.基于粒子群算法混合优化的广义预测控制器研究[J].系统仿真学报, 2007, 19 (4) :820-824.

[10]梁昔明, 朱灿, 颜东煌.基于物种选择的遗传算法求解约束非线性规划问题[J].中南大学学报:自然科学版, 2009, 40 (1) :185-189.

GA算法 篇6

河道水量在形成过程中, 受到了诸多因素的影响, 例如:降雨量、实测径流量、汛期降雨量、下垫面条件等, 这些因素相互依赖、共同作用于河道水量, 促成了河道水量形成的复杂的非线性过程。由于传统的河道水量还原计算方法, 如:水量平衡法、降雨径流模型法、蒸发差值法等大多是以河道水量形成机理中的某一项或几项假设成立为前提的计算方法[1]。这些方法都具有深厚的水文学背景, 易于掌握、理解, 但是它们并没有反映河道水量形成过程中非线性这一重要的本质现象, 因此往往导致计算结果精度不理想、推广性差。

目前人工神经网络BP算法是处理非线性问题的有效工具, 其强大的非线性映射能力恰与河道水量形成过程中复杂的非线性现象相呼应。将BP算法运用于河道水量还原计算, 从理论上、实践中都能有效的克服传统的还原计算方法中的不足, 但BP算法无法解决自身的优化问题, 如网络拓扑结构的选取、初始权重的优化问题等。GA算法是基于生物自身演变 规律的优化算法, 其全局寻优能力较强, 能弥补人工神经网络BP算法自身不能优化的问题。两种方法的结合称为GA+BP算法, 本文将研究基于GA+BP的河道水量还原的优化算法。

1 人工神经网络BP算法概念及算法过程

BP神经网络通常是指基于误差反向传播 (BP算法) 的多层前向神经网络, 由于采用反向传播的权值调整学习算法, 因此称为BP (Back Propagation) 网络。它是D.E.Rumelhart和J.L.Mcelland及其研究小组在1986年研究并设计出来的。

BP算法的学习过程由正向传播和反向传播组成。在正向传播过程中, 输入信息向前从输入层节点传播到隐含层节点, 经过作用函数后, 把隐含层节点的输出信息传播到输出层节点, 最后给出输出结果。如果输出层得不到期望输出, 则转向反向传播, 将误差信号沿原连接通路返回, 通过修改各层神经元 (节点) 的权重系数和阈值, 使得误差信号最小 (达到要求精度) 。同时应根据网络系统的不同性质, 选择不同的网络结构和作用 (特性) 函数[2]。

2 GA算法概念及算法原理

遗传算法 (Genetic Algorithms) 是模拟生物界遗传和进化过程而建立起来的一种搜索算法, 体现着“生存竞争、优胜劣汰、适者生存”的竞争机制[3]。

遗传算法的基本思想是从一组随机产生的初始解, 即“种群”, 开始进行搜索, 种群中的每一个个体, 即问题的一个解, 称为“染色体”;遗传算法通过染色体的“适应值”来评价染色体的好坏, 适应值大的染色体被选择的机率高, 相反, 适应值小的染色体被选择的可能性小, 被选择的染色体进入下一代;下一代中的染色体通过交叉和变异等遗传操作, 产生新的染色体, 即“后代”;经过若干代之后, 算法收敛于最好的染色体, 该染色体很可能就是问题的最优解或近优解, 其运行过程可用如下步骤进行表述:①随机产生初始种群;②以适应度函数对染色体进行评价;③选择适应值高的染色体进入下一代;④通过遗传、变异操作产生新的染色体;⑤不断重复②-④步, 直到预定的进化代数。

遗传算法可以归纳为两种运算过程:遗传运算 (交叉与变异) 与进化运算 (选择) 。遗传运算模拟了基因在每一代中产生新后代的繁殖过程, 进化运算则是通过竞争不断更新种群的过程[4]。经典遗传算法与传统优化算法的区别可以归纳为:遗传算法是对解集的编码进行运算, 而不是对解集本身进行运算;遗传算法的搜索始于解的一个种群, 而不是某些单个解;遗传算法用适应度函数来评价解的优劣;遗传算法采用的是概率搜索, 而不是路径搜索;遗传算法的优点是:广泛的适用性。该法是模拟生物界而构造出的一种自然算法, 以概率选择为主要手段, 不涉及复杂的数学知识, 也不关心问题本身的内在规律。因此, 遗传算法可以处理任意复杂的目标函数和约束条件;全局优化。由于该方法不采用路径搜索, 而采用概率搜索, 所以是概率意义上的全局搜索, 所以, 解决的问题无论是否为凸性的, 理论上都能获得最优解, 避免落入局部极小点[5,6]。

3 GA+BP优化算法过程及模型

GA+BP优化算法是基于GA优化下的BP算法。有关遗传算法与神经网络BP相结合的研究已经出现, 从目前的研究来看, 遗传算法与神经网络相结合主要是用于进化神经网络的初始权重。就单纯从进化网络结构来说, 目前无论在理论上还是方法上尚没有找到有效的指导原则来进行神经网络拓扑结构的进化。而分析神经网络输入样本数据和训练结果是指用遗传算法来揭示输入样本之间的相关性, 从而确定如何对输入分组进行网络训练, 这类研究现在还无法确定其广泛应用的有效性[6]。

本文仅以GA优化BP网络初始权重为例探讨GA+BP优化算法在河道水量还原计算中的应用。

GA+BP神经网络是一包含有输入层、隐含层和输出层, 并利用GA优化网络权重或网络结构的多层网络, 其结构如图1所示。若把这种神经网络看成一个输入H到输出G的映射, 则这个映射是一个高度的非线性映射。如果输入节点数为N1, 输出节点数为N3, 则网络是从RN1到RN3的映射, 即有:F:

RΝ1-GARΝ3G=F (Η) GA+BΡ

算法可以对简单的非线性函数进行复合后来实现这种复杂的映射。

4 工程应用研究及坪上水库GA+BP模型参数分析及方法

4.1 工程应用研究

山西省坪上水库流域总集水面积1.199 6万km2, 流域内土壤疏松, 有26个水文站, 降水和实测流量资料从1956年到2000年都是连续的 (降雨量、实测径流量及天然径流序列见表1) 。以该水库为例建立GA+BP网络模型进行训练、仿真并比较优化与未优化的网络性能及相关结论。

4.2 坪上水库GA+BP模型参数分析及方法

4.2.1 数据规格化处理

由于网络输入、输出映射函数选为Sigmoid函数, 需对输入数据归一化, 归一化处理后的数据可以防止部分神经元达到过饱和状态, 仅以人工神经网络工具箱中的Premnmx函数为处理方法, 其数学公式为:

yi=zi-zmaxzmax-zmina+b (1)

式中:ab可以根据实际调整, 在本计算中取1、1;ziyi分别为变换前后的变量。

4.2.2 输入因素的选取

成因分析表明, 坪上水库天然径流量与降雨量和实测径流量关系密切。为了定量分析天然径流量与降雨量和实测径流量之间的相关程度, 利用坪上水库1956-1987年的系列资料计算天然径流量与实测径流量、降雨量之间的相关系数。天然径流量与降雨量的相关系数为0.620 2, 为正相关, 降雨量越大, 天然径流量越大, 二者具有较强的相关性;实测径流量与天然径流量的相关系数为0.600 9, 也为正相关。由此可知降雨量、实测径流量都对天然径流的形成起着重要的作用, 因此, 为了计算并确定坪上水库以上流域控制断面的天然径流量, 可以利用坪上水库各站降雨量和实测径流量系列资料, 建立天然径流量的GA+BP网络模型进行训练、检验, 最后仿真河道水量的还原量。利用该模型, 只需已知测站控制断面上游的降雨量和实测径流量, 就可以很快捷地计算出还原量, 而无需投入大量的人力、物力和财力进行实际调查和还原计算。

4.2.3 输出量选取

GA+BP网络的输出量只有天然径流量, 因此GA+BP为多输入单输出网络。

4.2.4 坪上水库GA+BP模型建立及参数设定

由以上分析得出, GA+BP网络的输入为降雨量和实测径流量, 输出为还原量。现设定网络的隐含层节点为6个, 据此建立坪上水库GA+BP模型如图2, 坪上水库GA+BP模型参数设定见表2。

根据以上参数, 以山西省坪上水库1956-1987年资料进行训练, 1988-2000年资料进行检验。通过训练、仿真得出坪上水库基于GA+BP模型算法的训练性能曲线、仿真结果及GA+BP网络与BP网络的性能比较, 分别见图3、表3、表4。

5 结果及误差分析

(1) GA+BP网络与BP网络相比, 训练速度大大加快、精度较高, 较为合理的反映了河道降雨径流复杂的运行机制, 充分体现了GA算法较强的寻优能力。

(2) GA+BP网络的全局误差小, 网络不易陷入局部最小值, 使相对较短期内的“预报”结果更接近实测值。

(3) GA+BP网络的拓扑结构、隐含层神经元个数等仅凭经验给出, 没有可靠的理论依据, 且GA算法的适应度函数较为复杂, 这导致了所选GA+BP网络的拓扑结构不一定为最优网络结构并导致了编制M文件时的困难。

6 结 语

本文在充分理解河川径流的形成机制、人工神经网络BP算法以及遗传算法的基础上, 将GA+BP算法运用到河道水量的还原计算上, 以坪上水库实际资料为例做出检验, 实践证明GA+BP算法在河道水量还原计算上具有可行性及一定的优势。

如何确定GA+BP网络的输入矢量因子及网络结构是GA+BP网络建模的关键, 虽然GA+BP在河道水量还原计算方面的发展还处于萌芽阶段, 但实践证明, GA+BP算法在河道水量还原计算中能够提高还原计算的精度、提高网络的全局寻优能力, 为河道水量还原计算的方法研究提出了新的方向。

参考文献

[1]曹万金.水资源计算、评价、管理[M].北京:水利水电出版社, 1989.

[2]董长虹.Matlab神经网络与应用[M].北京:国防工业出版社, 2005.

[3]苑希民, 李鸿雁.神经网络和遗传算法在水科学领域的应用[M].北京:中国水利水电出版社, 2002.

[4]谢新民, 蒋云钟.基于人工神经网络的河川径流实时预报研究[J].水利水电技术, 1999, (30) :1-4.

[5]高峻财.水利建设与可持续发展[J].东北水利水电科技进展, 2003, (2) :19-21.

GA算法 篇7

关键词:BP神经网络,遗传算法,微震源,反演

非线性反演方法指通过观测数据及一般原理或模型确定与之成非线性关系的模型参数估计值问题[1]。随着当前油气勘探开发的不断深入,非线性反演不仅包括微震数据处理、解释,而且渗透到储层预测、油藏监测等油气勘探开发各个领域,成为地球物理学家和油藏工程师共同关注的前沿课题。近年来,国内外学者先后发表及实现了很多具有巨大潜力和应用价值的非线性反演方法,如蒙特卡洛法(MCM),模拟退火法(SA)、人工神经元法(ANN)及遗传算法(GA)等[2]。非线性反演法是基于最优化原理提出的模型,从大量已知模型正演结果中选出方差(或其他范数规则)最小的模型作为待求模型的解。

本文针对非线性反演方法存在的极易陷入局部最优值、分辨率低、迭代计算量大等问题,利用前沿交叉学科的最新进展,基于BP-GA算法,提出了一种应用于微震源定位的反演方法。该算法充分利用BP神经网络的拟合能力和遗传算法的全局寻优能力,为进一步丰富和完善地球物理非线性全局智能优化反演技术,提供了理论与技术参考依据。

1 微震源反演方法概述

1.1 微震源定位原理

定位反演技术基于声发射学和地震学。基本原理为:地下岩石由人为或自然因素发生破裂及移动时,产生地震波向四周传播。通过布置于周围空间的检波器组采集实时数据,经相关算法处理并在三维空间显示微震源位置。常规方法[2]有蒙特卡洛法(MCM)、模拟退火法(SA)、人工神经元法(ANN)及双重残差法(DDA)等。假设地层模型为均匀速度模型,监测网络中设置若干个不同位置检波器进行P波拾取[3],如图1所示。

以到时残差最小为目标求解模型,基于地震学联合反演思想求震源解时,走时模型为:

式中,tij为i事件在j检波器到达的时刻,i为事件序数,为检波器序数,Tei为i事件发生时刻,ξei(Xei、Yei、Zei)为i事件源坐标,ξsj(Xsj,Ysj,Zsj)为检波器坐标,Vξ(Vx、Vy、Vz)为介质沿3个坐标轴方向的速度。

将tij在初始值(Tei、ξei、Vξ)处作泰勒展开并取一阶近似,设Wij为数据总加权,则:

震源反演问题可描述为:

1.2 反演算法流程

通过计算机算法实现非线性反演问题的数值模拟,必须对原非线性问题进行离散近似,通称为线性化或者拟反演方法。完全非线性反演方法,即对原始非线性反问题模型不进行局部近似而直接寻优。目前,微震监测领域主要应用基于走时计算的射线追踪正演法,如图2所示。

2 BP神经网络与遗传混合算法

近年来,BP神经网络与遗传算法是地球物理勘探领域应用最为广泛的完全非线性反演方法。遗传算法根据自然界生物优胜劣汰的进化原则,有机结合定向和随机搜索,不断逼近最优解,并广泛应用于非线性规划问题、组合优化问题、参数辨识、控制器优化等领域[4]。BP算法是用大量计算单元(即神经元)构成非线性系统,模仿人脑神经系统的处理信息、存储信息及检索功能,常用于函数拟合与样本分类等领域。

结合非线性全局优化方法应用时的局限性,诸如BP神经网络存在易陷入到局部最小值、训练时间过长及遗传算法的早熟现象普遍等问题,本文研究了利用神经网络的非线性拟合能力和遗传算法的非线性寻优能力,求取目标函数全局极值的BP-GA算法,如图3所示。

3 微震源反演模型

结合微震监测工程,本文采用多台站井地联合监测进行微震源定位反演。速度模型采用水平层状均匀介质模型,分别为V1=2 500 m/s,V2=3000 m/s,V3=3 500 m/s。假定微震源空间位置坐标为(77,28,-98),地面检波器位置范围为(188,148,0)~(248,98,0),井下检波器位置范围为(248,58,-5)~(248,58,-96)。检波器属性信息如表1所示。

4 算法仿真与结果分析

反演算法总体思路为:根据反演问题目标函数的特点构建自适应BP神经网络,以目标函数的输入输出数据训练网络后,可以在适宜的权值和阈值约束下预测非线性函数输出。遗传算法的极值寻优将训练后的网络预测结果作为个体适应度值,经过选择、交叉和变异等操作,寻找目标函数的全局最优值及对应输入值。

4.1 BP神经网络算法实现

BP网络采用三层拓扑结构[5],分别为输入层n1、隐含层n2和输出层n3。利用正演模型得出的目标函数100组输入输出数据来训练网络。样本的3个输入参数,为微震源点空间坐标(X0、Y0、Z0),输出参数即为目标函数输出值。隐含层数结合网络精度与模型复杂程度选择为单隐含层。网络结构为3-7-1,共3×7+7×1=28个权值,7+1=8个阈值,遗传算法优化参数的个数为28+8=36。

4.2 遗传算法实现

个体采用实数编码,由于目标函数只有3个输入参数,所以个体长度为3。个体适应值为BP神经网络预测值,适应度值越小,则个体越优,交叉概率和变异概率分别设为0.4和0.2。

4.3 结果分析

微震源定位反演以实现通过地面与井下检波器组拾取的初至波走时差来确定微震源的空间坐标为目的。图4给出了混合算法的Matlab仿真结果。由BP神经网络预测误差可以看出BP神经网络拟合性能较好,符合定位反演误差精度要求。遗传算法适应度曲线中适应度函数值的渐变体现了较快逼近目标函数最优值的趋势。

本文基于遗传与BP神经网络两种非线性方法的优越性及局限性,建立了相互渗透、配合的BP-GA混合算法模型,并应用于微震源定位反演,改善了传统非线性全局寻优方法的搜索性能,提高了微震参数反演中的运算效率和反演精度[6]。非线性全局寻优算法能够解决不确定性、高度非线性、超大规模的复杂问题,所具备的通用性、鲁棒性、自适应等特征,不仅在地球物理反演领域具有良好的应用效果,而且在组合优化、自动控制、图像处理、人工生命、管理决策等领域都将得到广泛的应用。

参考文献

[1]Wei Chao,Li Xiaogan,Zheng Xiaofong.The group search-based parallel algorithm for the serial monte carlo inversionmethod[J].Applied Geophysics,2010,7(2):127-134.

[2]田玥,陈晓非.地震定位研究综述[J].地球物理学进展,2002,17(1):147-155.

[3]巩思园,窦林名,马小平,等.煤矿矿震定位中异向波速模型的构建与求解[J].地球物理学报,2012,55(5):1757-1763.

[4]陈霄,王宁.基于混沌DNA遗传算法的模糊递归神经网络建模[J].控制理论与应用,2011,28(11):1589-1594.

[5]杨立强,宋海斌,郝天姚.基于BP神经网络的波阻抗反演及应用[J].地球物理学进展,2005,20(1):34-37.

GA算法 篇8

简单BP算法有如下缺点[1]:算法收敛速度慢,易陷入局部极小值;收敛性与初始权的选择有关,学习速率不易控制,易出现震荡现象等缺点。在具体应用中文献[2]实现了基于BP算法的文本分类,但是对于算法初始权值的确定没有给出一个很好的答案。文献[3]提出了基于粗糙集的BP算法文本分类,它采用粗糙集理论对输入的初始向量进行约简提高了算法收敛的速度,但是对于BP算法自身易陷入局部极值的问题没有解答。本文采用基于粗糙集理论的数据约简方法理论对输入向量进行数据约简减少输入向量数,通过遗传算法对BP算法输入的初始权值进行优化,提出一种基于粗糙集理论和遗传算法的改进BP算法文本分类方法。该方法克服了传统的BP算法容易陷入局部极小的问题,同时缩短了分类时间,网络的泛化效果也比较好,提高了算法识别率。

1 相关知识

1.1 BP算法[4]

BP算法是人工神经网络中应用最为广泛的算法,这种结构采用误差反向传播方法进行学习。BP网络是典型的多层网络,一般分为输入层、隐层和输出层三层,隐层可以不止一层。同层神经元无连接,层与层之间采用全连接方式,BP网络按有教师学习方式进行训练,当给定一个输入状态,状态由输入层转到隐层,经过隐层单元逐层更新的过程,称为向前传播。如果输出层数据与期望输出有误差,那么将误差又由输出层经隐层,最后回到输入层逐层修正连接权值。对于给定的输入状态,不断重复向前传播和误差反向传播直到达到满意值。

1.2 粗糙集理论

粗糙集理论[5]是由波兰科学家Pawlak在1982年提出,它的主要特点是对待处理数据集合不需要数据集合之外的任何先验信息,相对于许多其他处理不确定知识的方法来说更具客观性。它有如下一些定义:

定义1

信息系统S可表示为S=(U,A,V,F),其中U是对象的非空有限集合,称为论域;A是样本属性的集合;V是属性A的值域集合,f是信息函数:它是U×A→V上的一个映射。假如A=C∪D,C是条件属性集D是决策属性集且,C∩D=Φ,则该信息系统称为决策系统或决策表。

定义2

在知识表达系统S中,对于一属性集P∈A,对象x,y∈U,二元等价关系IND(P)={(x,y)∈U×U a∈P,f(x,a)=f(y,a)}所有的a∈P,f(x,a)=f(y,a)}称为S的不可分辨关系。不可分辨关系是一个等价关系,通过一个不可分辨关系,可以得到一个决策系统的划分。

定义3

S=(U,A,V)为一知识表达系统,BA,XU,规定:X的下近似:B-(X)={x∈U∧[X]IND(B)X}。X的上近似:B-(X)={x∈U∧[X]IND(B)∩X≠Φ}。X的B正域就等价于X的下近似,POSB(X)=B-(X)。X的B-边界区间为:BN-(X)=B-(X)-B-(X)。

定义4

给定信息系统S=(U,A),B∈A,对B中的属性a,如果IND(B)≠IND(B-{a}),则说属性a是必要的,否则称a是不必要的。

1.3 遗传算法[6]

遗传算法是一种生物进化模拟算法,它模拟生物进化的过程将问题的解以字符串的形式表示成基因编码,多个基因编码构成生物的染色体(或称为个体),多个个体构成一个群体。算法随机产生若干个个体构成初始群体,通过对群体的不断进化,利用“优胜劣汰”的自然选择机制,使群体中的个体不断朝着最优解的方向移动,最终搜索到问题的最优解。个体通过遗传算子的作用生成子代个体。通过定义个体的评价函数,即适应度函数来评价个体的优劣。按照自然选择的基本原理,适应度越好的个体被选择用来繁殖后代的机会越大。

2 本文算法

对于待分类的的文本采用中文自然语言处理开放平台(www.nlp.org.cn)ICTCLAS分词系统进行分词,通过TF-IDF公式计算每个特征项的权值后将文本信息表示成由特征项和特征项对应权值组成的向量形式。

2.1 基于粗糙集的数据约简

本文将基于粗糙集理论的粗集网络作为文本分类的前置系统,对文本向量进行预处理达到减少表示文本属性数量的目的,本文在基于对决策表属性约简的基础上采用可变精度粗糙集模型实现数据约简获取优化规则。

Step1

确定分类文本向量集合U,经过属性约简后产生决策表δ,根据实际分类情况确定条件属性集C和决策属性集D。

Step2

判断条件属性集C能否区分集合U,如果能就结束属性约简,将计算结果输出,如果不能进入Step3。

Step3

对于用条件属性集C不能够区分的集合对象采用可变精度粗糙集模型实现约简。

Step4

决策属性集D中属性的个数i以及条件属性集C中属性的个数j分别将集合U划分成i和j个子集合M和N。

Step5

取1≤c≤i根据定义3分析子集合M1和集合N的关系确定M1的β正域和β负域以及β的边界区域,形成决策表δ',对δ'进行分析产生决策规则,c=c+1。

Step6

根据定义4判断规则是否满足要求,否则重复Step4直到得到满意的约简结果。

2.2 遗传算法用于BP网络的优化(GA-BP算法)

遗传算法对BP网络的改进主要是利用遗传算法全局性搜索的特点,以及BP网络的微调特点形成的一种新的算法。该算法为BP网络搜寻最为合适的网络连接权和网络结构,达到对网络结构和网络初始连接权值、阈值的最优配置。从而克服BP网络的初始权值的随机性、网络易陷入局部解等问题,提高BP网络的泛化能力。遗传算法对BP网络算法的优化问题的数学描述如下[9]:

其中E1表示网络总的误差,yk(t)表示教师信号,y(∧t)表示网络实际输出。

其中E2为检测样本平均均方误差,代表网络输出数据可靠性的估计,可见E2越小网络越稳定。

GA-BP算法的基本思想是:随机N组BP网络权值、阈值分布,每组权值和阈值表示成一个适用于遗传算法的染色体,设定遗传算法的计算精度,然后按照遗传算法进行优选,GA的满意解就是BP网络权的近似值。

定义适应度函数根据公式(1)、(2)和(3)可知BP网络的输出值与期望输出值之间的误差平方和越小则表示该网络性能越好,网络越稳定。结合遗传算法要求适应度函数值非负的要求定义适应度:

其中C为一较大常数。

交叉概率和变异概率交叉概率Pc和变异概率Pm采用标准的自适应方法予以确定[6]:

其中fmax为群体适应函数的最大值,favg为群体适应函数的平均值,f′为两个交叉个体中的适应函数值较大的一个,f为变异个体的适应函数值,k1、k2、k3、k4取(0,1)之间的值。

确定隐层单元数目隐层单元数目的确定是一个很复杂的问题,隐层神经元太少影响BP算法的训练效果,太多又会加长学习时间,影响网络的泛化能力。本文采用经典公式来确定隐层单元数,其中l为输入层神经元数,m为输出神经元数,h为隐层数,1≤a≤10为常数。

2.3 Rough-GA-BP算法步骤

Step1

对待分类文本进行分词、计算权重并表示成向量形式,采用2.1节方法进行数据约简。

Step2

对文本向量进行编码、确定遗传算法的种群数N、适应度函数、遗传策略以及BP算法的最大循环次数。初始化BP网络权值、阈值形成N个具有相同结构的网络并把它表示成遗传算法可以计算的编码,以种群规模数N随机产生初始种群。

Step3

计算适应度,若满足遗传算法设定计算精度或达到遗传算法指定代数,进入Step4。否则进行选择、交叉、变异等遗传操作,重新计算个体适应度并进行判断。

Step4

将遗传算法的最优权值及阈值个体解码代入BP网络,利用该网络进行文本分类。

3 实验仿真

实验采用210.43.64.10网站的邮件数据。随机抽取邮件4000封,并按照3:1的比例组成训练集和测试集,通过测试集对算法进行训练后对BP算法、GA-BP算法及本文算法进行查全率、查准率、算法耗时等实验,设定遗传算法的群体规模popsize=200,进化代数gen=200,Pc、Pm采用文中2.2节中的方法确定,设定BP网络初始化参数系统误差为0.001,学习率为0.15,采用随机函数random()在[-1,+1]之间确定各层初始阈值。

3.1 数据约简及权值优化前后对比实验

通过该实验测试在基本BP算法基础上融合基于Rough集理论的属性约简算法以及遗传算法对基本BP算法权值进行优化后相关参数的变化情况。如表1所示。

3.2 对三种算法进行查全率、查准率实验,测试算法的有效性程度

R、P分别代表查全率和查准率。计算公式分别为,其中a表示正确分类的文档数量,b表示错误分入正确文档的数量,c表示错误分出正确文档的数量。如图1和图2所示。

3.3 三种算法耗时实验,测试算法运行效率方面的性能

3.4 实验结果分析

(1)从表1可以看出本文算法在融入属性约简算法后样本向量的属性数量极大减少,同时通过图1、图2和图3可以看出属性的减少并没有降低算法的有效性或增加算法的运行时间。

(2)由于遗传算法对BP算法初始权值的优化,从而克服了简单BP算法容易陷入局部最小的可能性,使得算法搜索空间更加全面。从图1和图2的实验数据表明在融合遗传算法的BP-GA算法和Rough-GA-BP算法就比单纯BP算法在查全率、查准率方面的性能要优越。

(3)由于在分类前对文本向量运用粗糙集进行了有效的属性约简,降低了向量维数,并去处了噪声数据,从而降低了文本分类过程需要的时间,从图3可以看出本文算法在时间需求上明显优于另外两种算法,并且在分类文本数量不断增加的情况下,这种趋势更加明显。

4 结束语

本文在基本BP算法的基础上融合遗传算法全局寻优的特性以及粗糙集理论对数据可以进行约简的特性,形成一种新的文本分类算法。该算法克服了BP算法自身的不足,有效避免基本BP算法易陷入局部最小的缺点,缩短了分类时间,提高了网络的泛化能力。

摘要:分析BP算法的缺点,并结合遗传算法和粗糙集理论构造出一种基于Rough-GA-BP的文本分类方法。该方法通过基于粗糙集理论的数据约简方法对文本输入向量进行数据约简,通过遗传算法对BP算法初始输入进行搜索和优化。实验表明,该方法相对于传统的BP算法,节省了存储空间,缩短了算法学习时间,增加了网络的泛化能力,解决了传统BP算法容易陷入局部极小的问题,提高了分类准确率。

关键词:BP算法,遗传算法,粗糙集,数据约简,Rouhg-GA-BP算法

参考文献

[1]靳蕃.神经计算智能基础原理.方法[M].西南交通大学出版社,2000.

[2]田茸,刘希玉,孟强,等.基于BP神经网络的文档聚类研究[J].计算机科学,2002,29(8):9395.

[3]白如江,王效岳,等.基于粗糙集理论和BP神经网络的文本自动分类方法研究[J].山东大学学报:理学版,2006,41(3):7075.

[4]李清华,张美凤.基于改进BP网络的染色合格率预测[J].微计算机信息,2006,22(4):9395.

[5]Pawalk Z.Rough sets[J].International Journal of Computer and Infor-mation Science,1982,11(5):341356.

[6]王小平,曹立明.遗传算法—理论、应用与软件实现[M].西安:西安交通大学出版社,2002.

[7]庞剑锋.基于向量空间模型的文本自动分类系统的研究与实现[J].计算机应用与研究.2001(9):2326.

[8]蒋蓉蓉.一种基于遗传算法的BP网络改进方法[J].微计算机信息,2007,23(11-1):235236.

上一篇:尿毒症透析下一篇:保护设置