课程设计(论文)-基于遗传算法的猕猴桃的培苗变异的仿真.docx_第1页
课程设计(论文)-基于遗传算法的猕猴桃的培苗变异的仿真.docx_第2页
课程设计(论文)-基于遗传算法的猕猴桃的培苗变异的仿真.docx_第3页
课程设计(论文)-基于遗传算法的猕猴桃的培苗变异的仿真.docx_第4页
课程设计(论文)-基于遗传算法的猕猴桃的培苗变异的仿真.docx_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计报告(利用遗传算法仿真猕猴桃组培苗变异)学院:专业:姓名:学号:指导老师:昆明理工大学目录一、绪论1. 任务 - 32. 对象 - 33. 意义 - 34. 技术路线 - 35. 遗传算法 -5二、设计1. 框架 - 72. 程序流程图 - 73. 运行结果 - 94. 分析总结 - 11三、软件著作权1. 软件结构与开发环境-112. 设计说明-123. 附录-12四、心得体会-13一、绪论31、任务32、对象33、意义44、技术路线41、JDK的获取42、JDK的安装及环境变量的配置43、Eclipse的获取与安装65、遗传算法61、选择:62、交叉73、变异74、终止条件8二、设计91、框架92、程序流程图93、运行结果104、分析总结12三、软件著作权131、软件结构与开发环境132、设计说明133.附录13四、心得体会15一、绪论1、任务掌握JAVA语言环境的搭建,利用生物分子学内容,通过适应性函数等相关遗传算法对贝酵母SSUI基因的部分基因序列进行识别,筛选。最终观察分析结果,从适应度等角度得到变异前后的差别联系,得到最优基因。2、对象贝酵母SSUI基因的部分基因序列。3、意义基因识别是生物信息学的一个重要分支,使用生物学实验或计算机等手段识别DNA序列上的具有生物学特征的片段。基因识别的对象主要是蛋白质编码基因,也包括其他具有一定生物学功能的因子,如RNA基因和调控因子。基因识别是基因组研究的基础。利用JAVA程序的搭建,运用遗传算法对基因序列进行一代一代的变异遗传,然后对结果进行分析对比,得到最优基因。最优基因的个体具有较强的适应性,是最适合环境的生物个体。据此可以对遗传规律进行总结,对生物进行筛选。4、技术路线1、JDK的获取从Oracle公司的网站上可以免费获取各种版本的JDK,Oracle公司的网址。注意这次设计实用的是JDK 1.72、JDK的安装及环境变量的配置JDK有安装版和直接解压版。安装版安装方法如下:(1)找到下载的安装包,双击运行。注意:如果是32位系统运行jdk-7u60-windows-i586.exe,64位操作系统运行jdk-7u60-windows-x64.exe。(2)按照系统提示安装JDK,需注意的是再安装时安装路径尽量不要再C盘,并且安装路径不要包含空格和中文。(3)环境变量配置Windows XP:在桌面右击“我的电脑”,然后单击“属性”,在“系统属性”对话框中选择“高级”选项卡,然后单击“环境变量”按钮,打开“环境变量”对话框,找到“系统变量”中名为Path的行,单击编辑,将JDK中bin目录的安装路径加入到环境变量中。为了编程方便可以新建一个classpath的环境变量,并将JDK中lib目录的安装路径加入到该环境变量中。Windows 7,windows 8,windows 8.1:在桌面右击“我的电脑”,然后单击“属性”,在“系统”对话框中选择“高级系统配置”,在打开的“系统属性”对话框中选择“高级”选项卡,然后单击“环境变量”按钮,打开“环境变量”对话框,找到“系统变量”中名为Path的行,单击编辑,将JDK中bin目录的安装路径加入到环境变量中。为了编程方便可以新建一个classpath的环境变量,并将JDK中lib目录的安装路径加入到该环境变量中。3、Eclipse的获取与安装Eclipse是IBM的开源项目,可以从Eclipse官方网站( )免费获取。将下载的压缩包解压至一个不包含中文字符的目录下,即完成安装。双击eclipse.exe打开eclipse。5、遗传算法遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域,是现代有关智能计算中的关键技术。遗传算法的基本运算过程如下:(1)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。(2)个体评价:计算群体P(t)中各个个体的适应度。(3)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。(4)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。(5)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。(6)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。1、选择:从群体中选择优胜的个体,淘汰劣质个体的操作叫选择。选择算子有时又称为再生算子(reproduction operator)。选择的目的是把优化的个体(或解)直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的,目前常用的选择算子有以下几种:适应度比例方法、随机遍历抽样法、局部选择法等。其中轮盘赌选择法 (roulette wheel selection)是最简单也是最常用的选择方法。在该方法中,各个个体的选择概率和其适应度值成比例。显然,概率反映了个体i的适应度在整个群体的个体适应度总和中所占的比例。个体适应度越大。其被选择的概率就越高、反之亦然。计算出群体中各个个体的选择概率后,为了选择交配个体,需要进行多轮选择。每一轮产生一个0,1之间均匀随机数,将该随机数作为选择指针来确定被选个体。个体被选后,可随机地组成交配对,以供后面的交叉操作。2、交叉在自然界生物进化过程中起核心作用的是生物遗传基因的重组(加上变异)。同样,遗传算法中起核心作用的是遗传操作的交叉算子。所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。通过交叉,遗传算法的搜索能力得以飞跃提高。交叉算子根据交叉率将种群中的两个个体随机地交换某些基因,能够产生新的基因组合,期望将有益基因组合在一起。根据编码表示方法的不同,可以有以下的算法:1)实值重组(real valued recombination)2)离散重组(discrete recombination)3)中间重组(intermediate recombination)4)线性重组(linear recombination)5)扩展线性重组(extended linear recombination)。6)二进制交叉(binary valued crossover)7)单点交叉(single-point crossover)8)多点交叉(multiple-point crossover)9)均匀交叉(uniform crossover)10)洗牌交叉(shuffle crossover)11)缩小代理交叉(crossover with reduced surrogate)。最常用的交叉算子为单点交叉(one-point crossover)。具体操作是:在个体串中随机设定一个交叉点,实行交叉时,该点前或后的两个个体的部分结构进行互换,并生成两个新个体。下面给出了单点交叉的一个例子:个体A:1 0 0 1 1 1 1 1 0 0 1 0 0 0 新个体个体B:0 0 1 1 0 0 0 0 0 1 1 1 1 1 新个体3、变异变异算子的基本内容是对群体中的个体串的某些基因座上的基因值作变动。依据个体编码表示方法的不同,可以有以下的算法:a)实值变异b)二进制变异。一般来说,变异算子操作的基本步骤如下:a)对群中所有个体以事先设定的变异概率判断是否进行变异b)对进行变异的个体随机选择变异位进行变异。遗传算法引入变异的目的有两个:一是使遗传算法具有局部的随机搜索能力。当遗传算法通过交叉算子已接近最优解邻域时,利用变异算子的这种局部随机搜索能力可以加速向最优解收敛。显然,此种情况下的变异概率应取较小值,否则接近最优解的积木块会因变异而遭到破坏。二是使遗传算法可维持群体多样性,以防止出现未成熟收敛现象。此时收敛概率应取较大值。遗传算法中,交叉算子因其全局搜索能力而作为主要算子,变异算子因其局部搜索能力而作为辅助算子。遗传算法通过交叉和变异这对相互配合又相互竞争的操作而使其具备兼顾全局和局部的均衡搜索能力。所谓相互配合.是指当群体在进化中陷于搜索空间中某个超平面而仅靠交叉不能摆脱时,通过变异操作可有助于这种摆脱。所谓相互竞争,是指当通过交叉已形成所期望的积木块时,变异操作有可能破坏这些积木块。如何有效地配合使用交叉和变异操作,是目前遗传算法的一个重要研究内容。基本变异算子是指对群体中的个体码串随机挑选一个或多个基因座并对这些基因座的基因值做变动(以变异概率P.做变动),(0,1)二值码串中的基本变异操作如下:基因位下方标有*号的基因发生变异。变异率的选取一般受种群大小、染色体长度等因素的影响,通常选取很小的值,一般取0.0010.1。4、终止条件当最优个体的适应度达到给定的阈值,或者最优个体的适应度和群体适应度不再上升时,或者迭代次数达到预设的代数时,算法终止。预设的代数一般设置为100-500代。采用4位DNA编码,M条基因,交叉2带的计算。采用四进制编码。0,1,2,3分别代表G,A,T,C即:。用编码随机产生一个小数,进过筛选适应度后,进行交叉、变异计算后输出计算结果包的定义基因类(Gene)基因型类(GeneType)表现型类(PhenoType)染色体类(Chromsome)个体类(抽象Individual,具体类RosenbrockIndividual)种群类(抽象类Population,具体类RosenbrockPopulation)遗传类(抽象类GeneticAlgorithm,具体类RosenbrockGeneticAlgorithm)类的定义包含成员:(1)常量: (2)成员:(3)成员方法:成员函数(1)群体初始化函数(2)解码函数(3)计算适应值函数(4)选择复制函数(5)交叉函数(6)变异函数(7)主函数二、设计1、框架以贝酵母SSUI基因为大的设计框架,再提取其中的八组基因序列进行研究,将这八组基因分别视为一个种群的八个个体,运用交叉遗传生物学知识、java语言、rosebroken函数、碱基序列与二进制的转换以及相关的遗传算法编程计算出该八组基因中的优势基因以及个体之间的遗传关系。2、程序流程图遗传算法进行问题求解的实质是,在解的空间中不断遗传,而遗传过程中通过适应度值,选择更适应问题的解作为幸存者和后代,逐步逼近最优解。确定实际问题参数集对参数集进行编码初始种群满足停止规则?遗传操作产生新一代种群结束1位串编码的参数2计算目标函数值3函数值向适应度值映射4适应度值调整评价种群三个基本算子1选择2交叉3变异3、运行结果算法一代数初代-0.227561.592889239.00810.242616第一代-0.227561.592889239.00810.239842第二代-0.097521.332825176.32070.125第三代-0.097521.332825176.32070.125第四代-0.032511.332825178.42680.12537第五代-0.032511.332825178.42680.125185第六代-0.032511.332825178.42680.125第七代-0.032511.332825178.42680.229419第八代-0.032511.332825178.42680.137518第九代-0.032511.332825178.42680.127285第十代-0.032511.332825178.42680.133381第十一代-0.032511.332825178.42680.125第十二代-0.22756-1.78794339.96310.152102图1算法二代数初代-0.227561.592889239.00810.242616第一代-0.227561.592889239.00810.182306第二代-0.227561.592889239.00810.133771第三代-0.227561.592889239.00810.129237第四代-0.097521.592889251.91310.129995第五代-0.097521.592889251.91310.129995第六代-0.097521.592889251.91310.130866第七代-0.097521.592889251.91310.129995第八代-0.162541.592889246.73420.127495第九代-0.162541.592889246.73420.126485第十代-0.227561.592889239.00810.324188第十一代-0.877711.59288971.177510.125第十二代-0.877711.59288971.177510.125图二 算法四代数初代-0.227561.592889239.00810.242616第一代-0.227561.397841182.69460.148991第二代-0.227561.592889239.00810.159001第三代-0.227561.592889239.00810.13206第四代-0.227561.592889239.00810.125第五代-0.227561.592889239.00810.255445第六代0.8126981.65790599.520950.125第七代0.8126981.65790599.520950.125第八代0.8126981.65790599.520950.125第九代0.8126981.65790599.520950.125第十代0.0325081.657905275.45060.135846第十一代0.0325081.657905275.45060.135846第十二代0.0325081.657905275.45060.143887图三4、分析总结由以上运行结果可以得出以下结论:1、 由前12代的数据分析,最优个体基因序列为ACGCTG;2、 从这四组数据图表可观察出个体一的适应度与相对适应度都远远大于其余几组个体,即最优个体的平均适应度为239.0081,平均相对适应度为0.24261577;3、 由以上四组折线图可以观察出这个体一般在第9代,第10代发生较大的波折;4、 这八组个体前5代基本都在发生相应变异,从第5代开始基本是种群整体两代一变,并且朝着优势基因发生变异;5、 通过这八个个体的数据分析,可发现这八个个体均在第10代左右适应度与相对适应度趋近于0,且发生较大的突变;6、 由以上几组折线图可看出这四组个体均在第5代开始收敛;三、软件著作权1、软件结构与开发环境使用遗传算法进行基因序列的识别基于windows平台,数据来自贝酵母ssual基因。环境需要JavaJDK安装包,JDK是Java Development Kit的缩写,也就是开发工具包,里面内含平时用户用到的JRE,也就是Java Runtime Enviroment运行环境。设备器材:计算机软件:(1)JDK 1.7及以上;(2)Eclipse-standard-luna;(3)、IDE软件:Eclipse;2、设计说明使用遗传算法-遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域,是现代有关智能计算中的关键技术。遗传算法的基本运算过程如下:(1)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论