遗传算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4)
上述遗传算法的计算过程可用下图表示。
遗传算法流程图
目前,遗传算法的终止条件的主要判据有 以下几种:
1)
判别遗传算法进化代数是否达到预定的
最大代数;
2)
判别遗传搜索是否已找到某个较优的染
色体;
3)
判别各染色体的适应度函数值是否已趋
于稳定、再上升否等。
2.3遗传算法实现的几个技术问题
特别地,当优化目标是求函数最大值,并且目标函数总取正值 时,可以直接设定个体的适应度函数F(X)就等于相应的目标函数 f(x),即 F(X)=f(x)
2) 首先求出可行域的一个点,即一个可行个体,记 为 Z0。然后确定一个足够大的数G,以使遗传操作 能遍及整个可行域。该大数G还将在变异操作中得 到应用。接着,再产生M个初始染色体:在m维实 空间Rm 中,随机选择一个方向H,并检验Z0+GH的 可行性,若可行,即在可行域内,将Z0+GH作为一 个染色体;否则,将取G为[0,G]区间内的一个随机 数,直到Z0+GH可行为止。重复以上过程M次,便 可产生M个初始染色体Z1,Z2,…Zm 。
1.3 遗传算法与传统方法的比较
传统算法 起始于单个点 遗传算法 起始于群体
改善 (问题特有的)

改善 (独立于问题的) 否
终止?
终止? 是 结束

结束
1.3.1遗传算法与启发式算法的比较
启发式算法是通过寻求一种能产生可行 解的启发式规则,找到问题的一个最优解或 近似最优解。该方法求解问题的效率较高, 但是具有唯一性,不具有通用性,对每个所 求问题必须找出其规则。但遗传算法采用的 是不是确定性规则,而是强调利用概率转换 规则来引导搜索过程。
遗传算法操作使用适者生存的原则,在 潜在的解决方案种群中逐次产生一个近似最 优的方案。在遗传算法的每一代中,根据个 体在问题域中的适应度值和从自然遗传学中 借鉴来的再造方法进行个体选择,产生一个 新的近似解。这个过程导致种群中个体的进 化,得到的新个体比原个体更能适应环境, 就像自然界中的改造一样。
2.2.3 适应度函数

遗传算法中使用适应度这个概念来度量 群体中各个体在优化计算中可能达到或接近 于或有助于找到最优解的优良程度。适应度 较高的个体遗传到下一代的概率比较大;而 适应度较低的个体遗传到下一代的概率就相 对小一些。度量个体适应度的函数称为适应 度函数。


对于函数优化问题,必须将优化问题的 目标函数f(x)与个体的适应度函数F(x)建立一 定的映射关系,且遵循两个基本原则:(1) 适应度函数的值不小于零;(2)优化过程中 目标函数变化方向应与群体进化过程中适应 度函数的变化方向一致。
编码串长度 使用二进制编码来表示个体时,编码 串长度的选取与问题所要求的求解精度有 关;使用浮点数编码来表示个体时,编码 串长度与决策变量的个数相等;使用符号 编码来表示个体时,编码串长度由问题的 编码方式来确定;另外,也可使用变长度 的编码来表示个体。
2)
2.3.2 初始种群的确定 确定初始种群的第一步是定义染色体的个 数,用表示,一般建议取=20~100;第二 步是随机产生个初始染色体,常用如下两种 方法:

