层次遗传算法(共9篇)
层次遗传算法 篇1
1 引言
在物流网络系统规划与管理决策问题中, 管理规划部门要根据用户的反映决定最优规划和管理策略。而用户又根据这些规划和管理策略从自身角度出发以最优方式选择自己所需的服务。此类问题均可以用双层规划这一数学模型表示出来。双层规划问题 (BLP) 来源于不平衡经济市场的Stackelberg博弈理论, 双层规划问题是一种具有主从递阶结构的系统优化问题, 上层问题代表管理者的决策行为, 下层问题代表用户针对管理者的决策行为做出的最优的选择, 决策过程中上下层的决策与选择行为是相互依存的, 一方的选择将对另一方的决策目标函数及决策空间产生影响。双层规划模型已经在工程技术、经济管理等诸多领域有着广泛的应用[1]。
双层规划问题一般是非凸不可微的, 文献[2]、[3]已经证明了双层规划问题是NP-难问题。针对该问题传统的算法有极点法、分支定界法、罚函数法等, 但大多数传统的求解算法依赖于解空间的特性, 无法解决一般的双层规划问题, 尤其是非线性双层规划问题。进化算法由于其较优的全局搜索能力及其对目标函数较低的要求逐渐被用于解决双层规划问题[4]。但单纯采用传统的进化算法, 如遗传算法等则存在计算开销和效率问题[5,6]。而且对于求解非凸非可微的双层非线性规划问题还缺少有效的现代启发式算法。本文基于进化博弈和多目标优化中非支配排序
的思想, 提出并设计了层次遗传算法 (HGA-BLP) , 而且将其用于求解非线性双层规划问题, 最后通过测试函数来证明算法的有效性。
2 双层规划问题描述
双层规划问题的一般模型如下[7]:
其中: x为上层变量, y为下层变量, F, f:Rn×Rm→R, G (g) :Rn×Rm→Rp (Rq) , x∈Rn, y∈Rm.
上下层规划问题都有其自身的目标函数和约束条件。即决策向量 (x, y) 分由上下两层的决策者控制。上层决策者控制x, 由上层决策者首先作出决策, 即根据上层规划的目标函数和约束条件选择x, 然后固定x, 再由下层决策者根据下层规划的目标函数和约束条件选择y.
整个双层规划问题的复杂性取决于上下层规划的特性。当上下层规划, 即式 (1) 中所有的目标函数和约束条件均是线性函数时, 称为线性双层规划问题;否则即为非线性双层规划问题。
传统的优化方法在求解双层规划问题时受制于解空间的非凸和不可微的特点, 尽管现有很多算法试图解决这一问题, 但多数算法只能找到局部最优解而不是全局最优解。基于库恩-塔克条件的算法试图从多方面处理凸性条件, 但取得的进展有限。
当下层规划的超平面属于多峰函数, 而且其搜索空间多处不可微时, 存在下层规划的多峰问题。即为了使上层规划达到最优解, 下层决策者需要做出某种选择, 但这种选择并非是强迫的。因而通常的优化往往只能得到次优解。由于下层规划对于上层规划的优化条件有着举足轻重的影响, 所以提出解决下层规划多峰问题的算法具有现实意义。
3 求解双层规划问题的层次遗传算法
双层规划问题是具有递阶结构的系统优化问题, 由前面对双层规划求解算法的简单介绍可知, 当前多数算法只能求解特殊类型或者特定前提条件 (如目标函数可微及决策空间为凸集) 的双层规划问题, 本文在传统遗传算法的基础上, 构建了层次遗传算法, 即集成两个改进的遗传算法分别求解上下两层的规划问题, 再通过二者之间的交互迭代博弈来求解一般的双层规划问题。
3.1 层次遗传算法的原理
进化算法是在模拟生物体进化过程的基础上提出的解决搜索和优化问题的智能计算技术, 进化算法具有多点并行搜索、以及不依赖于目标函数的导数信息等特点。遗传算法 (Genetic Algorithm, GA) 则是进化算法中应用较广泛的一类算法, 众多文献对此有详细介绍, 在此不再赘述。本文所提出的层次遗传算法 (HGABLP) 是基于两个决策者之间进化博弈的思想而设计的顺序嵌套的优化算法。该算法可以迭代求解双层规划中所涉及的两个优化问题, 一方面在获得下层规划最优解y的基础上求解上层规划问题的最优解x, 另一方面则是在上层规划最优解x的基础上求解下层规划的最优解y, 然后又再次将y传递到上层规划模型作为上层优化求解的基础。通过两个种群的进化优化解决上下两层的优化问题。层次遗传算法的算法流程图如图1所示。本文所提的层次遗传算法可以解决一般的不可微或非凸目标函数的线性或者非线性的双层规划问题。
为了减少算法的计算复杂度, 在求解上下两层的规划问题时, 可以限制其遗传进化代数为外层循环当前的迭代次数。这种方法可以确保在进化初期, 当上层规划的解不精确时, 下层规划解的精度要求也可以降低。随着外层迭代次数的逐渐增大, 上下层遗传进化代数也随之增大, 其所求最优解的精度也逐渐增高。在外层迭代的末期, 整个系统趋于Stackelberg均衡状态。
3.2 层次遗传算法的实现步骤
利用层次遗传算法求解双层规划问题的实施步骤如下:
①根据上层规划的决策变量的取值范围, 对应上层规划的决策变量初始化一个种群X, 同时设定外层循环次数, 以上下层决策变量的 (X, Y) 的向量表达形式为种群个体的编码方式;
②针对上层初始种群的每个个体, 利用遗传算法求解下层规划问题:首先设定遗传代数为当前外层循环次数, 同时设定下层遗传算法的个体数量。然后对下层遗传算法的种群施加个体编码 (采用十进制编码) 、基于下层优化目标函数进行个体评价、选择操作、交叉操作以及变异操作, 最后求得上层种群每个个体所对应的下层规划的最优解 (对应于下层的决策变量) 所组成的下层群体Y, 将种群Y传递到上层作为上层遗传算法执行的基础。
③针对下层种群的每个个体, 利用遗传算法求解上层规划问题:首先设定遗传代数为当前外层循环次数, 同时设定上层遗传算法的个体数量。然后对上层遗传算法的种群施加个体编码 (采用十进制编码) 、基于上层优化目标函数进行个体评价、选择操作、交叉操作以及变异操作, 最后求得上层种群每个个体所对应的上层规划的最优解 (对应于上层的决策变量) 所组成的上层群体X.
④将上下层的种群合并为一个种群进行适应度评价。由于新种群的每个个体涉及到两个优化目标, 所以需要应用多目标优化技术对新种群进行处理。本文按多目标优化中的非支配关系对个体进行排序。在多目标优化中, 所谓个体i支配个体j是指个体i的所有目标函数值非劣于个体j的对应目标函数, 或者至少个体i的其中一个目标函数值优于个体j的对应目标函数值。解的Pareto最前端则是非支配解的集合, Pareto次前端则受制于最前端, 以此类推。种群中的每个Pareto前端中的个体依据自身适应度或者所处Pareto前端等级进行排序。在此基础上给Pareto最前端的个体赋予适应度1, Pareto次前端个体赋予适应度2, 以此类推。每个个体除了赋予适应度之外, 还另外计算其拥挤距离, 拥挤距离用于测度前端集合中个体之间的稠密程度, 平均拥挤距离越大, 种群的多样性越好。以个体的前端等级和拥挤距离为依据, 使用二进制锦标赛选择算法选择前端等级低或者拥挤距离大的父代个体。再将Pareto前端集合中的个体与当前的子代个体进行非支配排序, 同样依据前端等级和拥挤距离从中选择N个个体作为下一代种群的个体。
⑤算法终止检查。本文根据外层循环是否达到最大迭代次数或者种群平均适应度变化幅度是否达到给定精度范围两个指标作为算法是否终止的条件。若满足, 则前端集合中的个体则为最优解的集合。最后再根据实际情况从前端集合中选择一个个体作为最后的选择方案。若二者都不满足, 则返回到步骤2继续执行。
3.3 Pareto前端等级测度算子设计
种群个体非支配排序的排序算法如下:
①对种群中的每个个体p执行如下操作:
(a) 初始化被个体p支配的个体集合Sp为空集∅;
(b) 初始化支配个体p的个体数量np为0;
(c) 对种群中的异于p的个体q:如果个体p支配个体q, 则将q添加到集合Sp中, 即Sp=Sp∪{q};否则np=np+1;
(d) 如果np=0, 则个体p属于Pareto前端集合, 更新Pareto最前端集合F1=F1∪{p};
②初始化前端等级为1, 即i=1;
③前端等级计算方法:
当i级前端非空, 即Fi≠∅时:
(a) 初始化i+1级前端集合Q≠∅
(b) 对i级前端集合Fi中的每个个体p计算Pareto前端等级:
对Sp集合中的个体q执行nq=nq-1
如果nq=0, 则设置q的Pareto前端等级为i+1, Q=Q∪q;
前端等级i=i+1;
令Fi=Q, 重复计算下一Pareto前端集合。
3.4 种群拥挤距离测度算子方法
种群个体选择的依据是个体的Pareto前端等级和个体的拥挤距离。在完成种群个体的非支配排序后, 好要对每个Pareto前端集合中的个体计算拥挤距离。计算方法如下:
对每个包含n个个体的Pareto前端集合Fi:
初始化所有个体的拥挤距离为0, 即:
Fi (dj) =0;
对种群中的个体分别按每个目标函数值排序得集合I:I=sort (Fi, m) ;
对Fi中的每个边界个体的距离赋值为∞, 即
I (di) =∞, I (dn) =∞;
for k=2 to n-1
I (k) .m是集合I中个体k的第m个目标函数值。
上述算法实质是计算m维空间的欧几里得距离。前端集合的边界个体的拥挤距离为0可以保证其传递到下一代种群。
4 数值算例与算法性能分析
为了与传统的双层规划的求解方法比较并检验本文所提的层次遗传算法的性能, 本文选择了文献[5]的4个测试函数, 包含了线性或非线性双层规划问题, 如表1所示。
本文所有实验均在Intel (R) Pentium (U) Dual T2330 (1.6GHz, 内存1G) 笔记本上运行, 并以Matlab R2007A为实验平台。HGABLP相关参数设置为, 内嵌遗传算法的种群数量为50, 交叉概率0.6, 变异概率0.08, 进化代数250, HGABLP迭代次数10次。表2为所选测试函数由本文HGABLP算法与传统算法所得最优函数值结果。第2列为所用的优化方法, 第3、4列为传统优化方法所得的最优函数值, 相关文献[5]获得。HGABLP算法所得最优函数值位于第5, 6列 (只给出Pareto前端集合中的一个最优函数值) 。表3为采用HGABLP所得部分最优解的情况。
由于在双层规划的迭代求解的过程中使用了多目标优化的非支配排序技术, 所以最后求得的最优解为Pareto前端集合。
图1、图2、图3和图4分别为使用HGABLP所求的测试函数F1、F2、F3、F4在可行域的Pareto最优解前端。在实际的决策中, 可以根据实际情况综合考虑, 选择前端集中的一个解为最优决策方案。
测试结果证明该算法能够处理双层规划的不可微的复杂性。而且HGABLP还能够处理不同类型的双层规划问题, 而且对搜索空间的要求较低, 测试结果证明了算法良好的鲁棒性能。这在处理一些搜索空间特性未知的双层规划问题时非常重要。
5 结语
本文基于进化博弈和多目标优化中非支配排序的思想, 提出利用HGABLP算法来解决双层非线性规划问题, 并通过求解4个测试算例与传统优化方法进行比较, 证明了算法HGABLP在解决双层非线性问题时的有效性。
参考文献
[1]Colson B, Marcotte P, Savard G.Bilevel program-ming:a survey[J].A quarterly Journal of OperationResearch (4OR) , 2005, 3 (2) :87~107.
[2]Hansen P, Jaumard B, Savard G.New branch-and-bound rules for linear bilevel programming[J].SIAMJournal on Scientific and Statistical Computing, 1992, 13:1194~1217.
[3]Deng X.Complexity issues in bilevel linear program-ming[C]//Migdalas A, Pardalos P M, Varbrand P.Multilevel optimization:Algorithms and applications.Dordrecht:Kluwer Academic Publishers, 1998.
[4]Mathieu R, et al.Genetic algorithm based approachto bilevel linear programming[J].OperationsResearch, 1994, 28 (1) :1~21.
[5]Bard J.Practical bilevel optimization algorithm andapplication, nonconvex optimization and itsapplications[M].Kluwer Academics, 1998.
[6]李和成.非线性双层规划问题的遗传算法研究[D].西安:西安电子科技大学, 2009.
[7]Wen P N, Hsu S T.Linear bi-level programmingProblems-A review[J].Journal of Operationalresearch Society, 1991, 42 (2) :125~133.
层次遗传算法 篇2
摘要 本文主要介绍了遗传算法的基本概念和基本原理,分析说明了遗传算法应用领域,指出了遗传算法在应用中的几个关键问题,同时简要介绍了遗传算法研究新动向及存在的问题。
关键词 遗传算法;编码机制;遗传算子;适应度函数
一、遗传算法的基本原理
遗传算法类似于自然进化,通过作用于染色体上基因寻找最好的染色体来求解问题。与自然界相似,遗传算法对求解问题的本身一无所知,它所需要的仅是对遗传算法所产生的染色体有更多的繁殖机会。在遗传算法中,通过随机方式产生若干个所求解问题的数字编码,即染色体,形成初始种群;通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗传操作后的个体集合成下一代新的种群,对这个新种群进行下一轮进化[1]。
二、遗传算法的应用
遗传算法在应用中最关键的问题有如下3 个[2-3]。
(1)串的编码方式。本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。
(2)适应函数的确定。适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。
(3)遗传算法自身参数设定。遗传算法自身参数有3 个,即群体大小n、交叉概率Pc 和变异概率Pm。群体大小n 太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc 太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01-0.2。
遗传算法的主要应用领域[4-5]在于函数优化(非线性、多模型、多目标等),机器人学(移动机器人路径规划、关节机器人运动轨迹规划、细胞机器人的结构优化等),控制(瓦斯管道控制、防避导弹控制、机器人控制等),规划(生产规划、并行机任务分配等),设计(VLSI 布局、通信网络设计、喷气发动机设计等),组合优化(TSP 问题、背包问题、图分划问题等),图像处理(模式识别、特征提取、图像恢复等),信号处理(滤波器设计等),人工生命(生命的遗传进化等)。
三、遗传算法的研究新动向(1)基于遗传算法的机器学习
这一新的研究方向把遗传算法从历史离散的搜索空间的优化搜索算法扩展到具有独特的规则生成功能崭新的机器学习算法。这一新的学习机制对于解决人工智能中知识获取和知识优化精炼的瓶颈难题带来了希望。遗传算法作为一种搜索算法从一开始就与机器学习有着密切联系。分类器系统CS-1 是GA 的创立Holland 教授等实现的第一个基于遗传算法的机器学习系统。分类器系统在很多领域都得到了应用。例如,分类器系统在学习式多机器人路径规划系统中得到了成功应用;Goldberg 研究了用分类器系统来学习控制一个煤气管道仿真系统;Wilson 研究了一种用于协调可移动式视频摄像机的感知运动的分类器系统等。(2)遗传算法与其他计算智能方法的相互渗透和结合
遗传算法正日益和神经网络、模糊推理以及混沌理论等其它智能计算方法相互渗透和结合,以达到取长补短的作用。近年来在这方面已经取得了不少研究成果,并形成了“计算智能”的研究领域,这对开拓21 世纪中新的智能计算技术具有重要意义。GA 的出现使神经网络的训练(包括连接权系数的优化、网络空间结构的优化和网络的学习规划优化)有了一个崭新的面貌,目标函数既不要求连续,也不要求可微,仅要求该问题可计算,而且搜索始终遍及整个解空间,因此容易得到全局最优解。(3)并行处理的遗传算法
并行处理的遗传算法的研究不仅是遗传算法本身的发展,而且对于新一代智能计算机体系结构的研究都是十分重要的。GA 在操作上具有高度的并行性,许多研究人员都在探索在并行机上高效执行GA 的策略。研究表明,只要通过保持多个群体和恰当地控制群体间的相互作用来模拟并执行过程,即使不使用并行计算机,我们也能提高算法的执行效率。在并GA 的研究方面,一些并GA 模型已经被人们在具体的并行机上执行了;并行GA 可分为两类:一类是粗粒度并行GA,主要开发群体间的并行性;另一类是细粒GA,主要开发一个群体中的并行性。(4)遗传算法与人工生命的渗透
人工生命是用计算机、机械等人工媒体模拟或构造出的具有自然生物系统特有行为的人造系统,人工生命与遗传算法有着密切的关系,基于遗传算法的进化模型是研究人工生命现象的重要理论基础。虽然人工生命的研究尚处于启蒙阶段,但遗传算法已在其进化模型、学习模型、行为模型、自组织模型等方面显示出了初步的应用能力,并且必将得到更为深入的应用和发展。人工生命与遗传算法相辅相成,遗传算法为人工生命的研究提供了一个有效的工具,人工生命的研究也必将促进遗传算法的进一步发展。(5)遗传算法与进化规则及进化策略的结合
遗传算法、进化规则及进化策略是演化计算的3 个主要分支,这3 种典型的进化算法都以自然界中生物的进化过程为自适应全局优化搜索过程的借鉴对象,所以三者之间有较大的相似性;另一方面,这3 种算法又是从不完全相同的角度出发来模拟生物进化过程,分别是依据不同的生物进化背景、不同的生物进化机制而开发出来的,所以三者之间也有一些差异。随着各种进化计算方法之间相互交流深入,以及对各种进化算法机理研究的进展,要严格地区分它们既不可能、也没有必要。在进化计算领域内更重要的工作是生物进化机制,构造性能更加优良、适应面更加广泛的进化算法。
参考文献
层次遗传算法 篇3
半导体技术飞速发展,使得电路的集成度不断提高,芯片上可集成的晶体管数目日益增加,这就导致了电路的可测性问题越来越突出。为了解决当前电路设计过程的可测性问题,高层次测试综合方法应运而生。通过研究发现,当前的高层次可测性设计方法都是在高层次寄存器分配时[1,2]研究电路的可测性问题,没有对调度和分配过程对电路可测性的影响进行研究。另外,在高层次测试综合的研究中,广泛使用遗传算法来进行问题的求解[3,4]。使用该算法时,如果染色体编码和遗传操作设计不合理,会出现大量不可行解,影响问题的解决。
通过对当前相关研究的分析可以得出:现有的高层次可测性设计方法存在局限性,可以在此基础上研究调度和资源分配过程对可测性问题的影响,并且可以对所使用的遗传算法进行改进,来适应该问题的求解。因此,本文提出了一种基于多目标遗传算法的高层次测试综合方法,该方法在面积和时间的约束下,在高层次调度和单元分配过程中完成电路的可测性设计。本文通过约束优化问题转换来消除约束条件,从而消除了约束条件对所求解问题的影响。并设计了基于数据依赖的杂交方法来消除无效染色体。通过实验验证了本文方法能够有效改善设计电路的可测性。
1 问题表示
高层次调度和资源分配两个步骤对设计电路可测性影响非常大,文献[2]研究了高层次综合过程对电路的可测性的影响,并总结出了三个影响可测性的要素:
(1) 尽可能为每个寄存器分配一个原始的输入或输出变量
一个信号可以被控制和可以被观察的难易程度称为该信号可控制性和可观测性。如果将一个原始的输入(或原始输出)变量分配给寄存器,则该寄存器就可以直接被控制(或被观察)。
(2) 尽可能降低电路时序深度
时序深度指两个寄存器之间最短的时序通路的长度。文献[1]证实了自动测试向量生成的复杂度与电路时序深度成正比。
(3) 尽可能避免时序环路的出现
源节点和目的节点相同,并且不存在输入或输出寄存器的时序通路称为时序环路。文献[1]也证实了自动测试向量生成的复杂度与时序环路深度成指数关系。
1.1 确定可测目标函数
根据前文所描述影响可测性的三个要素,设计了一个可测性目标函数来表示一个完成资源分配后的电路的可测性情况。该目标函数为:
其中nnco为没有分配到原始输入和原始输出的寄存器数目;k为时序通路的数目,nsp为时序通路sp的时序深度;m为电路中时序环路的总数目,nsl为时序环路sl的长度,要素(3)中指出自动测试向量生成费用与时序环路长度成指数关系,因而使用指数形式2nsl来表示。w1,w2,w3作为影响可测性三个要素的权重,它们的值可以根据实际情况进行设置。
1.2 问题定义
因为本文所解决的问题是在时间和面积约束下,实现高层次综合设计的可测性改善,所以问题的目标函数就是使式(1)的值最小,表示为:
时间约束指设计要求所规定的完成所有操作需要的控制步数Tmax。如图2所示,完成两个个父染色体对应的数据流图中所有操作要求的最大控制步为5。也就是说,数据流图中所有节点操作必须在第5个控制步结束之前完成。因此,任何操作oi必须满足如下约束:
其中schedule(oi)为oi操作被调度的开始控制步,D(oi)为完成oi操作所需的控制步数目。
面积约束指设计要求所规定的,完成操作所需的功能单元和寄存器的面积最大值Amax,面积约束的公式如:
其中AFi为Fi类型功能单元占用的面积,AR为单个寄存器占用的面积,N为寄存器总数。
数据依赖约束指数据流图中各个操作执行的先后顺序。如果oi操作是oj操作的后继节点,则oi必须在oj之后执行。数据依赖约束公式如下:
1.3 染色体编码
染色体编码决定遗传算法最终结果的质量,不合适的编码会导致最终结果包含大量无效染色体。本文研究的是调度和资源分配过程,使用的染色体中应该包含调度和资源分配信息。本文方法以电路的数据流图作为输入,该图中的节点表示操作,边表示操作之间的依赖关系。一个包含n个节点的数据流图的染色体编码如图1所示。
在图1中,数据流图中的每个节点对应染色体的两个元素,xi为oi操作被调度的开始控制步,yi为oi操作分配的功能单元。
在给定时间约束Tmax的情况下,可以应用尽可能早调度算法ASAP(As-Soon-As-Possible)和尽可能晚调度算法ALAJP(As-Late-As-Possible),确定每个操作最早开始调度时间ASAP(oi)和最晚开始调度时间ALAP(oi)。对于给定的一个操作oi,它所对应染色体中xi的调度范围为:ASAP(oi)≤xi≤ALAP(oi)。同样,给定的功能单元集合为FU,为操作oi分配yi的范围为:yi∈FU。
2 无效染色体形成的原因
由于常规的遗传算法进化过程会出现大量无效染色体,它会使进化过程只进行很少代数就陷入局部最小点,不能得到全局最优解,影响优化问题的求解。通过对本文所要解决的可测性优化问题进行研究,发现算法优化过程产生三类无效染色体:第一类,违反时间约束的染色体;第二类,违反面积约束的染色体;第三类,违反数据依赖的染色体。
前两类无效染色体出现的原因是违反约束条件导致的,第三类无效染色体的出现是由于杂交运算过程破坏了操作节点之间的数据依赖关系。根据三类无效染色体产生原因不同,本文接下来采取不同方法来避免。
3 违反约束条件的无效染色体的避免
本文所提到的无效的染色体,在约束优化问题中称为不可行解。使用遗传算法求解约束优化问题的难点是怎样处理所求解问题的约束条件。本文采用文献[5]介绍的方法,将约束优化问题转换成两个目标函数最小值问题,一个为要求解问题的目标函数,另一个为违反求解问题约束条件的程度函数。然后,应用所定义个体的Pareto强度值对两个目标函数组成的向量进行排序,最后使用多目标遗传算法求解问题。从而来解决第一类和第二类无效染色体。
3.1 对问题进行转换
通常,一个约束优化问题可以表示为求解目标函数f 的最小化:Minimize f(x),x=(x1,x2,…,xn)∈Rn。其中,x∈F ⊆S,S为f(x)的搜索空间,F为可行域,一般S为Rn中的n维长方体:l(i) ≤xi≤u(i),l(i),u(i)为常数,i=1,2,…,n。可行域F满足m个附加等式和不等式的约束条件:gj(x) ≤0; j=1,2,…,q 和 hj(x)=0, j=q+1,…,m。一般采用罚函数方式来处理约束条件,罚函数是指个体x 到可行域的距离函数[5], fj(x)为所构造的罚函数:
(6)
∑
fitness(x)=f(x)+r∑
通过罚函数法所求解的解中,如果某个解x*既是f(x)的最小值又是∑
3.2 问题转换后解的排序方法
原来的单目标问题被转换成了双目标的最小值问题,两个目标函数组成向量的大小是一种偏序关系,不能直接比较大小。本文通过Pareto强度值来进行个体排序,保证算法中的遗传进化能够正常进行[5]。以下记s1(x)=f(x),s2(x)= ∑
定义1 设a∈S,b∈S,称a Pareto优于b(记a≺b)或b Pareto劣于a,当且仅当∀i∈{1,2}:si(a) ≤si(b)且∃j∈{1,2}:sj(a)<sj(b);称a覆盖b(记a≺=b),当且仅当a≺b或f(a)= f(b)[5]。
定义2 设xi为群体Pt中的一个个体,用S(xi)表示群体中Pareto劣于xi 的个体个数,称为xi的强度值,即S(xi)=#{xj|xj∈Pt 且 xi≺xj},其中#表示集合的基数[5]。
S(xi)的值表示个体xi在群体Pt中Pareto优于关系的强弱程度,可使用S(xi)的值对个体进行排序。研究和实验表明,单独用Pareto强度排序法的效果不是很稳定。为了解决不稳定的问题,应用Pareto强度法时不仅要使(s1(x), s2(x))值最小,而且应该要求s2(x)趋于0。
4 违反数据依赖的无效染色体的处理
通常,常规的杂交操作会产生大量无效染色体,影响遗传算法的结果的质量。在本文所研究的问题中,产生无效染色体的原因是杂交完的子染色体违反数据依赖关系。为了解决该问题,下文介绍一种基于据依赖关系的单点杂交算子。
图2是参与杂交的两个父染色体。进行杂交时,首先在节点o3和o4之间将每个父染色体分成两部分,然后交换生成两个图3所示的子染色体。通过该图可以看到,两个子染色体都是违反数据依赖关系的无效染色体。
产生上述无效染色体是因为在单点杂交时,随机选择染色体中的一个点,将染色体分开进行交换,杂交过程没有考虑节点间的数据依赖关系。上述杂交过程,将染色体中的节点分成两组:o1,o2,o3和o4,o5,o6。通过调度分配图可以看出,第一组的o1与第二组的o4,第一组的o2和o3与第二组的o5都存在数据依赖关系。通过以上分析可以总结出,没有考虑父染色体中节点数据依赖关系的分组是产生无效染色体的主要原因。
因此,为了解决杂交过程无效染色体的问题,可在染色体分组时,尽量减少两个分组节点之间的数据依赖关系。可以采用如下分组方法:首先在父染色体中随机选择一节点,将该节点及其所有前导节点分到一组,剩余节点作为另一组,这样就最大限度地降低了两组节点间的数据依赖关系,也就减少了无效染色体的产生。
应用上述所介绍的分组方式,在图2中的第一个父染色体上随机选择节点o5,并将o5和其两个前导节点o2,o3分到一组,余下的节点o1,o4,o6组成第二组,两组节点之间只有o5和o6存在数据依赖关系。采用上述分组方法最终的单点杂交结果如图4所示。
上述基于数据依赖的单点杂交方法仍然存在一些问题。上述杂交操作的划分节点o5的直接后继o6在两个染色体中都被调度到第五控制步,才使单点杂交没有产生无效染色体。如果节点o6在两个染色体中被调度到不同控制步,就出现问题了。如图5(a)所示,由于划分节点o5和其直接后继节点o6在一个父染色体中被调度的控制步与另外一个父染色体的节点o5被调度控制步相同,这样就产生了一个无效染色体。该实例表明:杂交过程当一个父染色体划分节点的直接后继节点被调度的控制步低于或等于另外一个父染色体划分节点被调度的控制步时,则包含该直接后继节点的子染色体将是一个无效的染色体。由此,产生的无效染色体还需要进一步的处理,对该染色体进行重新调度和分配来消除该无效染色体。
5 实验结果
本节通过实验来验证所提出算法的有效性。实验过程选择了DiffEq、Tseng 、Real、Oven-Ctrl和EWF等5个基准电路,假设乘法和除法功能单元的面积为8,加法和减法功能单元及寄存器的面积为1。实验过程,使用一个整数值作为面积约束;另外使用一个整数值表示控制步数,作为时间约束。遗传算法的种群规模设为50,进化代数设为200,杂交概率设置为0.8,变异概率设为0.1,并将式(1)的三个系数w1和w2和w3都设置为1/3。
实验中,用本文的方法(IGA)与文献[3]的方法(GA)进行比较,两种不同方法可测性比较结果如表1。在所有基准电路,在时间约束和面积约束相同的情况下,IGA方法的自动测试生成时间ATPG和故障覆盖率FC比GA方法都有所改善,说明本文所采用的遗传染色体编码方式和避免不可行解产生的方法是有效的。
6 结 语
本文提出了一种基于多目标遗传算法的高层次测试综合方法,该方法在面积和时间的约束下,在高层次调度和单元分配过程中研究电路的可测性问题。该方法通过对约束优化问题进行转换来消除约束条件,从而消除约束条件对所求解问题的影响。根据需要,还设计了基于数据依赖的杂交算子来消除无效染色体。实验结果验证了本文方法能够有效改善设计电路的可测性。
参考文献
[1]Sun Q,Zhou T.A Novel Register Allocation Algorithm for Testability[J].Tsinghua Science and Technology,200712(S1):57-60.
[2]Lee M T.High-Level Test Synthesis of Digital VLSI Circuits[M].Norwood,MA,USA:Artech House,1997:36-62.
[3]Hermanani H,Saliba R.An evolutionary algorithm for the testable al-location problem in high-level synthesis[J].J.Circuits Syst.Com-put.2005,14(2):347-366.
[4]Harmanani H,Aoun H.An incremental approach for test scheduling and synthesis using genetic algorithms[C]//Proceedings of the Second IEEE NEWCAS.Montreal:IEEE Press,2004:69-72.
层次遗传算法 篇4
基于遗传算法CSAMT反演计算研究
提出了CSAMT方法测深的遗传算法反演,比较传统的`线性反演方法,其对初始模型依赖性小,全局寻优能力强,适用于在地下电性参数比较模糊的条件下对测深曲线进行反演.本文设计多种理论模型进行模拟,证明该算法精度高,可行性强.
作 者:王光杰 王勇 李帝铨 付长民 张贵宾 WANG Guang-jie WANG Yong LI Di-quan FU Chang-min ZHANG Gui-bin 作者单位:王光杰,付长民,WANG Guang-jie,FU Chang-min(中国科学院地质与地球物理研究所,北京,100029)王勇,李帝铨,张贵宾,WANG Yong,LI Di-quan,ZHANG Gui-bin(中国地质大学(北京),北京,100083)
刊 名:地球物理学进展 ISTIC PKU英文刊名:PROGRESS IN GEOPHYSICS 年,卷(期): 21(4) 分类号:P631 关键词:CSAMT 遗传算法 反演 拟合层次遗传算法 篇5
堆石坝的本构模型参数一般是通过室内试验测定或根据以往工程经验确定的,而这种方法由于受室内试验方法、试验设备、施工工艺、施工方法和施工质量等方面的影响,会使堆石坝真实的材料参数与计算时所采用的材料参数不一致,这样,如果利用设计时给出的本构模型参数进行面板堆石坝安全评价及预测,势必会造成较大的误差[1]。目前,众多学者在解决这一问题时,大多都致力于基于实测信息的参数反演分析的研究。在堆石坝工程中的反演方法常采用直接法,即将堆石料的参数反演问题转换成优化问题[2,3,4],以有限元计算位移值与实测位移值的最小误差函数作为目标函数,通过反复迭代,寻找使计算位移值和实测值之间误差最小的模型参数。本文鉴于面板堆石坝工程有限元计算过程的复杂性,利用遗传算法优化BP神经网络权值和阈值建立遗传神经网络,模拟堆石的有限元计算,通过正交设计方法构造遗传神经网络训练样本,完成遗传神经网络的学习、训练及测试过程,建立能模拟堆石坝有限元计算的遗传神经网络模型,然后结合再结合遗传算法的优化过程,将两者应用于面板堆石坝体力学参数反演中,反演得到计算位移与实际位移拟合较好的堆石料参数。结果表明,利用遗传算法和遗传神经网络算法相结合的方法,在解决堆石坝反演分析问题中具有明显的优越性。
1 BP神经网络
BP(Back propagation)神经网络是目前最有代表意义和广泛用途的神经网络模型。它是由一个输入层、一个输出层和一个或多个隐含层组成的,其特点是:各层神经元仅与相邻层神经元之间有连接;各层内神经元之间无任何连接;各层神经元之间无反馈连接。理论已经证明,当隐层神经元数目足够多时,BP神经网络可以以任意精度逼近任何一个具有有限间断点的非线性函数。因此,能够适应于求解高度非线性等复杂岩土工程问题。
但是BP网络也并不是一个十分完善的网络,主要存在学习收敛速度太慢、不能保证收敛到全局最小点等缺陷,而且BP神经网络结构的确定尚无理论指导,往往根据经验确定,其权值则通常由梯度法来确定,通常经过多次反复试验却又很难找到最优的网络结构和权值[5,6],大量研究表明,遗传算法可以为神经网络的设计和训练提供新的途径。
2 遗传算法
遗传算法(Genetic Algorithm,GA)是由美国密执根(Michigan)大学的J.Holland教授于1975年首先提出的,它是一种新兴的模拟自然界生物进化机制的搜索寻优技术。其核心思想源于人们对生物进化过程的认识,模拟了自然选择和自然遗传过程中发生的繁殖、交换、变异现象,它根据适者生存、优胜劣汰的自然法则利用遗传算子:选择、交叉、变异逐代产生、优选个体,最终搜索到较优个体的算法[7]。
遗传算法在优化过程中,处理的对象并不是参数本身,而是对参数集进行编码的个体,它采用同时处理群体中多个个体的方法,同时对搜索空间中的多个解进行评估,实现其全局搜索能力及易于并行化的特点。鉴于遗传算法使用简单,鲁棒性强,易于并行化,搜索不依赖于梯度信息,被广泛地应用于各种领域[7],如函数优化、组合优化、生产调度问题、自动控制、机器人学、图像处理、遗传编码、机器学习、数据挖掘、信息战等。
3 遗传神经网络算法
遗传算法是一种通用的问题求解方法,它对求解问题的本身一无所知,不受其搜索空间限制性条件的约束、不需要目标函数具有连续性等辅助信息,而且它的搜索能力具有全局性,可以很容易找到全局最优解。因此,利用遗传算法优化BP神经网络弥补神经网络自身的缺陷[8],能够更好的解决传统方法中的靠经验来设计网络结构、收敛速度慢和不容易找到全局最优解等方面的问题,同时可以充分发挥遗传算法的全局搜索能力和BP神经网络的局部搜索能力,进而提高网络精度及性能。
4 水布垭面板堆石坝的参数反演分析
4.1 工程概况
水布垭面板堆石坝是目前世界上已建成的最高面板坝,最大坝高233 m,坝顶高程409 m,坝轴线长660 m,坝顶宽度12 m,大坝上游坝坡1∶1.4,下游平均坝坡1∶1.4,总填筑工程量1 570万m3,其中坝体堆石填筑量约为1 563.74万m3。主要分为7个填筑区:ⅠA区(黏土铺盖区)、ⅠB区(盖重区)、ⅡA区(垫层料区)、ⅢA区(过渡区)、ⅢB区(主堆石区)、ⅢC区(次堆石区)、ⅢD区(下游堆石区)。大坝典型断面及坝料分区见图1。
为了监测坝体在填筑过程中的变形,在0+212剖面235、265、300、340、370 m高程处共计布置了35个测点;在0+132剖面和0+356剖面300、340、370 m高程处分别布置了11条水平、垂直位移测线,共73个测点。随着坝体的填筑完成,目前已取得了丰富的变形监测成果[9]。
4.2 待反演参数及取值范围的确定
本文结合各本构模型的优缺点,最终选取邓肯E-B模型进行堆石坝的有限元计算,邓肯E-B模型的主要参数有φ、c、Rf、k、n、kb、m、kur、nur。如果将上述所有参数均作为待反演的参数,计算过程很难保证反演结果收敛到精确值,而且根据以往的经验可知参数φ、c、Rf、kur、nur的试验值与实际值差别不大,可直接取试验值;而参数k、n、kb、m由于受试验条件与现场条件的差异,其试验值与实际值差别较大,因此本文选取k、n、kb、m作为待反演参数。由于垫层区及过渡区等相对于坝体堆石区厚度较小,材料变化对坝体的变形影响甚小,故本文主要对主、次堆石区的两组材料参数进行反演计算。根据以往工程经验及水布垭初始设计参数,设定参数的取值范围见表1所示。
4.3 测点选取
本文根据以往工程经验,选取0+212断面的8个测点,即SV01-1-6、SV01-1-9、SV01-1-17、SV01-1-20、SV01-1-26、SV01-1-29、SV01-1-32、SV01-1-34。8个测点分布于坝体不同高程、不同材料分区内,且测点变形的实测值应正常稳定,变形监测数据的完整性、可靠性较好。测点具体位置及高程见图2。
4.4 遗传神经网络的模拟计算
在堆石坝材料参数反分析中,面板堆石坝工程有限元计算过程相当费时费力,如果有限元计算程序直接被优化程序调用进行反演计算,难度相当大,效率也非常低[9]。因此,本文利用遗传神经网络来建立堆石料参数和位移量之间的映射关系,代替直接反分析法中的有限元计算以提高计算效率。在构造遗传神经网络训练样本过程中,本文通过均匀设计试验法形成参数组,根据水布垭工程施工样图,建立了有限元分析模型,利用ANSYS的APDL语言,结合邓肯E-B模型的非线性计算原理以及堆石坝的非线性静力分析一般方法,编制了堆石坝施工模拟的计算程序,实现了堆石坝的有限元分析计算。
然后将参数组和相应的有限元计算得到的测点位移值作为遗传神经网络的输入和输出,训练遗传神经网络,同时观察遗传神经网络训练样本的输出误差,网络精度满足计算要求,则表示网络训练完成,否则需要进行重新训练。当网络训练完成后,还需要随机构造测试样本参数,利用训练好的遗传神经网络进行模拟计算,同时进行有限元计算,对比神经网络模拟计算结果和有限元计算值之间的误差,如果误差小于容许误差则表明训练好的遗传神经网络是可以模拟有限元计算的,否则的话表明训练好的遗传神经网络不成功,需重新训练。满足上述条件的遗传神经网络即建立了输入和输出之间潜在的映射关系,即给遗传神经网络输入一组参数,即可得出对应的测点位移,达到代替有限元计算、节省时间、提高效率的目的。本文在利用遗传算法优化BP神经网络权值及阈值时,选取种群规模N为50,遗传代数为100,交叉概率Pc=0.6,变异概率Pm=0.2。图3为遗传算法训练神经网络的连接权重的过程,从图中可以看出当进化到40代的时候已经趋于稳定,此时误差平方和、适应度值的理论与实际值基本上已吻合,说明BP神经网络的取值与阈值优化完成,满足精度要求。
4.5 目标函数的确定
在优化理论中,一般通过建立目标函数来寻找使遗传神经网络模拟值和实测值之间误差最小的模型参数,其实质就是寻找一组待反演的参数使与其相应的位移值与实测位移值逼近的方法。本文在优化反演计算中,把测点的实测值和遗传神经网络模拟有限元计算值的误差平方和作为目标函数,即:
式中:X为本构模型参数;m为反演输出测点数;Si为第i个测点的遗传神经网络模拟输出值;S*i为第i个测点实测沉降值[10]。
4.6 遗传算法优化搜索
在堆石体参数的反演分析中,利用训练好的遗传神经网络代替实际的有限元计算,极大地缩短了反演分析时间,为遗传算法进行堆石体参数的优化搜索提供了便利条件。
遗传算法利用训练好的遗传神经网络模拟有限元计算生成控制测点的沉降值,再与控制测点的实测沉降值比较,不断进化搜索得到最符合堆石体实际变形的参数[11],过程如图4所示。
本文利用遗传算法-遗传神经网络算法对参数进行反演,反演时,遗传算法在给定的初值参数范围内进行随机取值,结果都收敛到相近的数值。图5为遗传算法寻优过程,从图中可以看出,当迭代次数达到70步左右时,遗传算法全局最优值趋于稳定,参数优化完成,具体的反演结果见表2。
4.7 反演参数的验证
为了验证反参数的可靠性,本文利用表2中反演得到的参数进行有限元计算,将坝体0+212断面235 m、265 m、300 m高程处测点实测沉降值与反演参数计算值进行了对比,结果见图6-8。
从图6-8可以看出,通过反演材料参数计算得到的有限元计算结果,跟实测资料的规律大致相同,实测位移值与计算位移值符合较好,满足反分析的计算要求,对于个别点出现误差较大的,可能是由于施工的不均匀性或人为、监测误差等方面的原因所致。
5 总 结
本文以水布垭面板堆石坝为工程背景,采用遗传神经网络模拟堆石坝的有限元正分析计算,结合遗传算法建立了面板坝堆石体坝力学参数的位移反演分析模型,并利用反演得到的模型参数进行堆石坝有限计算。结果表明,计算所得的沉降值与实测值吻合较好,误差较小,满足反分析的精度要求,而且利用遗传算法和遗传神经网络算法相结合的方法应用于位移反分析中,既发挥了遗传神经网络的非线性映射、网络推理和预测功能,又利用了遗传算法精度高、收敛快等诸多优点,在解决复杂堆石坝工程位移反分析中具有较好的实际应用价值。
参考文献
[1]苏安安.水布垭面板堆石坝土体参数的位移反演分析[D].北京:清华大学水利水电工程系,2007.
[2]张丙印,袁会娜,李全明.基于神经网络和演化算法的土石坝位移反演分析[J].岩土力学,2005,26(4):547-552.
[3]田明俊,周晶.基于蚁群算法的土石坝土体参数反演[J].岩石力学与工程学报,2005,24(8):1 411-1 416.
[4]张社荣,何辉.改进的遗传算法在堆石体参数反演中的应用[J].岩土力学,2005,26(2):182-186.
[5]闻新,周露,王丹力,等.MATLAB神经网络应用设计[M].北京:科学出版社,2000.
[6]顾永明,张国华.面板堆石坝演化人工神经网络反演分析模型研究[J].西北水电,2007,(2).
[7]陈国良,王煦法.遗传算法及其应用[M].北京:人民邮电出版社,1996.
[8]吴涛.用遗传算法优化神经网络权值[J].广东湛江:湛江师范学院学报,2007,28(2):120-122.
[9]清江水电开发公司.水布垭技术总结[R].武汉:长江勘探设计院.
[10]徐宝松,苗艳东.基于粒子群算法的大坝力学参数反演[J].水力发电,2009,(3):102-104.
基于粒子群算法的改进遗传算法 篇6
遗传算法是根据自然界的“物竞天择,适者生存”现象二提出的一种随机搜索算法。1975年,Holland教授在他的专著《Adaptation in Natural and Artificial Systems》[2]中,首次系统地提出了遗传算法(GA or Genetic Algorithm)的基本原理,标志着遗传算法的诞生。该算法将优化问题看作是自然界中生物进化过程,通过模拟大自然中生物进化过程中的遗传规律,来达到寻优的目的。
进入90年代,遗传算法作为一种新的全局优化搜索方法,适用于处理传统搜索方法难以解决的复杂的和非线性的问题、组合优化、机器学习、自适应控制和人工生命等方面,都得到了极为广泛的应用[3,4,5,6,7,8],是21世纪有关智能计算的关键技术之一。
1995年Eberhart博士和Kennedy博士提出了粒子群优化算法。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的响应,并且在解决某些实际问题时,展示了其优越性。粒子群优化算法是一种新的进化算法,与遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的优劣。但是它比遗传算法规则更为简单,它没有遗传算法的“交叉”和“变异”操作,它通过追随当前搜索到的最优值来寻找全局最优。
根据坐标的可平移性,从整体上看,我们可以假设优化问题的最优解在整个解空间服从均匀分布。按照最大熵原则,最优解应该更加趋向于较优解。为了能够更快地搜索到最优解,本文将粒子群算法和遗传算法相结合。得到了一个应用更加广泛的改进遗传算法。
1 初始化染色体
在遗传算法中,初始染色体是随机产生的,最优化问题的解转换成染色体一般有两种表示方法:二进制向量或浮点向量。使用二进制向量作为一个染色体来表示决策变量的真实值,向量的长度依赖于要求的精度,但使用二进制代码的必要性已经受到了一些批评。在求解复杂优化问题时,二进制向量表示结构有时不太方便。
另一种表示方法是用浮点向量,每一个染色体有一个浮点向量表示,其长度与解向量相同。用向量x=(x1,x2,⋅⋅⋅,xn)表示最优解问题的解,其中是维数。则相应的染色体是V=(x 1,x2,⋅⋅⋅,xn)。
对于每一个染色体V,我们选取已知的可行解做随机的扰动,这样便得到一个染色体V=(x 1,x2,⋅⋅⋅,xM)。如果如此得到的染色体可行,即说明满足约束条件。对于每一个染色体V在约束条件中,我们可以得出可行集中的一个内点,记为0V。我们定义一个足够大的数M,以保证遗传操作遍及整个可行集。当然M的选取依赖于不同的决策问题。在RM中,首先随机选择一个方向d,如果V0+M⋅d满足不等式约束,则将V=V0+M⋅d作为一个染色体,否则,置M为0到M之间的随机数,直到V0+M⋅d可行为止。由于V0是内点,所以在有限步内,总是可以找到满足不等式约束的可行解。重复以上过程popsize次,从而产生popsize个初始染色体V1,V 2,⋅⋅⋅,Vpopsize,其中popsize为种群规模。
2 适应函数
比较常用的评价函数是基于序的评价函数,我们将一代种群的染色体按照从好到差的顺序排列成{V 1,V 2,⋅⋅⋅,Vpopsize}。在极大化问题中,这个顺序就是指对应目标函数值由大到小排列染色体,在极小化问题中则正好相反。为了得到每个染色体的适应度,我们根据这个顺序给出如下的评价函数,
其中a∈(0,1)是一个事先给定的数。可以看到,机会越大的解适应值也越大。
3 选择过程
选择过程是以popsize个扇区的旋转赌轮为基础的。赌轮上的刻度是按各染色体的适应值来划分的,染色体的适应值越大,则其在赌轮上所占的面积就越大,该染色体被选中的概率也就越大,每旋转一次都会为新的种群选择一个染色体。但是为了避免早熟现象,在这里,我们结合粒子群算法的优越性,首先选出最佳染色体0V。然后,令0q=0,对于各染色体Vi,令其累次概率为
我们在区间中随机产生一个实数。如果满足,则选择。重复上述过程,直至生成个新的染色体终止,于是我们得到一个新的种群。
4 交叉算子
首先给定交叉概率,则每次种群中平均有cp*popsize个染色体进行交叉操作。对各染色体我们随机产生[0,1]上的一个随机数p,若p
其中随机数c∈[0,1]。经过上述交叉操作,我们可以得到一个子代染色体。最后,我们可以用约束条件对它进行可行性检验。若该子代染色体满足约束条件,则用子代染色体替代原染色体,否则,
重新检验该子代染色体的可行性,若还是不满足越深条件,则重新产生新的随机数,再次进行交叉操作,直到新的可行染色体出现或者达到最大交叉上限,则停止。这样,我们几可以得到popsize个新的染色体Vi,i=1,2,⋅⋅⋅,popsize。
5 变异算子
变异操作是产生新染色体的辅助方法,但它决定了遗传算法的全局搜索能力,可以保证群体的多样性,防止早熟现象。同样给定一个变异概率Pm,并从区间上随机产生p∈(0,1),若p
6 遗传算法步骤
步骤1:根据约束条件随机产生popsize个染色体,即种群。
步骤2:按照转盘赌原则,随机选取一个最佳父代染色体和其它popsize个父代染色体作为交叉种群(交叉种群不能包含最佳父代染色体)。
步骤3:对于每个父代染色体都以概率cp与最佳染色体进行交叉运算,即随机生成r∈(0,1),若r
步骤4:将所新得到的各子代染色体以概率mP进行变异操作,即随机生成r∈(0,1),若r
步骤5:更新父代染色体,即在子代染色体中,择优选取较好的染色体代替原来的父代染色体,作为下次交叉变异的父代染色体,并计算各自相应的适应值。
步骤6:重复步骤2—步骤5知道达到精度要求,或者达到约定的最大循环次数。
7 数值实验
7.1 实验模型
例1现运用遗传算法求解以下最大值问题,
对于这个问题,我们可以直接将解(x1,x2,x3)是为遗传迭代的染色体。显然染色体属于集合内
7.2 Matlab实验结果
运用Matlab软件来实现遗传算法,并设定相应的各参数如下:
最大交叉、最大变异次数、最大变异半径以及最大遗传迭代次数均设为1 000。利用Matlab7.6得到结果如下:
遗传迭代次数:i=135
最佳染色体:(x1,x2,x3)=(0.6332,0.3990,0.3058)
最优值:1.9805
显然这一结果要优于Liu[9]给出的遗传迭代400次的结果:
最佳染色体:(x1,x2,x3)=(0.636,0.395,0.307)
最优值:1.980
结果误差曲线图:2.3
其中横坐标为遗传迭代次数,纵坐标为每次迭代的误差取值。
8 结论3
本文按照最大熵原理,用粒子群算法代替了遗传算法的交叉算子,得到了一个应用更加广泛的改进遗传算法。最后的数值实验结果也表明,改进后的算法不管是在收敛速度还是精度上都明显优于原有的算法,说明该算法确实是有效可行的。实际上本文给出了一种判断算法优越性的新思路。
摘要:本文假设优化问题的最优解在整个解空间中服从均匀分布,并在此基础上,按照最大熵原则,最优解应该更加趋向于较优解。为了能够更快地搜索到最优解,用粒子群算法[1]代替了遗传算法的交叉算子。得到了一个应用更加广泛的改进遗传算法。最后的数值实验结果表明,改进后的算法不管是在收敛速度还是精度上都明显优于原有的算法,说明改进后的算法确实是有效可行的。
关键词:遗传算法,交叉算子,变异算子
参考文献
[1]胡辉.粒子群优化算法的VisualC++实现研究[J].科技广场,2008(5).
[2]Goldberg D E.Genetic Algorithms in Search,OptimizationandMachineLearning[M].MA:Addison-Wesley,1989.
[3]KozaJR.GeneticProgramming[M].Cambridge,MA:MIT Press,1992.
[4]KozaJR.GeneticProgrammingII[M].Cambridge,MA:MITPress,1994.
[5]Michalewicz Z.Genetic Algorithms+Data Structures=Evolution Programs[M].New York:Springer-Verlag,1996.
[6]YoshitomiY,IkemoueH,TakabaT.Geneticalgorithm in uncertain environments for solving stochastic programmingproblem[J].JournaloftheOperationsResearch SocietyofJapan,2000,43(2):266-290.
[7]邢文训,谢金星.现代优化计算方法[M].北京:清华大学出版社,1999.
[8]ZadehLA.Fuzzysetsasabasisforatheoryof possibility[J].FuzzySetsandSystems,1978,1:3-28.
遗传算法概述 篇7
遗传算法 (Genetic Algorithms) 研究的历史比较短, 20世纪60年代末期到70年代初期, 主要由美国家Michigan大学的John Holland与其同事、学生们研究形成了一个较完整的理论和方法, 遗传算法作为具有系统优化、适应和学习的高性能计算和建模方法的研究渐趋成熟。我国对于GA的研究起步较晚, 不过从20世纪90年代以来一直处于不断上升中。
2 遗传算法的基本思想
遗传算法是从代表问题可能潜在解集的一个种群 (population) 开始的, 而一个种群则由经过基因 (gene) 编码 (coding) 的一定数目的个体 (individual) 组成。每个个体实际上是染色体 (chromosome) 带有特征的实体。染色体作为遗传物质的主要载体, 即多个基因的集合, 其内部表现是某种基因组合, 它决定了个体的形状的外部表现。初代种群产生之后, 按照适者生存和优胜劣汰的原理, 逐代 (generation) 演化产生出越来越好的近似解。在每一代中, 根据问题域中个体的适应度 (fitness) 、大小挑选 (selection) 个体, 借助于自然遗传学的遗传算子 (genetic operators) 进行组合交叉 (crossover) 和变异 (mutation) , 产生出代表新的解集的种群。这个过程将导致后生代种群比前代更加适应环境, 末代种群中的最优个体经过解码 (decoding) , 可以作为问题近似最优解。
3 遗传算法的一般流程
(1) 随机产生一定数目的初始种群, 每个个体表示为染色体的基因编码;
(2) 计算每个个体的适应度, 并判断是否符合优化准则。若符合, 输出最佳个体及其代表的最优解并结束计算, 否则转向第3步;
(3) 依据适应度选择再生个体, 适应度高的个体被选中的概率高, 适应度低的个体可能被淘汰;
(4) 执行交叉和变异操作, 生成新的个体;
(5) 得到新一代的种群, 返回到第2步。
4 遗传算法的特点
传统的优化方法主要有三种:枚举法、启发式算法和搜索算法:
(1) 枚举法可行解集合内的所有可行解, 以求出精确最优解。对于连续函数, 该方法要求先对其进行离散化处理, 这样就可能因离散处理而永远达不到最优解。此外, 当枚举空间比较大时, 该方法的求解效率比较低, 有时甚至在目前先进计算机工具上无法求解。
(2) 启发式算法寻求一种能产生可行解的启发式规则, 以找到一个最优解或近似最优解。该方法的求解效率比较高, 但对每一个需求解的问题必须找出其特有的启发式规则。这个启发式规则一般无通用性, 不适合于其它问题。
(3) 搜索算法寻求一种搜索算法, 该算法在可行解集合的一个子集内进行搜索操作, 以找到问题的最优解或者近似最优解。该方法虽然保证不了一定能够得到问题的最优解, 但若适当地利用一些启发知识, 就可在近似解的质量和效率上达到一种较好的平衡。
遗传算法不同于传统的搜索和优化方法。主要区别在于: (1) 遗传算法直接处理问题参数的适当编码而不是处理参数集本身。 (2) 遗传算法按并行方式搜索一个种群数目的点, 而不是单点。 (3) 遗传算法只需要适应度函数值。 (4) 遗传算法使用概率转换规则, 而非确定的转换规则指导搜索。 (5) 遗传算法在搜索过程中不易陷入局部最优, 有较好的全局优化能力。
5 遗传算法存在的问题
(1) 编码问题:对于不同问题, 编码选择不当, 可能导致积木块假设不成立而使遗传算法很难收敛到最优解。
(2) 早熟收敛:指群体过早失去多样性而收敛到局部最优解。
(3) 进化时间长:进化过程中产生大量数据, 计算量大、时间长。
(4) 参数选择问题:目前参数选择是根据经验来确定, 缺乏理论依据。
6 遗传算法的改进研究
(1) 编码表示Holland建议使用二进制编码, 但它精度不高, 个体长度大, 占用计算机内存多。解决措施有:动态编码, 多维实数编码, 复数编码, 有序串编码和结构式编码等。
(2) 适应度函数适应度函数是区分个体好坏的标准, 也是自然选择的唯一标准。选择的好坏直接影响算法的优劣, 选择得不好容易引起早熟收敛或导致搜索成为随机漫游;对此可引入适应度函数定标技术来解决。
(3) 选择策略不同的选择策略对算法性能有不同影响。轮盘赌法使用最多, 但它可能产生较大的抽样误差, 可选用改进方法, 如非线性排名选择等。
(4) 控制参数控制参数一般有群体大小、交叉概率、变异概率等, 它们对算法性能有很大影响。对于参数的确定, Davis提出了自适应算子概率方法, Srinvivas等则提出了一种自适应遗传算法。
(5) 结合其它技术简单遗传算法与启发式算法结合生成混合遗传算法, 具有更好的优化效果。结合并行机和分布式系统提出了多种并行遗传算法, 可提高搜索效率。
7 遗传算法的应用领域
遗传算法提供了一种求解复杂系统优化问题的通用框架。它不依赖于问题的具体领域, 对问题的种类有很强的鲁棒性即健壮性, 所以广泛应用于多学科。函数优化方面、组合优化方面有背包问题、图划分问题等;生产调度方面有流水生产车间调度等;机器人学方面有路径规划等;图象处理方面有模式识别、特征抽取等;机器学习方面有学习模糊控制规则等;数据挖掘方面有规则开采等。
8 结束语
遗传算法是一种基于概率意义随机迭代进化、具有广泛适用性的全局优化搜索方法。遗传算法提供了一种求解复杂系统优化问题的通用框架。经过30多年的努力, 不论是基础理论研究、算法设计还是实际应用, 遗传算法都有了较大发展。今后, 应用研究将是遗传算法研究的主要方向, 同时其理论和技术研究也需要进一步深入完善, 可引入新的数学工具和生物学的新成果。
参考文献
[1]王小平, 曹立明.遗传算法———理论、应用与软件实现[M].西安:西安交通大学出版社, 2002.
[2]Holland J.H.Concerning Efficient Adaptive Systems[J].In Yovirs.M.C.Eds.Self-Organizing Systems, 1962:215-230.
[3]Holland J.H.Adaptation in Natural and Artificial Systems.AnnAr-bor:University of Michigan press, 1975.
[4]Goldberg D.Lingle R.Alleles, Loci and the Traveling Salesman Prob-lem.In:Grefenstette J.Editor, Proceedings of First International Con-ference on Genetic Algorithms.Lawrence Erlbaum Associates, New Jersey, 1985, 154-159.
[5]Davis L D.Genetic Algorithms and Simulated Annealing[M].Morgan Kaufmann.LosAltos, 1987.
[6]Michalewicz Z.A Modified Genetic Algorithm for Optimal Control Problems.Computers Math.Application, 1992, 23 (12) :83-94.
[7]雷德明.多维实数编码遗传算法[J].控制与决策, 2000 (2) .
[8]陈文清.遗传算法综述[J].洛阳工业高等专科学校学报, 2003 (1) .
[9]李敏强.遗传算法的基本理论与应用[M].北京:科学出版社, 2002.
[10]徐清振, 肖成林.遗传算法的研究与应用[J].现代计算机, 2006 (5) .
[11]徐阳, 王友仁.演化硬件理论与应用技术研究[J].航空电子技术, 2003 (3) .
遗传算法的综述 篇8
遗传算法 (Genetic Algorithm, 简称GA) 起源于对生物系统所进行的计算机模拟研究。是由美国Michi遗传算法n大学的John Holland教授创建的, 并于1975年出版了第一本系统论述遗传算法和人工自适应系统的专著《Adaptation in Natural and artificial Systems》。它提出的基础是达尔文的进化论、魏慈曼的物种选择学说和孟德尔的群体遗传学说:其基本思想是模拟自然界遗传机制和生物进化论而形成的一种过程搜索最优解的算法。遗传算法以其具有并行搜索、简单通用、鲁棒性强等优点, 受到国内外学者的关注。自1985年以来, 国际上已召开了多次遗传算法学术会议和研讨会, 并组织了国际遗传算法学会。
1 遗传算法的基本原理
在自然界中, 由于同一个生物群体中各个体之间也存在差异, 且对所处环境有的适应和生存能力也参差不齐, 遵照进化论所提出的自然界生物进化的基本原则:适者生存、优胜劣汰, 自然界将淘汰那些适应能力较差的个体。但是通过交配继承了父本优秀的染色体和遗传基因的, 或者通过染色体核基因的重新组合产生的生物的生命力往往会更强, 适应能力也更强。在自然界中, 基因会发生突变, 染色体核基因的重组是无法控制的, 但这种无法控制的, 小概率的变异, 也可能产生新基因和生命力更强的新个体。在此基础上, 遗传算法真实的模拟自然界生物进化机制进行对问题的最优化搜索。遗传算法是建立在自然选择和种群遗传学基础上的随机迭代和进化, 具有广泛适用性的搜索方法, 同时具有很强的全局优化搜索能力。对于某个给定的优化问题, 目标函数为:
要求 (X0, Y0, Z0) 使得H为极大值和极小值, 以适应优化的需要。此外, Ω是 (X, Y, Z……) 的定义域, H为实数, f为解空间 (X, Y, Z……) ∈Ω到实数域H∈R的一种映射。遗传算法要根据目标函数H设定一个适应性函数f, 用以判断某个样本的优劣程度。遗传算法的基本步骤如下:
(1) 编码:定义问题的解空间到染色体编码空间的映射, 一般是用二进制将解空间编码成由0和1组成的有限长度字符串。一般一个候选解 (个体) 用一串符号表示。
(2) 初始化种群:在一定的限制条件下初始化种群, 该种群的解空间的一个子空间。算法将从初始化种群开始模拟优胜劣汰的选择过程, 最后选择出优秀的群体和个体。
(3) 设计适应度函数:将种群中的每一个染色体解码成适于计算机适应度函数的形式, 并计算其数值。设计适应度函数的主要方法是将问题的目标函数转换成合适的适应度函数。
(4) 选择:根据适应度大小选择优秀个体繁殖下一代, 适应度越高, 则被选中的概率也越大。选择是遗传算法的关键, 它体现了自然界中适者生存的思想。
(5) 交叉:随机选择两个用于繁殖下一代的个体的相同位置, 在选中的位置进行交换。
(6) 变异:对某个串中的某一位进行取反操作。变异模拟了自然界中偶然基因突变现象。
从步骤四开始重复进行, 知道满足某一性能指标或者规定的遗传代数。
步骤1、2和3是实际应用中关键, 步骤4、5和6进行三种基本基因操作。对新生成一代群体进行重复评价、选择、交叉和变异, 如此循环往复, 使得群体中最优个体的适应度和群体的平均适应度不断提高, 直到最优个体的适应度达到某个界限或者最优个体的适应度和平均适应度不能再提高。
2 遗传算法的特点
遗传算法继承了进化计算的特征之外, 也有其自身的特点:
(1) 遗传算法不是直接作用在参数变量集上, 而是在求解问题的决定因素和控制参数的编码 (即染色体的0、1编码) 上进行操作, 从中找到适应值较高的子串。而且遗传算法不受约束条件的限制。
(2) 遗传算法并不是从单个点出发执行算法, 而是从一个点的群体开始, 这样就可以提高算法的效率和程序的运行速率, 也大大减少了陷入局部最优解的可能性。
(3) 遗传算法利用了适应值的信息, 适应值是根据不同问题设计所得, 针对的是这个问题, 从而减少了其他辅助信息的导入, 即只需要对象函数和编码串。因此, 遗传算法几乎可以处理任何问题。
(4) 遗传算法利用概率转移规则, 而不是确定性的规定。遗传算法采用的概率仅仅是作为一种工具来引导其搜索过程朝着搜索空间的更优化的解区域移动。
(5) 遗传算法在搜索过程中不容易陷入局部最优, 即使在所定义的适应度函数是不连续的非规则的或有噪声的情况下, 也能以很大的概率找到全局最优解。
(6) 遗传算法采用自然进化机制来表现现实复杂的现象, 能够快速可靠地解决非常困难的问题。
(7) 遗传算法具有固有的并行性, 具有并行计算的能力。
(8) 遗传算法具有可扩展性, 易于同别的技术混合、结合使用。
3 遗传算法的应用
遗传算法是多学科结合与渗透的产物, 已经发展成为一种自组织、自适应的综合技术。其提供了一种解决复杂系统优化问题的通用框架, 但不是没用固定的方法, 它不依赖于问题的具体领域, 所以广泛应用于很多学科。
3.1 函数优化
函数优化是遗传算法的一个经典应用领域, 也是对遗传算法进行性能评价的常用算例。很多学者构造出了各种各样的复杂形式的测试函数, 有连续函数也有离散函数, 有凸函数也有凹函数, 有确定函数也有随机函数, 有单峰值函数也有多峰值函数等。用这些几何性质各具特色的函数来评价遗传算法的性能, 更能反映算法的本质效果。而对于一些非线性、多模型、多目标的函数优化问题, 用其他优化方法较难求解, 而遗传算法却可以方便地得到较好的结果。
3.2 组合优化
随着问题规模的增大, 组合优化问题的搜索空间也急剧扩大。有时在现有的的计机上用枚举法很难或甚至不可能求出其精确最优解。对这类复杂问题, 学者们已意识到应把主要精力放在寻求其满意解上, 二不是一定要寻找精确的最优解, 而遗传算法是寻求这种满意解的最佳工具之一。有实践证明, 遗传算法已经在求解旅行商问题、背包问题、装箱问题、布局优化、图形有划分问题等各种具有NP难度的问题上得到成功应用。
3.3 生产调度问题
在许多情况下所建立起来的数学模型难以精确求解, 即使经过了一些简化之后可以进行求解, 也会因为简化太多而使得求解结果与实际相差甚远。因此, 目前在解决生产中的调度问题时还是主要依靠一些经验。1985年Davis首次将遗传算法引入到调度问题。从此在调度问题的解决过程中, 遗传算法使得调度的总流程时间, 平均流程时间等大大降低, 提高了生产的效率。
3.4 图像处理
图像处理是计算机视觉中的一个重要的研究领域, 其前景十分乐观。但在图像处理的扫描、特征提取、图像分割等过程中不可避免的会产生误差。而遗传算法则可以很好的解决这些问题。在图像分割的时候可以利用遗传算法来发现最优解从而帮助确定分割阈值;利用遗传算法在图像增强过程中寻找控制参数的最优解或者是近似最优解;利用遗传算法对图像进行特征提取再对所提取的特征进行优化, 从而提高图像的识别率等。
3.5 自动化控制
随着现代技术和科学技术的不断发展, 人工成本的不断提高, 机器的自动化要求越来越高, 工程师所要考虑的是选择合适的控制结构, 然后对其参数进行一定的优化使得满足特定的实际性能要求。遗传算法具有鲁棒性和广泛适用性的全局优化方法, 能更好的为其控制器降价, 更好的控制机器人手臂, 优化机器人手臂的运动轨迹。遗传算法的优化功能在越来越多的机器自动化领域得到关注。
4 遗传算法存在的问题
随着学科技术的迅速发展, 遗传算法也应用到更多的领域。由于遗传算法来源于进化论和群体遗传学, 缺乏严格的数学基础, 收敛性证明比较困难, 虽然可以利用马尔科夫链的性质证明在保留最优值情况下, 遗传算法可以收敛到全局最优解, 但是对其收敛速率估计是当前需要深入研究和讨论的问题。因为它能从理论上对遗传算法的任何修正形式提供评判标准, 指明改进算法性能的正确方向。另外, 利用马尔科夫链分析对遗传算法的具体应用和参数设计所提供的指导信息非常少。如何选择遗传算法的参数, 才能得到最优结果, 到目前还没有理论指导。以上这两个方面还需要需找更有效的分析手段和严格的数学证明。
5 结束语
遗传算法不是一种单纯的优化算法, 而是一种以进化思想为基础的全新的一般方法论, 是一种解决问题的方法。经过多年的研究和发展, 遗传算法在越来越多的领域展现出它的优势, 不论是基础理论研究、算法设计还是实际应用。应用研究是遗传算法的主要方向, 开发遗传算法的商业软件、开拓更广泛的遗传算法应用领域是今后应用研究的主要任务。
摘要:遗传算法是模拟自然界生物进化过程与机制求解问题的一类自组织与自适应的人工智能技术, 已广泛应用与计算机科学、人工智能、信息技术及工程实践。本文介绍遗传算法的基本工作原理和特点, 讨论存在问题, 分析遗传算法的研究现状。
关键词:遗传算法,优化算法,收敛性
参考文献
[1]Holland J.H.Adaptation in Natural and Artificial Systems[M].Ann Arbor:University of Michigan Press, 1975.
[2]边霞, 米良.遗传算法理论及其应用研究进展[J].计算机应用研究, 2010, 27 (7) .
[3]王东生.遗传算法及其应用[M].人民邮电出版社, 1996.
[4]周国华.遗传算法及其在生产调度中的应用[J].西南交通大学学报:社会科学版, 2000, 1 (2) .
[5]田莹, 苑玮琦.遗传算法在图像处理中的应用[J].中国图象图形学报, 2007, 12 (3) .
层次遗传算法 篇9
教学中的最后一个环节, 也是最能体现学生学习情况、教师授课效果的环节就是考试。但面对各高校每年大量扩招的现状, 考试命题、阅卷等工作越来越繁重, 这无疑使得命题效率、试卷质量、阅卷差错率受到或多或少的影响。同时, 传统命题方式, 可能产生不同教师命题, 内容侧重点、难点有所差异, 无法更客观、公正地反映学生的学习效果及教师的教学质量, 无法对教师的教学改革提供更积极有益的理论指导。因此, 推行无纸化考试, 采用高效智能算法自动生成试题成为对学生考核手段变革的必然。
组卷问题是一个全局寻优的问题, 在寻优过程中需要综合考虑章节 (ch) 、题型 (ty) 、知识点 (Kn) 、难度系数 (Di) 、区分度 (De) 、答题时间 (Ti) 、分数 (Sc) 等各种约束条件。则每道题目可用一个形如: (Ch, Ty, Kn, Di, De, Ti, Sc) 的7维向量描述。设题库中题目数量为n, 则n道题目可用式 (1) 所示的7×n阶矩阵描述。
式 (1) 中:七种参数既可由用户手工输入, 也可利用之前的模板自动产生。试卷生成算法可转化为如何在已有n道题目的题库中选择m道题目, 使这m道题目在章节、知识点、难度系数、区分度等方面满足或最接近用户的需求, 即在该7×n阶矩阵中选则最优的7×m阶子矩阵。
1 传统试卷生成算法
经过20多年的发展, 目前主要采用的试卷生产算法有以下三种:
1.1 随机选取法
根据用户输入的考试要求, 随机从试题库中选取满足条件的试题组成试卷, 直到整份试卷组成或已搜索到题库末尾。该方法具有很大的随机性和不确定性, 无法从整体上把握教学的要求, 不具有智能性[1], 且组卷效率低下。
1.2 回溯试探法
即将随机选取法产生的每一个状态类型记录下来, 当搜索失败时释放上次的状态类型, 再按照一定的变换规律重新选取, 直到满足要求的整份试卷自动生成[2]。
1.3 传统遗传算法
遗传算法 (Genetic Algorithm) 是模拟达尔文进化论的自然选择和遗传学机理的生物进化过程的计算模型, 是一种通过模拟自然进化过程搜索最优解的方法。遗传算法从代表问题可能潜在的解集的一个种群 (Population) 开始, 而一个种群则由经过基因 (Gene) 编码的一定数目的个体 (Individual) 组成。每个个体实际上是染色体 (Chromosome) 带有特征的实体。应用于组卷中, 种群即初始交配池中试卷的集合, 个体即每一套试卷而染色体即组成该试卷的每道试题。传统遗传算法生成试卷的思路如图1所示。
首先按特定方法对试题进行编码, 然后从原始题库中抽取出一定数量的试题生成n份初始试卷, 作为遗传算法的交配池。计算其中每份试题的适应度值, 并按照预先设置好的复制、交叉、变异原则进行相应运算, 衡量适应度值是否满足要求。如果满足则解码生成试卷, 否则继续进行交叉变异等各项运算, 直至适应度值满足要求或达到预先设定好的代数要求为止。
2 基于改进遗传算法的试卷生成算法设计
遗传算法具有内在的并行性, 全局寻优和收敛速度快的特点, 这些都易于处理试题库自动组卷问题[3]。但基于传统的遗传算法的组卷方法易发生早熟、收敛速度慢等问题, 针对这些问题, 魏平等[4]采用稳态策略的单亲遗传算法求解组卷问题, 通过突变算子的引入, 使整个种群保持在最有可能获得成功的状态, 加快算法向全局最优值的逼近速度。王淑佩等[5]提出了一种自适应调整种群适应值分布的基于小生境技术的遗传算法并将之应用于求解组卷问题。
本文采用一种新的基于改进遗传算法的试卷生成算法, 具体设计如下:
2.1 编码设计及初始种群的生成
试题编码采用分组自然数编码方式。按照题型将其分为不同组, 组内采用自然数按照题目录入的先后顺序编码。在系统生成试卷前, 首先需要用户提供期望的难度、章节、及命题蓝图。如:用户期望的试卷难度为0.8, 命题范围为1~6章, 并选用1号命题蓝图, 即:整份试卷满分100, 其中选择题20×2分、填空题10×1分、判断题10×1分、简答题4×5分、程序设计题2×10分。运用石中盘[6]的理论, 根据用户输入的期望难度值自动生成各种难度试题占整份试卷的百分比, 再在遵从章节分配和命题蓝图等约束条件的前提下, 随机生成初始种群。表现形式如表1, 表2所示。
2.2 适应度函数
适应度函数用于衡量个体性能的优略程度, 他的设计对遗传算子有很大影响, 是优化个体的依据[7]。本文采用实际属性值和用户期望值之差作为适应度函数, 差值越小说明个体适应度越高, 越符合用户的期望, 反之, 适应性越低。
试卷难度:Di (x) =Dih-g (x) 。式中:Dih为用户期望的难度系数;
同理可得出区分度的适应度函数De (x) 。
章节:C (xi) =Ch-Ci。式中C (xi) 为第i章的值, Ch为用户期望该章节试题占整份试卷的比例;Ci为该章节题目实际所占比例。
整份试卷的适应度:
F (x) =max[Di (x) , De (x) , C (x) ]
2.3 选择算子
对原种群中的个体按适应度值的大小排序, 取值最小的前20%个体直接进入下一代种群, 余下的个体两两配对, 按交叉、变异概率进行相应运算。
2.4 交叉算子及变异算子
为了避免早熟及收敛速度慢等问题, 在交叉算子和变异算子的设计上采用自适应方法, 根据不同个体的适应度值选取适合自己的交叉和变异算子。给定标准交叉、变异概率 (j, b) , 当适应度函数的值较大时, 个体的交叉、变异概率增大。
交叉概率:
变异概率:
3 结 语
经试验, 该算法在交叉概率j为0.78~0.82, 变异概率b=0.3, 种群大小Popsize=80, 固定最大代数Maxgen=150时可快速、高效得到有用解。
参考文献
[1]全惠云, 范国闯.基于遗传算法的试题库智能组卷系统研究[J].武汉大学学报:自然科学版, 1999, 45 (5) :758-760.
[2]杨青.基于遗传算法的试题库自动组卷问题的研究[J].济南大学学报:自然科学版, 2004, 18 (3) :228-230.
[3]王淑佩, 易叶青.基于改进自适应遗传算法的组卷研究[J].科学技术与工程, 2006, 6 (4) :469-473.
[4]魏平, 干海光, 熊伟清.基于进化稳定策略的单亲遗传算法求解组卷问题[J].微电子学与计算机, 2005, 21 (2) :105-109.
[5]王淑佩.一种新的基于小生境的自适应遗传算法[D].兰州:兰州理工大学, 2006.
[6]石中盘, 韩卫.基于概率论和自适应遗传算法的智能抽题算法[J].计算机工程, 2002 (1) :141-143.
[7]周文举.基于遗传算法的自动组卷系统研究与实现[D].济南:山东师范大学, 2006.