《基本遗传算法及其在函数优化中的应用-021050谭同学》由会员分享,可在线阅读,更多相关《基本遗传算法及其在函数优化中的应用-021050谭同学(12页珍藏版)》请在人人文库网上搜索。

1、基本遗传算法及其在函数优化中的应用摘要遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。遗传算法是一种是模拟生物遗传学和自然选择机理,通过人工方式构造的一类优化搜索算法,其编码技术和遗传操作比较简单,优化不受限制条件的约束,不需要有先验条件。其搜索过程是从问题解的一个随机产生的集合开始的,而不是从单个个体开始的,具有隐含并行搜索特性,也就大大减少可陷入局部极小值的可能。因而,遗传算法在求解函数优化问题中有着良好的应用,同时,遗传算法在解决可能在求解过程中产生组合爆炸的问题时会产生很好的效果。关键字:遗传算法 函数优化。

2、 人工智能前言这是一个关于遗传算法的问题,而本文的主要目的就是利用C语言编写程序实现利用遗传算法中的编码,变异,交叉,复制来求解函数最大值的问题。一、 遗传算法概述遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和。

3、指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术二、 遗传算法基本机理遗传算法是模拟生物遗传学和自然选择机理,通过人工方式构造的一类优化搜索算法,是对生物进化过程进行的一种数学仿真,是进化计算的一种重要形式。遗传算法与传统数学模型截然不同,它为那些难以找到传统数学模型的难题找出了一个解决方法。同时,遗传算法借鉴了生物科学中的某些知识,从而体现了人工智能的这一交叉学科的特点。遗传算法基本机理主要分为以下三方面:1、 编码与解码将问题结构变换为位串形式编码表。

4、示的过程叫做编码;相反的,将位串形式编码表示变换为原问题结构的过程叫做解码或者译码。把位串形式编码表示叫做染色体,有时也叫做个体。2、 适应度函数为了体现染色体的适应能力,引入了对问题中的每一个染色体都进行度量的函数,叫做适应度函数(fitness function)。通过适应度函数来决定染色体的优劣程度,它体现了自然界进化中的优胜劣汰原则。对于优化问题,适应度函数就是目标函数。3、 遗传操作简单的遗传算法操作主要有三种:选择(selection)、交叉(crossover)、变异(mutation)。改进的遗传算法大量扩充了遗传操作,以达到更高的效率。选择操作也叫做复制操作(reproduc。

5、tion)操作,根据个体的适应度函数值所度量的优劣程度决定它在下一代是被淘汰还是被遗传。交叉操作的简单方式是将被选择出的两个个体P1和P2作为父母个体,将两者的部分码值进行交换。变异操作的简单方式是改变数码串的某个位置上的数码。4、 遗传算法基本步骤1、初始化种群;2、计算种群上每个个体的适应度值;3、按由个体适应度值所决定的某个规则选择将进入下一代的个体4、按概率PC进行交叉操作5、按概率PC进行变异操作6、若没有满足某种停止条件,则转步骤2),否则进入下一步;7、输入种群中适应度值最优的染色体作为问题的满足解或最优解5、 基本遗传算法框图基本遗传算法框图开始GEN:=0产生初始种群计算每个。

6、个体的适应值i:=0依概率选择遗传操作选择两个个体i:=i+1执行杂交将两个后代插入新种群是否满足停止准则i:=M?选择一个个体执行复制复制到新种群选择一个个体tiytiyu 体执行变异插入到新种群GEN:=GEN+1执行结果结束I=i+1复制交叉变异是是否I=i+1是否是否复制变异交叉6、 遗传算法求解举例利用遗传算法求解函数:f(x)=x*sin(10*x)+1.0的最大值,其中,x-1,2|。7、 编程实现const int MAX = ;const int MIN = 0;#include #include /产生随机数要用到time(int),以使每次产生的数不同。#include 。

7、/sin(float)在这儿。using namespace std; const double pi = 3.; class Individuality private:int chromosome; /染色体public:void set(int chromosome) this-chromosome = chromosome; Individuality operator =(Individuality c) this-chromosome = c.chromosome; return *this; bool operator =(Individuality c) return this。

