遗传算法的理解

一、简介

  • 1、 定义

GA:借鉴生物界的自然选择和自然遗传机制的随机化搜索算法。模拟发生(繁殖,交叉.基因突变);

属于启发式搜索算法的一种。

候选解 ---->选取较优个体 ---->遗传算子进行个体组合 ----->产生新的候选解群             重复直至收敛指标

  • 2、组成
  • 基因的编码方式(二进制,互换,树形,值编码)
  • 适应度函数(自然选择的唯一标准)
  • 遗传算子(选择,交叉,变异)
  • 运行参数

二、局部极值的避免

精英主义:在每一次产生新的一代时,首先把当前最优解原封不动的复制到新的一代,大幅度提高运算速度,防止丢失最后的解。

突变:杀掉最优秀的个体,产生更优秀的物种,可以采用突变倒计时,如果n代还没有出现比之前更优秀的个体时,可以产生突变.如果若干次突变后产生的个体的适应度与没灾难之前的一样,停止灾变.

二者可共存。

优缺点

      优点:群体搜索,易于并行化处理;启发式搜索,不盲目;适应度函数适用范围很广;易于实现;

缺点:全局搜索不强,容易陷入局部最优解挑不出来。SA可以帮助解决

   

时间: 2024-09-27 08:06:34

遗传算法的理解的相关文章

Genetic Algorithm遗传算法学习

参考资料:http://blog.csdn.net/b2b160/article/details/4680853/#comments(冒昧的用了链接下的几张图) 百度百科:http://baike.baidu.com/link?url=FcwTBx_yPcD5DDEnN1FqvTkG4QNllkB7Yis6qFOL65wpn6EdT5LXFxUCmv4JlUfV3LUPHQGdYbGj8kHVs3GuaK 算法介绍 遗传算法是模拟达尔文生物进化论的自然选择和遗传学进化机理的计算模型.运用到了生物

优化算法——遗传算法

与遗传算法的第一次接触 遗传算法的基本概念 基本定义 遗传算法的基本流程 遗传算法过程中的具体操作 参数的编码 二进制编码 Gray编码 实数编码 有序编码 初始群体的设定 适应度函数的计算 遗传操作设计 选择selection 交叉crossover 变异mutation 控制参数的设定 求解优化问题的实例 问题描述 问题分析 算法设计 个体编码 适应值函数 选择策略 杂交算子 变异算子 参数设置 初始化 终止条件 实验代码 最终结果 与遗传算法的第一次接触 遗传算法是我进入研究生阶段接触的第

论文式编程

文学编程 文学编程(Literate programming)的一些概念,上个世纪 70 年代就有人提出来了. 文学编程的思想非常简单,就是将那些为了能被编译器/解释器正确识别而编写的代码打碎,然后用人类语言将它们编织到文档中,这种文档就是文学编程的源文件.这一概念第一次被完整的实现,是 Knuth 开发的 WEB 工具(此 WEB 并非现代漫天飞舞的那个 Web).Knuth 的神作——TeX 系统便是借助 WEB 开发的. WEB 工具由 tangle 与 weave 这两个程序构成.tan

很好的理解遗传算法的样例

遗传算法的手工模拟计算演示样例 为更好地理解遗传算法的运算过程,以下用手工计算来简单地模拟遗传算法的各    个主要运行步骤.       例:求下述二元函数的最大值: (1) 个体编码           遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1, x2 编码为一种       符号串.本题中,用无符号二进制整数来表示.           因 x1, x2 为 0 ~ 7之间的整数,所以分别用3位无符号二进制整数来表示,将它       们连接在一起所组成的6位无符号二进制

转载:非常好的理解遗传算法的例子

遗传算法的手工模拟计算示例 为更好地理解遗传算法的运算过程,下面用手工计算来简单地模拟遗传算法的各    个主要执行步骤.       例:求下述二元函数的最大值: (1) 个体编码           遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1, x2 编码为一种       符号串.本题中,用无符号二进制整数来表示.           因 x1, x2 为 0 ~ 7之间的整数,所以分别用3位无符号二进制整数来表示,将它       们连接在一起所组成的6位无符号二进制数就

(转)非常好的理解遗传算法的例子

遗传算法的手工模拟计算示例 为更好地理解遗传算法的运算过程,下面用手工计算来简单地模拟遗传算法的各个主要执行步骤. 例:求下述二元函数的最大值: (1) 个体编码 遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1, x2 编码为一种符号串.本题中,用无符号二进制整数来表示.因 x1, x2 为 0 ~ 7之间的整数,所以分别用3位无符号二进制整数来表示,将它们连接在一起所组成的6位无符号二进制数就形成了个体的基因型,表示一个可行解. 例如,基因型 X=101110 所对应的表现型是:x

转载:通俗理解遗传算法

一.遗传算法的应用 函数优化(遗传算法的经典应用领域):组合优化(实践证明,遗传算法对于组合优化中的NP完全问题,如0-1背包问题,TSP等,非常有效):自动控制: 机器人智能控制: 组合图像处理和模式识别: 人工生命: 遗传程序设计:     二.遗传学基本概念与术语 基因型(genotype):性状染色体的内部表现: 表现型(phenotype):染色体决定性状的外部表现,或者说,根据基因型形成的个体: 进化(evolution):逐渐适应生存环境,品质不断得到改良.生物的进化是以种群的形式

多目标遗传算法 ------ NSGA-II (部分源码解析) 交叉操作 crossover.c

遗传算法中的交叉操作是 对NSGA-II  源码分析的  最后一部分, 这一部分也是我 从读该算法源代码和看该算法论文理解偏差最大的  函数模块. 这里,首先提一下,遗传算法的  交叉操作.变异操作都是需要设定概率的, 即交叉概率和变异概率. 假设种群个体 大小为  popsize ,  那么交叉操作需要进行 popsize/2 次 ,   变异操作需要进行 popsize 次, 其中每次操作的时候都需要随机生成一个随机数来与给定的概率进行判断,若小于给定的概率则继续执行否则退出该操作. 如果继

如何通俗易懂地解释遗传算法?有什么例子?

遗传算法,核心是达尔文优胜劣汰适者生存的进化理论的思想. 我们都知道一个种群,通过长时间的繁衍,种群的基因会向着更适应环境的趋势进化,牛B个体的基因被保留,后代越来越多,适应能力低个体的基因被淘汰,后代越来越少.经过几代的繁衍进化,留下来的少数个体,就是相对能力最强的个体了. 那么在解决一些问题的时候,我们能不能学习这样的思想,比如先随机创造很多很多的解,然后找一个靠谱的评价体系,去筛选比较好的解,再用这些好的解像生小宝宝一样生一堆可能更好的解,然后再筛再生,反复弄个几代,得到的说不定就是近似最