今天给各位分享遗传算法简单实例_遗传算法的特点有哪些的知识,其中也会对遗传算法简单实例_遗传算法的特点有哪些进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
(1)算法从问题解的串集开始搜索,而不是从单个解开始。这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。
(2)遗传算法同时处理群体中的多个个体,即对搜索空间中的多个解进行评估,减少了陷入局部最优解的风险,同时算法本身易于实现并行化。
(3)遗传算法基本上不用搜索空间的知识或其它辅助信息,而仅用适应度函数值来评估个体,在此基础上进行遗传操作。适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。这一特点使得遗传算法的应用范围大大扩展。
(4)遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导他的搜索方向。
(5)具有自组织、自适应和自学习性。遗传算法利用进化过程获得的信息自行组织搜索时,适应度大的个体具有较高的生存概率,并获得更适应环境的基因结构。
(6)此外,算法本身也可以采用动态自适应技术,在进化过程中自动调整算法控制参数和编码精度,比如使用模糊自适应法。
遗传算法简单实例_遗传算法的特点有哪些的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于遗传算法简单实例_遗传算法的特点有哪些、遗传算法简单实例_遗传算法的特点有哪些的信息别忘了在本站进行查找喔。
本文导读目录:
3、遗传算法 的特点
遗传算法寻找最优解的运算机理使它具有以下特点: (1) 智能式搜索 遗传算法的搜索策略既不是盲目式的乱搜 索,也不是穷举式的全面搜索,它是有指导的搜索,指导的依 据是适应度,即目标函数,利用适应度使遗传算法逐步逼近目 标值。 (2) 渐进式优化 遗传算法利用选择算子、交叉算子和变异 算子,使新一代的结果优越于旧一代,通过不断迭代,逐渐得出最 优的结果,它是一种反复迭代的过程。 (3) 全局最优解 遗传算法由于采用交叉算子和变异算子交 换、突变,产生新的个体,扩大了搜索范围,使得搜索得到的优化 结果是全局最优解。 (4) 并行式算法 遗传算法每次迭代计算都是针对一组个体 同时进行,而不是针对某个个体进行。因此,尽管它是一种搜索算 法,但是由于采用并行计算机理,搜索速度很高。... (本文共553字) 大家好,又见面了,我是你们的朋友全栈君。 遗传算法的手工模拟计算示例 为更好地理解遗传算法的运算过程,下面用手工计算来简单地模拟遗传算法的各 个主要执行步骤。 例:求下述二元函数的最大值: (1) 个体编码 遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1, x2 编码为一种 符号串。本题中,用无符号二进制整数来表示。 因 x1, x2 为 0 ~ 7之间的整数,所以分别用3位无符号二进制整数来表示,将它 们连接在一起所组成的6位无符号二进制数就形成了个体的基因型,表示一个可 行解。 例如,基因型 X=101110 所对应的表现型是:x=[ 5,6 ]。 个体的表现型x和基因型X之间可通过编码和解码程序相互转换。 (2) 初始群体的产生 遗传算法是对群体进行的进化操作,需要给其淮备一些表示起始搜索点的初始 群体数据。 本例中,群体规模的大小取为4,即群体由4个个体组成,每个个体可通过随机 方法产生。 如:011101,101011,011100,111001 (3) 适应度汁算 遗传算法中以个体适应度的大小来评定各个个体的优劣程度,从而决定其遗传 机会的大小。 本例中,目标函数总取非负值,并且是以求函数最大值为优化目标,故可直接 利用目标函数值作为个体的适应度。 (4) 选择运算 选择运算(或称为复制运算)把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代 群体中。 本例中,我们采用与适应度成正比的概率来确定各个个体复制到下一代群体中 的数量。其具体操作过程是: • 先计算出群体中所有个体的适应度的总和 fi ( i=1.2,…,M ); • 其次计算出每个个体的相对适应度的大小 fi / fi ,它即为每个个体被遗传 到下一代群体中的概率, • 每个概率值组成一个区域,全部概率值之和为1; • 最后再产生一个0到1之间的随机数,依据该随机数出现在上述哪一个概率区 域内来确定各个个体被选中的次数。 (5) 交叉运算 交叉运算是遗传算法中产生新个体的主要操作过程,它以某一概率相互交换某 两个个体之间的部分染色体。 本例采用单点交叉的方法,其具体操作过程是: • 先对群体进行随机配对; • 其次随机设置交叉点位置; • 最后再相互交换配对染色体之间的部分基因。 (6) 变异运算 变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进 行改变,它也是产生新个体的一种操作方法。 本例中,我们采用基本位变异的方法来进行变异运算,其具体操作过程是: • 首先确定出各个个体的基因变异位置,下表所示为随机产生的变异点位置, 其中的数字表示变异点设置在该基因座处; • 然后依照某一概率将变异点的原有基因值取反。 对群体P(t)进行一轮选择、交叉、变异运算之后可得到新一代的群体p(t+1)。 从上表中可以看出,群体经过一代进化之后,其适应度的最大值、平均值都得 到了明显的改进。事实上,这里已经找到了最佳个体“111111”。 [注意] 需要说明的是,表中有些栏的数据是随机产生的。这里为了更好地说明问题, 我们特意选择了一些较好的数值以便能够得到较好的结果,而在实际运算过程中 有可能需要一定的循环次数才能达到这个最优结果。 ================================================================================== 基本遗传算法的框图: 所以,遗传算法基本步骤是: 1) 初始化 t←0进化代数计数器;T是最大进化代数;随机生成M个个体作为初始群体 P(t); 2) 个体评价 计算P(t)中各个个体的适应度值; 3) 选择运算 将选择算子作用于群体; 4) 交叉运算 将交叉算子作用于群体; 5) 变异运算 将变异算子作用于群体,并通过以上运算得到下一代群体P(t + 1); 6) 终止条件判断 t≦T:t← t+1 转到步骤2; t>T:终止 输出解。 好的,看下遗传算法的伪代码实现: ▲Procedures GA: 伪代码 begin initialize P(0); t = 0; //t是进化的代数,一代、二代、三代… while(t <= T) do for i = 1 to M do //M是初始种群的个体数 Evaluate fitness of P(t); //计算P(t)中各个个体的适应度 end for for i = 1 to M do Select operation to P(t); //将选择算子作用于群体 end for for i = 1 to M/2 do Crossover operation to P(t); //将交叉算子作用于群体 end for for i = 1 to M do Mutation operation to P(t); //将变异算子作用于群体 end for for i = 1 to M do P(t+1) = P(t); //得到下一代群体P(t + 1) end for t = t + 1; //终止条件判断 t≦T:t← t+1 转到步骤2 end while end 二、深入遗传算法 1、智能优化算法概述 智能优化算法又称现代启发式算法,是一种具有全局优化性能、通用性强且适合于并行处理的算法。 这种算法一般具有严密的理论依据,而不是单纯凭借专家经验,理论上可以在一定的时间内找到最优解或近似最优解。 遗传算法属于智能优化算法之一。 常用的智能优化算法有: 遗传算法 、模拟退火算法、禁忌搜索算法、粒子群算法、蚁群算法。 (本经典算法研究系列,日后将陆续阐述模拟退火算法、粒子群算法、蚁群算法。) 2、遗传算法概述 遗传算法是由美国的J. Holland教授于1975年在他的专著《自然界和人工系统的适应性》中首先提出的。 借鉴生物界自然选择和自然遗传机制的随机化搜索算法。 模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象。 在每次迭代中都保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个 体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。 基本遗传算法(Simple Genetic Algorithms,GA)又称简单遗传算法或标准遗传算法),是由Goldberg总结出的一种最基本的遗传算法,其遗传进化操作过程简单,容易理解,是其它一些遗传算法的雏形和基础。 3、基本遗传算法的组成 (1)编码(产生初始种群) (2)适应度函数 (3)遗传算子(选择、交叉、变异) (4)运行参数 接下来,咱们分门别类,分别阐述着基本遗传算法的五个组成部分: 1、编码 遗传算法(GA)通过某种编码机制把对象抽象为由特定符号按一定顺序排成的串。 正如研究生物遗传是从染色体着手,而染色体则是由基因排成的串。 基本遗传算法(SGA)使用二进制串进行编码。 初始种群:基本遗传算法(SGA)采用随机方法生成若干个个体的集合,该集合称为初始种群。 初始种群中个体的数量称为种群规模。 2、适应度函数 遗传算法对一个个体(解)的好坏用适应度函数值来评价,适应度函数值越大,解的质量越好。 适应度函数是遗传算法进化过程的驱动力,也是进行自然选择的唯一标准, 它的设计应结合求解问题本身的要求而定。 3.1、选择算子 遗传算法使用选择运算对个体进行优胜劣汰操作。 适应度高的个体被遗传到下一代群体中的概率大;适应度低的个体,被遗传到下一代群体中的概率小。 选择操作的任务就是从父代群体中选取一些个体,遗传到下一代群体。 基本遗传算法(SGA)中选择算子采用轮盘赌选择方法。 Ok,下面就来看下这个轮盘赌的例子,这个例子通俗易懂,对理解选择算子帮助很大。 轮盘赌选择方法 轮盘赌选择又称比例选择算子,其基本思想是: 各个个体被选中的概率与其适应度函数值大小成正比。 设群体大小为N,个体xi 的适应度为 f(xi),则个体xi的选择概率为: 轮盘赌选择法可用如下过程模拟来实现: (1)在[0, 1]内产生一个均匀分布的随机数r。 (2)若r≤q1,则染色体x1被选中。 (3)若qk-1遗传算法简单实例_遗传算法的特点有哪些的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于遗传算法简单实例_遗传算法的特点有哪些、遗传算法简单实例_遗传算法的特点有哪些的信息别忘了在本站进行查找喔。
未经允许不得转载! 作者:谁是谁的谁,转载或复制请以超链接形式并注明出处。
原文地址:http://cqhytyy.cn/post/18062.html发布于:2026-02-18