形成匹配集。根据种群中各个染色体的 适应度函数值,采取一定的选择方法,从种 群中选出适应值较大的个染色体(其中有些 染色体是重复的),称这个染色体的集合即 为匹配集。这一过程即为选择操作。 5) 按某种复制规则进行繁殖。由匹配集中 的个染色体繁殖产生个新的染色体,得到一 个新的种群。繁殖方法主要有两种:交叉和 变异。 6)若遗传代数(迭代次数)达到给定的允许 值或其它收敛条件已满足时停止遗传,否则 返回步骤3)。
2.2遗传算法的计算步骤
计算步骤
用遗传算法求解工程优化设计问题的基本步骤如下: 1) 确定寻优参数,进行编码。编码时先要设置编 码长度; 2) 随机产生一组初始解(即个体)组成初始种群。 初始种群中个体的数目称作初始种群的规模; 3) 计算种群中各个个体的目标函数值及其相应的 适应度函数值;
2.3.1 编码 编码是应用遗传算法时要解决的首要问题,同 时编码方法在很大程度上决定了如何进行群体的遗 传进化运算以及遗传进化运算的效率。因此编码是 设计遗传算法时的一个关键步骤。 1) 编码方法 由于遗传算法应用的广泛性,迄今为止人们已 经提出了很多不同的编码方法。总的来说,这些编 码方法可以分成三大类:二进制编码方法、浮点数 编码方法和符号编码方法。
2) 适应度函数是用以描述个体适应环境的程 度,也是生物进化中决定哪些染色体可以产 生优良后代(适者生存)的依据。一般是, 个体的适应度函数值越大,则个体性能越好, 生存可能性越大;反之,若个体的适应度函 数值越小,则个体的性能越差,越有可能被 淘汰。
3) 遗传算子包括复制(或选择)算子、交配算子和 变异算子。复制算子是根据个体的优劣程度决定在 下一代是被淘汰还是被复制(即个体继续存在,子 代保持父代的基因)。交配是指两个相互配对的染 色体按某种方式相互交换其部分基因而生产两个新 的个体。变异是将个体编码字符中的某些基因用其 他等位基因来替换,从而生成一个新的染色体。这 三个算子一般都按一定的种群复制(或选择)概率、 交配概率和变异概率随机地进行,造成遗传中的子 代和父代的差异。 4) 算法的控制参数包括种群的规模M、交配率Pc和 变异率Pm。
1)
根据问题要求,确定每个设计变量 的变化范围,从而得到一个包含最优解的m 维超立方体(不一定是整个可行域)。从该 超立方体中随机产生一定数目的可行个体, 然后挑选出最好的个体加到初始种群中。这 个过程不断迭代,直到初始种群中个数达到 了预先确定的规模,即得到了M个可行的初 始染色体 Z1,Z2,…Zm。
遗传算法在求解优化问题时,都是将实际问题的求解空
间按一定的编码方式表现出来,即对解空间中的各个解进行
编码。所谓解的编码就是把各个解用一定数目的字符串(如 “0”和“1”)表示。字符串中的每一位数称为遗传基因,每 一个字符串(即一个解的编码)称为一个染色体或个体。个 体的集合称为群体。遗传算法的寻优过程就是通过染色体的
1.3.2 遗传算法与爬山法的比较
爬山法是直接法、梯度法和Hessian法的 通称。爬山法首先在最优解可能存在的地方 选择一个初始点,然后通过分析目标函数的 特性,由初始点移到一个新的点,然后再继 续这个过程。爬山法的搜索过程是确定的, 容易产生局部最优解;而遗传算法是随机的。 其主要差别为:
(1)爬山法的初始点仅一个,由决策者给出; 遗传算法的初始点有多个,是随机产生的。 (2)爬山法由上一个点产生一个新的点;遗传 算法在当前的种群中经过交叉、变异和选择 产生下一代种群。对同一问题,遗传算法花 费的机时少。
现代机械设计概论
——遗传算法
2008年12月
1遗传算法概述
2遗传算法基本原理与方法
3遗传算法的应用
1.遗传算法概述
1.1 遗传算法的概念
遗传算法(Genetic Algorithm, GA)起 源于对生物系统所进行的计算机模拟研究。 它是模仿自然界生物进化机制发展起来的随 机全局搜索和优化方法,借鉴了达尔文的进 化论和孟德尔的遗传学说。其本质是一种高 效、并行、全局搜索的方法,能在搜索过程 中自动获取和积累有关搜索空间的知识,并 自适应地控制搜索过程以求得最佳解。
1.3.4 遗传算法与盲目随机法的比较 与上述的搜索法相比,盲目随机搜索法有 所改进,但是它的搜索效率仍然不高,并且 只有解在搜索空间中形成紧致分布时,它的 搜索才有效。而遗传算法为导向随机搜索方 法,是对一个被编码的参数空间进行高效搜 索。
经上面的探讨,可以看到遗传算法与传统 优化方法在本质上有着不同之处,主要有以 下几点: (1)遗传算法搜索种群中的点是并行的,而不 是单点。 (2)遗传算法并不需要辅助信息或辅助知识, 只需要影响搜索方向的目标函数和相应的适 应度。 (3)遗传算法使用概率变换规则,而不是确定 的变换规则。 (4)遗传算法工作使用编码参数集,而不是自 身的参数集(除了在实值个体中使用)。
1.2 遗传算法的特点 遗传算法是一种借鉴生物界自然选择和自 然遗传机制的随机搜索法。它与传统的算法 不同,大多数古典的优化算法是基于一个单 一的度量函数的梯度或较高次统计,以产生 一个确定性的试验解序列;遗传算法不依赖 于梯度信息,而是通过模拟自然进化过程来 搜索最优解,它利用某种编码技术,作用于 称为染色体的数字串,模拟由这些串组成的 群体的进化过程。


