- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
遗传问题求解函数最优化问题.docx
PAGE \* MERGEFORMAT 11
人工智能大作业遗传问题求解函数最优化问题
姓 名:
学 号:
班 级:
日 期:
PAGE \* MERGEFORMAT 1
基本遗传算法及其在函数优化中的应用
摘要
遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。
遗传算法是一种是模拟生物遗传学和自然选择机理,通过人工方式构造的一类优化搜索算法,其编码技术和遗传操作比较简单,优化不受限制条件的约束,不需要有先验条件。其搜索过程是从问题解的一个随机产生的集合开始的,而不是从单个个体开始的,具有隐含并行搜索特性,也就大大减少可陷入局部极小值的可能。因而,遗传算法在求解函数优化问题中有着良好的应用,同时,遗传算法在解决可能在求解过程中产生组合爆炸的问题时会产生很好的效果。
关键字:遗传算法 函数优化 人工智能
前言
这是一个关于遗传算法的问题,而本文的主要目的就是利用C语言编写程序实现利用遗传算法中的编码,变异,交叉,复制来求解函数最大值的问题。
遗传算法概述
遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术
遗传算法基本机理
遗传算法是模拟生物遗传学和自然选择机理,通过人工方式构造的一类优化搜索算法,是对生物进化过程进行的一种数学仿真,是进化计算的一种重要形式。遗传算法与传统数学模型截然不同,它为那些难以找到传统数学模型的难题找出了一个解决方法。同时,遗传算法借鉴了生物科学中的某些知识,从而体现了人工智能的这一交叉学科的特点。遗传算法基本机理主要分为以下三方面:
编码与解码
将问题结构变换为位串形式编码表示的过程叫做编码;相反的,将位串形式编码表示变换为原问题结构的过程叫做解码或者译码。把位串形式编码表示叫做染色体,有时也叫做个体。
适应度函数
为了体现染色体的适应能力,引入了对问题中的每一个染色体都进行度量的函数,叫做适应度函数(fitness function)。通过适应度函数来决定染色体的优劣程度,它体现了自然界进化中的优胜劣汰原则。对于优化问题,适应度函数就是目标函数。
遗传操作
简单的遗传算法操作主要有三种:选择(selection)、交叉(crossover)、变异(mutation)。改进的遗传算法大量扩充了遗传操作,以达到更高的效率。
选择操作也叫做复制操作(reproduction)操作,根据个体的适应度函数值所度量的优劣程度决定它在下一代是被淘汰还是被遗传。
交叉操作的简单方式是将被选择出的两个个体P1和P2作为父母个体,将两者的部分码值进行交换。
变异操作的简单方式是改变数码串的某个位置上的数码。
遗传算法基本步骤
1、初始化种群;
2、计算种群上每个个体的适应度值;
3、按由个体适应度值所决定的某个规则选择将进入下一代的个体
4、按概率PC进行交叉操作
5、按概率PC进行变异操作
6、若没有满足某种停止条件,则转步骤2),否则进入下一步;
7、输入种群中适应度值最优的染色体作为问题的满足解或最优解
基本遗传算法框图
基本遗传算法框图
开始
GEN:=0
产生初始种群
计算每个个体的适应值
i:=0
依概率选择遗传操作
选择两个个体
i:=i+1
执行杂交
将两个后代插入新种群
是否满足停止准则
i:=M?
选择一个个体
执行复制
复制到新种群
选择一个个体tiytiyu 体
执行变异
插入到新种群
GEN:=GEN+1
执行结果
结束
I=i+1
复制
交叉
变异
是
是
否
I=i+1
是
否
是
否
复制 变异
交叉
遗传算法求解举例
利用遗传算法求解函数:
f(x)=x*sin(10π*x)+1.0
的最大值,其中,x∈[-1,2]|。
编程实现
const int MAX = 4194304;
const int MIN = 0;
#
文档评论(0)