云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 遗传算法的原理及MATLAB程序实现

遗传算法的原理及MATLAB程序实现

  • 62 次阅读
  • 3 次下载
  • 2025/6/14 15:05:42

1 遗传算法的原理

1.1 遗传算法的基本思想

遗传算法(genetic algorithms,GA)是一种基于自然选择和基因遗传学原理,借鉴了生物进化优胜劣汰的自然选择机理和生物界繁衍进化的基因重组、突变的遗传机制的全局自适应概率搜索算法。

遗传算法是从一组随机产生的初始解(种群)开始,这个种群由经过基因编码的一定数量的个体组成,每个个体实际上是染色体带有特征的实体。染色体作为遗传物质的主要载体,其内部表现(即基因型)是某种基因组合,它决定了个体的外部表现。因此,从一开始就需要实现从表现型到基因型的映射,即编码工作。初始种群产生后,按照优胜劣汰的原理,逐代演化产生出越来越好的近似解。在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样,后代种群比前代更加适应环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。

计算开始时,将实际问题的变量进行编码形成染色体,随机产生一定数目的个体,即种群,并计算每个个体的适应度值,然后通过终止条件判断该初始解是否是最优解,若是则停止计算输出结果,若不是则通过遗传算子操作产生新的一代种群,回到计算群体中每个个体的适应度值的部分,然后转到终止条件判断。这一过程循环执行,直到满足优化准则,最终产生问题的最优解。图1-1给出了遗传算法的基本过程。

1.2 遗传算法的特点

1.2.1 遗传算法的优点

遗传算法具有十分强的鲁棒性,比起传统优化方法,遗传算法有如下优点: 1. 遗传算法以控制变量的编码作为运算对象。传统的优化算法往往直接利用控制变量的实际值的本身来进行优化运算,但遗传算法不是直接以控制变量的值,而是以控制变量的特定形式的编码为运算对象。这种对控制变量的编码处理方式,可以模仿自然界中生物的遗传和进化等机理,也使得我们可以方便地处理各种变量和应用遗传操作算子。

2. 遗传算法具有内在的本质并行性。它的并行性表现在两个方面,一是遗传

开始初始化,输入原始参数及给定参数,gen=1染色体编码,产生初始群体计算种群中每个个体的适应值终止条件的判断?Ngen=gen+1选择交叉Y变异新种群输出结果结束 图1-1 简单遗传算法的基本过程

算法的外在并行性,最简单的方式是让多台计算机各自进行独立种群的演化计算,最后选择最优个体。可以说,遗传算法适合在目前所有的并行机或分布式系统上进行并行计算处理。二是遗传算法的内在并行性,由于遗传算法采用种群的方式组织搜索,因而可同时搜索解空间内的多个区域,并相互交流信息。这样就

使得搜索效率更高,也避免了使搜索过程陷于局部最优解。

3. 遗传算法直接以目标函数值作为搜索信息。在简单遗传算法中,基本上不用搜索空间的知识和其它辅助信息,而仅用目标函数即适应度函数来评估个体解的优劣,且适应度函数不受连续可微的约束,对该函数和控制变量的约束极少。对适应度函数唯一的要求就是对于输入能够计算出可比较的输出。

4. 遗传算法是采用概率的变迁规则来指导它的搜索方向,其搜索过程朝着搜索空间的更优化的解区域移动,它的方向性使得它的效率远远高于一般的随机算法。遗传算法在解空间内进行充分的搜索,但不是盲目的穷举或试探,因为选择操作以适应度为依据,因此它的搜索性能往往优于其它优化算法。

5. 原理简单,操作方便,占用内存少,适用于计算机进行大规模计算,尤其适合处理传统搜索方法难以解决的大规模、非线性组合复杂优化问题。

6. 由于遗传基因串码的不连续性,所以遗传算法处理非连续混合整数规划时有其独特的优越性,而且使得遗传算法对某些病态结构问题具有很好的处理能力。

