简单遗传算法.docVIP

  • 10
  • 0
  • 约1.69万字
  • 约 14页
  • 2017-08-20 发布于河北
  • 举报
引言:遗传算法求函数极值算是遗传算法的一种最简单的应用,这里就介绍一种简单的,全文基本翻译自codeproject的一篇文章,作者为Luay Al-wesi,软件工程师。例子中的函数为y = -x2+ 5 ,大家可以将其改为其他复杂一些的函数,比如说f=x+10sin(5x)+7cos(4x)等。本篇文章适合遗传算法初学者阅读,大牛请绕道,呵呵。文后附C语言代码,全部代码在VC6.0上编译通过。这是求函数最大值的例子,求最小值时可以将目标函数进行一定的处理,比如说用1除等方法。然后得到的适应度函数就适合遗传算法,以及本代码了。 ? 一、编码以及初始种群的产生 ??? 编码采用二进制编码,初始种群采用矩阵的形式,每一行表示一个染色体,每一个染色体由若干个基因位组成。关于染色体的长度(即基因位的个数)可根据具体情况而定。比如说根据要求极值的函数的情况,本文的染色体长度为6,前5个二进制构成该染色体的值(十进制),第6个表示该染色体的适应度值。长度越长,表示解空间搜索范围越大。关于如何将二进制转换为十进制,这个应该很简单,文后的C代码中函数x即为转换函数。 ??? 初始种群结构如下图所示: ? 图1 ??? 该初始种群共有4个染色体,第一列表示各个染色体的编号,第2列表示该染色体值的正负号,0表示正,1表示负。第3列到第7列为二进制编码,第8列表示各个染色体的适应度值。第2列到第7列的0

文档评论(0)

1亿VIP精品文档

相关文档