算法概要设计文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法概要设计文档
引言
1.1编写目的
本文档为“基于改进实数的遗传算法求解高维问题”算法设计的概要设计说明书,为算法的改进详细的设计的主要依据。读者为项目组成员,使得项目组内成员对整个算法的主要功能以及其概要的实现手段有一个宏观的把握,是算法的一个雏形,同时也是最基本的引导性文档。
1.2编写背景
①算法名称:基于改进实数的遗传算法求解高维问题
②算法负责人:周振永
③参与人员:周振永,杨耀峰,刘俊
④指导教师:魏静萱
1.3术语及说明
a.遗传算法:是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计
算模型,是一种通过模拟自然进化过程搜索最优解的方法
b.交叉:来自两个不同个体的基因的重新组合
c.变异:在一定情况下基因发生变化
d.适度值:个体适应环境能力的大小
1.4参考资料
1)函数全局优化的改进实数遗传算法,金芬、徐小平
2)实数遗传算法的改进研究,王福林、王吉权、吴昌友、吴秋峰
总体设计
2.1需求设计
在求解连续参数优化问题时,基本的遗传算法(SGA)存在全局优化能力不强、易于陷入局部最优,从而导致求解效率低和求解精度不高等缺陷。与基本遗传算法相比,实数编码的遗传算法不仅收敛速度快,而且精度高,因此基于实数编码的遗传算法得到越来越多的国内外学者的重视和研究,但基本的实数遗传算法不能有效地求解多峰函数的优化问题,在优化问题的维数较高时问题更加突出。为此很多文献提出了改进
2.2运行环境
本算法是在win7 64位系统,4G内存,1.3GHz CPU PC电脑上的VS2012平台下进行测试
2.3基本算法的操作流程
步骤1 初始化种群,在一定范围内,随机产生popsize个个体作为初始种群
步骤2计算种群的目标函数值,排序后并按照选择度选择最低的那一段个体作为之后的变异能够达到最优的主力军,并存储起来
步骤3从种群按一定的交叉比率随机选择m(m是3的倍数)个个体,然后按照交叉算法,以及变异算法进而得到新的m个个体
步骤4将原种群与新生成的这m个个体进行排序并选择按目标值排序得到的最优的按选择度得到的最优的几个个体
步骤5然后将在步骤2中得到的那最低的一段与步骤4种得到的一段进行合并,然后就组成了新的一代
步骤6判断是否满足收敛条件,若满足则输出最优解,否则转向步骤2
2.4基本算法流程图
2.5尚未解决的问题
目前算法对于7个测试的低维函数都能快速收敛,跳出局部最优,迅速找到最优值,但是对于高维函数来说,确实有点难度,目前仍在研究
模块设计
3.1适度函数
在适度函数阶段,我们采用的仍是目标函数,不过由于采取了与传统不同的选择策略,并不会陷入局部最优
3.2选择模块
在选择模块中,这里在初始化种群的时候,按照选择度,存储排序后低段的一部分个体作为下一代个体的低段,而高段来源于子代交叉变异后与原代组合然后排序后的高段。
3.3交叉模块
在这里采用的是按照三角形计算中心点的思路,就是计算三个个体的中心点,然后各自个体与中心点值进行一定比率的加减然后得到交叉后的值,不过这个值仍然有一定的随机性
3.4变异模块
变异算子有很多个,这里采用的是多层变异,就是对于一个被选到的个体,则对其变异n次成功的变异,而且每一次变异必须比前一次的值最优才算一次成功的变异,这样n次成功变异之后所得的个体肯定是比较优秀的