遗传算法实验报告材料

遗传算法实验报告材料

ID:39729408

大小:87.76 KB

页数:9页

时间:2019-07-10

遗传算法实验报告材料_第1页
遗传算法实验报告材料_第2页
遗传算法实验报告材料_第3页
遗传算法实验报告材料_第4页
遗传算法实验报告材料_第5页
资源描述:

《遗传算法实验报告材料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、标准文档信息与管理科学学院计算机科学系实验报告课程名称:人工智能实验名称:遗传算法问题姓名:苏鹏海贾美丽赵妍张汉昭学号:15100030631510003024班级:计科实验室:软件技术实验室指导教师:张慧日期:2016.11.09实用文案标准文档&&遗传算法问题一、实验目的1.熟悉和掌握遗传算法的原理、实质;2.学会使用遗传算法解决问题;3.学会编写遗传算法程序寻找函数最值;二、实验原理遗传算法是仿真生物遗传学和自然选择机理,通过人工方式所构造的一类搜索算法,从某种程度上说遗传算法是对生物进化构成进行的数学方式仿真。在遗传算法中染色体对应的是一系列符号序列,在标准

2、的遗传算法(即基本遗传算法)中,通常用0,1组成的位串表示,串上各个位置对应基因座,各位置上的取值对应等位基因。遗传算法对染色体进行处理,染色体称为基因个体。一定数量的基因个体组成基因种群。种群中个体的数目为种群的规模,各个体对环境的适应程度称为适应度。三、实验内容用遗传算法求根号2,也就是求方程f(x)=x*x-2=0的正整数解,x=1时f(1)<0,x=2时f(2)>0,由介值定理,则1到2中间存在一个根,根据代数基本定理和根的对称性知这就是我们要找的根,由目标函数得到适应度函数,我们选择个体都在[1,2]之间,那适应度函数我可以取j(x)=40/(2+

3、x*x

4、-2

5、)-10,由x的取值范围知j的范围是(0,10)x和y交叉就用取平均(x+y)/2,交叉概率取0.9,变异概率为0,四、步骤分析1.选择目标函数,确定变量定义域及编码精度,形成编码方案2.随机产生一个规模为(即该种群中含有个体)的种群23.个体评价:计算群体P(t)中各个个体适应度4.选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。(选择运算用轮盘赌算法)实用文案标准文档1.对被选择进入匹配池中的个体进行交叉操作,形成新种群2.以小概率在种群中选择

6、个体进行变异操作形成新种群3.计算每个个体的适值4.根据适值概率选择新个体形成新种群5.检查结束条件,若满足则算法结束,当前种群中适值最高的个体即所求解;否则转3选择操作:首先要知道适应度函数,所谓的适应度函数就是评价函数,通常是问题的目的函数(或它的倒数),它描述了个体的优劣程度同时也决定了选择操作的概率,设fi表示第i个个体的适应度值,那选择第i个个体的概率就是fi/∑fj,简单来说,这个概率的大小就决定了该个体是被淘汰还是被保留。通常的具体做法是用类似赌盘的方法,每个个体占它的适应度那么宽的转盘大小,每次掷色子,落到哪一格就选哪一格对应的个体。交叉操作:实用文

7、案标准文档交叉操作就是让2个以上的染色体进行交叉产生后代的过程,具体的交叉操作要看具体的问题。不过我觉得有一个原则,就是要有对称性,交叉得到的后代中的基因要来源于父代的所有个体中,也就是说n个个体进行交叉是和它们的排列没关系,这样子代才有机会得到更优秀的基因。交叉操作是遗传算法中最重要的操作。最简单的基本方式是交换父代中染色体片段。变异操作:生物可以突变,有时候突变是好的,有时候却是坏的,但正是因为有了突变才让有限的种群中基因库可以非常丰富,也保证了种群的适应能力。变异操作通常是翻转个体中某段染色体,编码后的染色体在计算机中都是01串,也就可以随机的翻转某个(或多个

8、)bit上的值。交叉和变异不是一定要发生在选择了的个体上,而是按一定控制概率发生的,交叉概率比较高通常是0.6~0.95,而变异概率比较低通常是0.001~0.01。五、实验程序#include#include#includetypedefstruct_indi//个体{doublecode;//染色体doubledegree;//适应度}Indi;Indigroup[40];//种群规模为40//------------------------------------------------------//适应

9、度算法voidJudge(Indi&x)//适应度算法{实用文案标准文档doubletmp=x.code*x.code-2.0;if(tmp>=0)x.degree=40.0/(2.0+tmp)-10.0;elsex.degree=40.0/(2.0-tmp)-10.0;}//------------------------------------------------------inthappened(doublep)//是否发生一个概率在p=0~1的事件{returnrand()<(int)(p*RAND_MAX);}//-----------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。