7. 遗传算法同其他算法有较好的兼容性。如可以用其他的算法求初始解;在每一代种群,可以用其他的方法求解下一代新种群。 1.2.2 遗传算法的缺点

但是,遗传算法也存在一些缺点。

1. 遗传算法是一类随机搜索型算法,而非确定性迭代过程描述,这种方式必然会较低的计算效率。

2. 对简单遗传算法的数值试验表明,算法经常出现过早收敛现象。 3. 遗传和变异的完全随机性虽然保证了进化的搜索功能,但是这种随机变化也使得好的优良个体的性态被过早破坏,降低了各代的平均适应值。

2. 遗传算法的实现

2.1 初始参数

种群规模n:种群数目影响遗传算法的有效性。种群数目太小,不能提供足够的采样点;种群规模太大,会增加计算量,使收敛时间增长。一般种群数目在20到160之间比较合适。

交叉概率pc:pc控制着交换操作的频率,pc太大,会使高适应值的结构很

快被破坏掉,pc太小会使搜索停滞不前,一般pc取0.5~1.0。

变异概率pm:pm是增大种群多样性的第二个因素,pm太小,不会产生新的基因块,pm太大,会使遗传算法变成随机搜索,一般pm取0.001~0.1。

进化代数t:表示遗传算法运行结束的一个条件。一般的取值范围100~1000。当个体编码较长时,进化代数要取小一些,否则会影响算法的运行效率。进化代数的选取,还可以采用某种判定准则,准则成立时,即停止。

2.2 染色体编码

利用遗传算法进行问题求解时,必须在目标问题实际表示与染色体位串结构之间建立一个联系。对于给定的优化问题,由种群个体的表现型集合所组成的空间称为问题空间,由种群基因型个体所组成的空间称为编码空间。由问题空间向编码空间的映射称作编码,而由编码空间向问题空间的映射成为解码。

按照遗传算法的模式定理,De Jong进一步提出了较为客观明确的编码评估准则,称之为编码原理。具体可以概括为两条规则:

(1)有意义积木块编码规则:编码应当易于生成与所求问题相关的且具有低阶、短定义长度模式的编码方案。

(2)最小字符集编码规则:编码应使用能使问题得到自然表示或描述的具有最小编码字符集的编码方案。

常用的编码方式有两种:二进制编码和浮点数(实数)编码。

二进制编码方法是遗传算法中最常用的一种编码方法,它将问题空间的参数用字符集?10,?构成染色体位串,符合最小字符集原则,便于用模式定理分析,但存在映射误差。

采用二进制编码,将决策变量编码为二进制,编码串长mi取决于需要的精度。例如,xi的值域为?ai,bi?,而需要的精度是小数点后5位,这要求将xi得值域至少分为?bi?ai??106份。设xi所需要的字串长为mi,则有:

6i 2mi?1??bi?ai??10 (2.1) ?m2b?a那么二进制编码的编码精度为??imii,将xi由二进制转为十进制可按下

2?1式计算:

xi?ai?decimal(substringi)?? (2.2)

decimal(substringi)表示变量xi的子串substringi的十进制值。其中,染色体编码 的总串长m??mi。

i?1N

搜索更多关于: 遗传算法的原理及MATLAB程序实现 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

1 遗传算法的原理 1.1 遗传算法的基本思想 遗传算法(genetic algorithms,GA)是一种基于自然选择和基因遗传学原理,借鉴了生物进化优胜劣汰的自然选择机理和生物界繁衍进化的基因重组、突变的遗传机制的全局自适应概率搜索算法。 遗传算法是从一组随机产生的初始解(种群)开始,这个种群由经过基因编码的一定数量的个体组成,每个个体实际上是染色体带有特征的实体。染色体作为遗传物质的主要载体,其内部表现(即基因型)是某种基因组合,它决定了个体的外部表现。因此,从一开始就需要实现从表现型到基因型的映射,即编码工作。初始种群产生后,按照优胜劣汰的原理,逐代演化产生出越来越好的近似解。在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样,后代

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com