二进制编码方法是遗传算法中最常用的 一种编码方法,它使用的编码符号集是由二 进制符号0和1所组成的符号集{0,1},它所构成 的个体基因是一个二进制编码符号串。二进 制编码方法编码、解码操作简单易行,交叉、 变异等操作便于实现。

所谓浮点数编码方法,是指个体的每个基因值 用某一范围内的一个浮点数来表示,个体的编码长 度等于设计变量的个数。因为这种编码方法使用的 是设计变量的真实值,所以浮点数编码方法也叫真 值编码方法。与二进制编码法相比,浮点数编码方 法更适合表示范围较大的数和较大空间的遗传搜索。 而且便于遗传算法与经典优化方法的混合使用,改 善了遗传算法的计算复杂性,提高了运算效率。
1.3.3 遗传算法与穷举法的比较
穷举法就是对解空间内的所有可行解进行 搜索,但是通常的穷举法并不是完全穷举法, 即不是对所有解进行尝试,而是有选择地尝 试,如动态规划法、限界剪枝法。对于特殊 的问题,穷举法有时也表现出很好的性能。 但一般情况下,对于完全穷举法,方法简单 可行,但求解效率太低;对于动态规划法、 限界剪枝法,则鲁棒性不强。相比较而言, 遗传算法具有较高的搜索能力和极强的鲁棒 性。

符号编码方法是指个体染色体编码串 中的基因值取自一个无数值含义,而只用 代码含义的符号集。这个符号集可以是一 个数字序号表,如{1,2,3,4,…};也 可以是一个字母表,如{A,B,C,D,…}等。 对于使用符号编码方法的遗传算法,一般 需要认真设计交叉、变异等遗传运算的操 作方法,以满足问题的各种约束要求,这 样才能提高算法的搜索性能。
1.2.2 遗传算法的缺点
(1)编码不规范及编码存在表示的不准确性。 (2)单一的遗传算法编码不能全面地将优化问题的约 束表示出来。考虑约束的一个方法就是对不可行解采 用阈值,这样,计算的时间必然增加。 (3)遗传算法通常的效率比其他传统的优化方法低。 (4)遗传算法容易出现过早收敛。 (5)遗传算法对算法的精度、可信度、计算复杂性等 方面,还没有有效的定量分析方法。
2. 遗传算法基本原理及方法
2.1 遗传算法的基本思想
遗传算法正是依据生物进化中的“适者生存”
规律的基本思想设计的,它把问题的求解过程模拟
为群体的适者生存过程,通过群体的一代代的不断
进化(包括竞争、繁殖和变异等)出现新群体,相
当于找出问题的新解,最终收敛到“最适应环境”
的个体(解),从而求得问题的最优解或满意解。
1.2.1 遗传算法的优点
(1)对可行解百度文库示的广泛性。 (2)群体搜索特性。 (3)不需要辅助信息。 (4)内在启发式随机搜索特性。
(5)遗传算法在搜索过程中不容易陷入局部最 优,即使在所定义的适应度函数是不连续的、 不规则的或有噪声的情况下,也能以很大的 概率找到全局最优解。 (6)遗传算法采用自然进化机制来表现复杂的 现象,能够快速可靠地解决求解非常困难的 问题。 (7)遗传算法具有固有的并行性和并行计算的 能力。 (8)遗传算法具有可扩展性,易于同别的技术 混合。
结合,即通过双亲的基因遗传、变异和交配等,使解的编码
发生变化,从而根据“适者生存”的规律,最终找出最优解。
表2-1列出了生物遗传的基本概念在遗传算法中的体现。
表2-1
遗传算法一般由编码与解码、适应度函数、遗传算子 和 控制参数等四个部分组成。 1) 由设计空间向遗传算法编码空间的映射称为编码;由编码 空间向设计空间的映射称为解码。用遗传算法求解优化问题时, 必须先建立设计变量与染色体之间的对应关系,即确定编码和 解码的规则。这样在遗传算法中,其优化问题求解的一切过程 都通过设计解的编码与解码来进行。
相关文档
最新文档