8、-chromosome = c.chromosome; float resolve() /通过染色体取得x的值. return -1.0 + (float)chromosome * 3.0 / (MAX - 1); float evaluate() /求f() return resolve() * (float)sin(10*pi*resolve() + 1.0;void print() cout = 0; j-) /以下循环是在以二进制串的形式打印染色体if(1chromosome = 1 0; gap /= 2)for(i = gap; i =0 & indj.evaluate() cri。

9、sscross(tempn1, tempn2, temp1, temp2);indi = temp1; indi+1 = temp2;for(i = nv+nc*2; i indi.evaluate() ) max = indi+1;return max;void traverse( ) for(int i = 0; i 30) break;a.traverse();gen+;cout The max is:n;a.getMax().print();cout After gen generations.n;return 0;三、 实验结果结论这是迭代60次之后的结果,求得的最大值是2.8502。

10、7,此时的x为1.85054这是迭代54次之后的结果,求得的最大值是2.85027,此时的x为1.85059结论:传统的搜索方法由于其应用的局限性,在某些情况下可能搜索到局部最优点,而不能达到全局最优点。利用遗传算法搜索函数最优点的方法极大地提高了搜索全局最优点的准确性,有效地避免了组合爆炸地产生。因此,遗传算法在求解复杂的优化问题中具有广泛的应用前景。四、 参考文献主要参考文献:1蔡自兴 徐光祐.人工智能及其应用.北京:清华大学出版社, 2009。2王小平,曹立明.遗传算法-理论、应用与软件实现.西安:西安交通大学出版社,2002。3Schmitt, Lothar M (2001), 遗传算法理论,Theoretical Computer Science (259), pp. 1-614陈国良等,遗传算法及其应用,北京:人了邮电出版社,19965蒋冬初,遗传算法及其在函数优化问题中的应用研究,毕业论文,20046维基百科http:/zh.wikipedia.org/zh/%E9%81%97%E4%BC%A0%E7%AE%97%E6%B3%957 百度百科http:/baike.baidu.com/view/45853.htm#1。

采用遗传算法求解最大值c语言,基本遗传算法及其在函数优化中的应用-021050谭同学...相关推荐

  1. 采用遗传算法求解最大值c语言,遗传算法求解y=x2.doc

    遗传算法求解y=x2 初始遗传算法及一个简单的例子 遗传算法(Genetic Algorithms, GA)是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法.它模拟自然选择和自然遗传过程中发生的 ...

  2. 采用遗传算法求解最大值c语言,遗传算法求解函数最大值用例

    学习遗传算法自己改了一个用例,感谢下面两篇文章的作者: /*********************************************************************** ...

  3. C语言试题七之将函数字符串中的前导*号全部删除,中间和尾部的*号不删除。

    1. 题目 规定输入字符串中只包含字母和*号.请编写函数fun,它的功能是:将函数字符串中的前导*号全部删除,中间和尾部的*号不删除. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试 ...

  4. 遗传算法求解装箱问题c语言,求解装箱问题的遗传算法-南昌航空大学期刊网.pdf...

    求解装箱问题的遗传算法-南昌航空大学期刊网 1998 2 Journal of Nanchang Institute of Aeronautical Technology 21998 方 平 李 娟 ...

  5. 遗传算法求解装箱问题c语言,装箱或背包问题? (或者遗传算法解决)

    共有三个箱子分别容量为200.500.1000 ;物品有四个重量分别为150.200.300.800; 要求一次装箱把所有物品装完.箱子可以有空的,请问一共有多少种算法? 输出例子: 第一种装箱 :  ...

  6. 量子遗传算法求解带多种约束的多元线性/非线性函数最值

    量子遗传算法是由传统遗传算法和量子转换结合而来的一种智能算法,与遗传算法的最大区别之处就是大大扩大了可行解的寻优范围,提高了种求解范围极广效率. 一般来说,由本人设计的量子遗传算法,可以对任意数量的已 ...

  7. 基于matlab的捕食算法,【优化求解】基于matlab细菌觅食算法的函数优化分析【含Matlab源码 217期】...

    一.简介 实际生活需求促进了最优化方法的发展.近半个多世纪以来,由于传统优化方法的不足,一些具有全局优化性能且通用性强的进化算法,因其高效的优化性能.无需问题精确描述信息等优点,受到各领域广泛的关注和 ...

  8. c语言程序中变量先引用声明,C语言如何跨文件调用函数定义中声明的变量

    变量的作用域 我们知道,变量根据其作用域有全局变量和局部变量之分.全局变量作用域是整个文件,并且可以使用关键字 extern 达到跨文件调用的目的.但是局部变量值作用于它当前所在的块(即该变量所处最内 ...

  9. c语言如何查看内置函数,C中函数内部的函数

    我正在做一个类似这样的代码: #include double some_function( double x, double y) { double inner_function(double x) ...

最新文章

  1. dubbo k8s 服务发现_服务化改造实践(二)| Dubbo + Kubernetes-阿里云开发者社区
  2. 使用FLVPlayback组件播放fms(fcs)的流式FLV文件
  3. Codeforces626B - Cards【模拟】
  4. jzoj2679-跨时代【背包,dfs,状压】
  5. 武汉理工大学java,武汉理工大学 web技术基础
  6. 工业和信息化部办公厅关于公布2021年产业技术基础公共服务平台复核结果的通知
  7. (转)ASP.NET程序中常用代码汇总
  8. 20145236《信息安全系统设计基础》第1周学习总结
  9. android viewpager 底部tabhost,TabHost+ViewPager实现底部导航效果
  10. win10开启wifi
  11. 自制树莓派PICO RP2040开发板+例程(I2C读取LM75和AHT20 温度数据)
  12. 一个low逼的boofuzz脚本生成器
  13. 判断用户是否已关注公众号
  14. 爱情是人类最高贵的情感
  15. Xsell中常用的Linux命令
  16. 数据结构课程设计(部分选题)
  17. Maximum Profit(C++最大利益简单算法)
  18. python库学习之you-get
  19. 变送器和传感器有什么区别和联系?
  20. android小米手机拍照功能,拍照参数设置界面_小米 M1(MIUI)_手机Android频道-中关村在线...

热门文章

  1. 产融结合的七个进阶形态(上)
  2. MVC设计模式(JSP实验八) 等差等比数列求和 用户登录注册
  3. moblin----intel 操作系统尝试
  4. EMI干扰来源和抑制措施精讲
  5. Sql Sever语句 (续2)
  6. Flink—窗口、时间和水印
  7. Android Linkage-RecyclerView源码阅读
  8. Button 实现圆角按钮
  9. css3 动画+奔跑的熊案例
  10. 5.5. SURF (Speeded-Up Robust Features)简介