遗传算法和蚁群算法的比较

合集下载

三种仿生智能计算方法介绍

三种仿生智能计算方法介绍

三种仿生智能计算方法介绍
仿生智能计算算法是一类模拟自然生物进化或者群体社会行为的随机搜索方法的统称,本文简单介绍三种典型的仿生优化算法。

1.遗传算法
遗传算法是根据自然进化论与遗传变异理论为基础求解全局最优解的仿生型算法, 它将问题的求解表示成染色体, 从而构成种群, 再将它们置于问题的环境中,并从中选择出适应环境的染色体进行复制后, 通过交叉、变异产生出新一代更适应环境的染色体群,这样不断进化,最后收敛到一个最适合环境的
个体,求得最优解。

2.蚁群算法
当蚂蚁在寻找食物时都会在其经过的路径上分泌一种叫做信息素的化学物质,而且能感知这种物质的存在及其浓度。

每条路径上信息素的数量会反映出其它蚂蚁选择该路径的概率,蚂蚁趋向于朝着信息素浓度高的方向移动。

在较短路径上的信息素会很快地增加,使得最终所有的蚂蚁将选择最短的路径。

3.混合蛙跳算法
在这一算法中,种群由许多同结构的青蛙组成,每只青蛙代表一个解。

种群被分为多个子群,子群内的每只青蛙有自己的思想,同时会受到其它青蛙的影响,随着子群的进化而进化。

当子群进化达到设定的代数后,各个子群之间进行信息传递实现混合运算。

这样局部搜索和混合过程交替进行直到满足停止准则。

参考文献:
[ 1 ] 汪定伟,王俊伟,王洪峰,等. 智能优化方法[ M ] . 北京: 高等教育出版社,2007 .
[ 2 ] 王小平, 曹立明. 遗传算法———理论、应用与软件实现[ M ] . 西安:西安交通大学出版社,2002 .
[ 3] 熊伟平,曾碧卿几种仿生优化算法的比较研究华南师范大学计算机学院。

多种仿生优化算法的特点

多种仿生优化算法的特点

多种仿生优化算法的特点(1)蚁群算法蚁群算法利用信息正反馈机制,在一定程度上可以加快算法的求解性能,同时算法通过个体之间不断的进行信息交流,有利于朝着更优解的方向进行。

尽管单个蚁群个体容易陷入局部最优,但通过多个蚁群之间信息的共享,能帮助蚁群在解空间中进行探索,从而避免陷入局部最优。

基本蚁群算法搜索时间长,而且容易出现停滞。

由于蚁群算法在求解的过程中,每只蚂蚁在选择下一步移动的方向时,需要计算当前可选方向集合的转移概率,特别是当求解问题的规模较大时,这种缺陷表现得更为明显。

同时,由于正反馈机制的影响,使得蚁群容易集中选择几条信息素浓度较高的路径,而忽略其他路径,使算法陷入局部最优解。

其次,算法的收敛性能对初始化参数的设置比较敏感。

(2)遗传算法遗传算法以决策变量的编码作为运算对象,借鉴了生物学中染色体和基因等概念,通过模拟自然界中生物的遗传和进化等机理,应用遗传操作求解无数值概念或很难有数值概念的优化问题。

遗传算法是基于个体适应度来进行概率选择操作的,从而是搜索过程表现出较大的灵活性。

遗传算法中的个体重要技术采用交叉算子,而交叉算子是遗传算法所强调的关键技术,它是遗传算法产生新个体的主要方法,也是遗传算法区别于其它仿生优化算法的一个主要不同之处。

遗传算法的优点是将问题参数编码成染色体后进行优化,而不针对参数本身进行,从而保证算法不受函数约束条件的限制。

搜索过程从问题解的一个集合开始,而不是单个个体,具有隐含并行搜索特性,大大减少算法陷入局部最优解最小的可能性。

遗传算法的主要缺点是对于结构复杂的组合优化问题,搜索空间大,搜索时间比较长,往往会出现早熟收敛的情况。

对初始种群很敏感,初始种群的选择常常直接影响解的质量和算法效率。

(3)微粒子群算法微粒子群算法是一种原型相当简单的启发式算法、与其他仿生优化算法相比,算法原理简单、参数较少、容易实现。

其次微粒子群算法对种群大小不十分敏感,即使种群数目下降其性能也不会受到太大的影响。

遗传算法与蚁群算法的效果比较

遗传算法与蚁群算法的效果比较

遗传算法与蚁群算法的效果比较随着计算机技术的发展,人工智能逐渐成为了一个热门话题。

其中,算法是实现人工智能的基础,而遗传算法和蚁群算法则是两种较为流行的算法。

那么,这两种算法的效果如何呢?今天,我们就来比较一下遗传算法与蚁群算法的效果。

一、遗传算法遗传算法,是一种基于自然选择和遗传进化的优化算法。

遗传算法是通过模仿自然界中的进化过程,不断地变异和选择,来获取优良解的算法。

遗传算法最开始是用来解决复杂的优化问题,如函数优化、组合优化等。

遗传算法实现的过程可以简单地分为三个部分:选择、交叉和变异。

选择是在种群中选择合适的个体,使其能够进入下一代;交叉是通过染色体的重组,产生新的个体;变异是在单个个体的染色体中引入一些随机变异。

遗传算法因其在搜索解空间上的出色表现而得到了广泛的应用。

但是,它也存在着一些问题。

如容易陷入局部最优解、算法计算时间长等。

二、蚁群算法蚁群算法是另一种流行的优化算法,它是一种模拟蚂蚁觅食的行为来处理最优解问题的方法。

蚁群算法的灵感来源于蚂蚁在寻找食物时的行为。

蚂蚁会留下信息素,使得其他蚂蚁找到食物的概率也会增大,从而实现了蚂蚁群体的集体智慧。

蚁群算法的优点在于它能够通过局部搜索来帮助找到全局最优解。

它的本质是通过不断调整问题的搜索关键字而找到最优解。

与遗传算法不同,蚁群算法能够通过一步步的迭代来逼近最优解,因此蚁群算法更适用于某些复杂问题的求解。

但是,蚁群算法存在的问题是需要调整参数才能达到最优解。

同时,蚁群算法对问题的输入比较敏感,也容易陷入局部最优。

三、效果比较上述两种算法都能用来解决优化问题,但具体哪一种优化效果更好呢?不同的优化问题需要不同的算法才能得到更加合适的解决方案。

下面,我们以某个实际问题作为例子,来比较一下这两种算法的效果。

假设有一个工厂需要完成一人任务,可以用五台机器加工。

不同的机器之间的加工时间不同,但是任务需要按照固定的顺序加工才能完成。

我们需要确定哪个工序分配给哪个机器,才能使得任务的加工时间最短。

遗传算法,粒子群算法和蚁群算法的异同点

遗传算法,粒子群算法和蚁群算法的异同点

遗传算法,粒子群算法和蚁群算法的异同点
遗传算法、粒子群算法和蚁群算法是三种不同的优化算法,它们的异同点如下:
1. 原理不同:
遗传算法是一种模拟自然进化过程的优化算法,主要利用遗传和交叉等运算来产生下一代候选解,通过适应度函数来评价每个候选解的好坏,最终选出最优解。

粒子群算法基于对群体智能的理解和研究,模拟了鸟群或鱼群等动物群体的行为,将每个解看作一个粒子,粒子通过跟踪历史最佳解的方式来更新自己的位置与速度,直到达到最佳解。

蚁群算法是基于模拟蚂蚁在食物和家之间寻找最短路径的行为,将每个解看作一只蚂蚁,通过随机选择路径并留下信息素来搜索最优解。

2. 适用场景不同:
遗传算法适用于具有较大搜索空间、多个可行解且无法枚举的问题,如旅行商问题、无序机器调度问题等。

粒子群算法适用于具有连续参数、寻求全局最优解的问题,如函数优化、神经网络训练等。

蚁群算法适用于具有连续、离散或混合型参数的优化问题,如
路径规划、图像分割等。

3. 参数设置不同:
遗传算法的参数包括个体数、交叉概率、变异概率等。

粒子群算法的参数包括粒子数、权重因子、学习因子等。

蚁群算法的参数包括蚂蚁数量、信息素挥发率、信息素初始值等。

4. 收敛速度不同:
遗传算法需要较多的迭代次数才能得到较优解,但一旦找到最优解,一般能够较好地保持其稳定性,不太容易陷入局部最优。

粒子群算法的收敛速度较快,但对参数设置较为敏感,可能会陷入局部最优。

蚁群算法的收敛速度中等,能够较好地避免局部最优,但也容易出现算法早熟和陷入局部最优的情况。

遗传算法与蚁群算法在PID优化中的应用比较

遗传算法与蚁群算法在PID优化中的应用比较

选 取 一 定 的 子 区 问 长 度 l e n g t h , 设是 — l 蒜 l , 将 该 立
方体第 i 维分量分成 志 个子区间, 其中的第 个子 区间为 +
mi n F( 1 , z 2 , … , z )
使a 1 3 2 1 +Ⅱ X 2 + … +a z ≥6 ( 一1 , 2 , …, r ) 。这 里 F 为
任一非线形函数 , 约束条件构成 上 的一个凸包 , 我们可 以使
用 不 等 式 变 换 的方 法 求 得 包含 这个 凸包 的 最 小 n维 立 方 体 , 设 该立方体为 :
鍪 三 堇 量 堡 ! G 。 n g y i u 一 s n u
遗 传 算 法 与蚁 群 光 崔鹏 飞
( 1 . 南京 因泰莱 电器股 份有 限公 司 , 江苏 南 京 2 1 1 1 1 2 ; 2 . 南京 工业 大学智 能建筑 研究所 , 江 苏 南京 2 1 0 0 0 9 ) 摘 要: 针对 控制 中 P I D优 化 问题 , 分别 用遗传 算法 和蚁群 算法进 行 了寻优 , 并 进行参 数调 试 比较 , 得出 2 种算 法都 可 以进行 寻 优 , 但
对 后 面蚂 蚁 的 行 为 起 到 指 引 作 用 , 刚开 始 蚂 蚁 胡 乱 行 走 , 蚂 蚁
算值比较小, 所以这里取适应度函数 厂 一_ _ 一 。( l 4 )对种群
J J 1
P( ) 进 行 复制 、 交叉、 变 异操 作 , 生 成 下一代 种 群 P( t +1 ) 。
基本蚁群算法是用来解决 离散 空间问题 的 , 针对 连续空 间
2 . 1 连 续 空 间 离散 化
走, 即算法上的收敛 。该算法本身具有以下优 点 : ( 1 )应用的广 泛性 : 该算 法基本 可 以解决遗 传算法应 用方面 的所有 问题 , 特 都是独立进行的 , 可最终的解不会受单个蚂 蚁的影响 。( 3 )易 这种算法的寻优要通过 以下步骤实现 。 别擅 长离散寻优 。( 2 )分布式计算特 征 : 每 只人工蚂蚁的搜索 求解 ,

常见的群体智能算法

常见的群体智能算法

引言:随着技术的发展,群体智能算法正在成为解决复杂问题的有效方法之一。

群体智能算法是一类借鉴自然界群体行为的启发式优化算法,通过多个个体的相互协作与竞争,来求解复杂问题。

本文将介绍常见的群体智能算法,并对其原理、应用、优缺点进行详细阐述,以期帮助读者更好地理解和应用这些算法。

概述:群体智能算法的主要特点是通过模拟群体中个体的行为进行求解。

这种算法中个体之间通过信息交流、竞争和合作等方式实现问题的优化。

常见的群体智能算法包括遗传算法、粒子群优化算法、蚁群算法、人工鱼群算法和蜂群算法等。

下面将对这些算法的原理、应用以及优缺点进行详细介绍。

正文:一、遗传算法1.原理:遗传算法是一种通过模拟自然界的生物进化过程来优化问题的方法。

它通过染色体编码个体,利用交叉、变异等操作新的个体,并通过适应度函数评估个体的适应度。

然后,根据适应度选择优秀个体进行下一代的繁衍。

2.应用:遗传算法广泛应用于优化问题的求解,如函数优化、机器学习、图像处理等领域。

3.优缺点:优点:全局搜索能力强,易于并行化实现。

缺点:对问题的描述要求高,需要预先设定好适应度函数和编码方式。

二、粒子群优化算法1.原理:粒子群优化算法模拟鸟群或鱼群中的群体协作行为。

每个粒子代表一个潜在解,通过追随当前最优个体和个体之间的信息交流,来寻找最优解。

2.应用:粒子群优化算法广泛应用于连续优化问题的求解,例如参数优化、神经网络训练等。

3.优缺点:优点:收敛速度快,易于实现。

缺点:容易陷入局部最优。

三、蚁群算法1.原理:蚁群算法模拟蚂蚁在寻找食物时的行为。

蚂蚁通过信息素的释放和感知,选择路径并与其他蚂蚁相互交流,最终找到最短路径。

2.应用:蚁群算法广泛应用于路径规划、调度问题等领域。

3.优缺点:优点:适用于离散问题,具有较好的全局搜索能力。

缺点:参数设置较为复杂,易于陷入局部最优。

四、人工鱼群算法1.原理:人工鱼群算法模拟鱼群觅食的行为。

每个鱼代表一个潜在解,通过觅食、追随和扩散等行为寻找最优解。

蚁群算法、遗传算法、模拟退火算法介绍

蚁群算法、遗传算法、模拟退火算法介绍

蚁群算法、遗传算法、模拟退火算法介绍穷举法列举所有可能,然后一个个去,得到最优的结果。

如图一,需要从A点一直走到G点,才能知道,F是最高的(最优解)。

这种算法得到的最优解肯定是最好的,但也是效率最低的。

穷举法虽然能得到最好的最优解,但效率是极其低下的。

为了能提高效率,可以不要枚举所有的结果,只枚举结果集中的一部分,如果某个解在这部分解中是最优的,那么就把它当成最优解。

显然这样有可能不能得到真正的最优解,但效率却比穷举法高很多。

只枚举部分解的方法很多。

贪心法在枚举所有解时,当遇到的解在当前情况下是最优时,就认为它是最优解。

如图一,当从A 点到B点时,由于B点比A点的解更优,所以会认为B点是最优解。

显然这样的效率很高,但得到的最优解质量也很差。

爬山法贪心法是只和前面的一个比较,为了提高最优解的质量,可以不仅和前一个解比较,也和后一个解比较,如果比前面和后面的解都优,那么就认为它是最优解。

如图一,当到C点时,发现它比前面的B和后面的D点的解都好,所以认为它是最优解。

模拟退火算法爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。

如图一,搜索到A点后就停止了搜索。

如果能跳出局部最优解,那么得到的最优解的质量相对就会好很多。

如当搜索到A点时以一定的概率跳转到另外一个地方。

这样就有可能跳出局部最优解A。

如果经过一定次数的跳跃,跳到了E 点,那么就会找到全局的最优解了。

如果这个概率不变,那么就会一直跳跃下去,不会结束。

可以让这个概率逐渐变小,到最后趋于稳定。

这里的概率逐渐减小类似于金属冶炼的退火过程,所以称之为模拟退火算法。

模拟退火算法(Simulated Annealing,SA)最早由Kirkpatrick等应用于组合优化领域,它是基于Mente-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。

模拟退火算法从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。

遗传算法 蚁群算法 粒子群算法 模拟退火算法

遗传算法 蚁群算法 粒子群算法 模拟退火算法

遗传算法蚁群算法粒子群算法模拟退火算法《探究遗传算法、蚁群算法、粒子群算法和模拟退火算法》一、引言遗传算法、蚁群算法、粒子群算法和模拟退火算法是现代优化问题中常用的算法。

它们起源于生物学和物理学领域,被引入到计算机科学中,并在解决各种复杂问题方面取得了良好的效果。

本文将深入探讨这四种算法的原理、应用和优势,以帮助读者更好地理解和应用这些算法。

二、遗传算法1. 概念遗传算法是一种模拟自然选择过程的优化方法,通过模拟生物进化过程,不断改进解决方案以找到最优解。

其核心思想是通过遗传操作(选择、交叉和变异)来优化个体的适应度,从而达到最优解。

2. 应用遗传算法在工程优化、机器学习、生物信息学等领域有着广泛的应用。

在工程设计中,可以利用遗传算法来寻找最优的设计参数,以满足多种约束条件。

3. 优势遗传算法能够处理复杂的多目标优化问题,并且具有全局搜索能力,可以避免陷入局部最优解。

三、蚁群算法1. 概念蚁群算法模拟蚂蚁在寻找食物过程中释放信息素的行为,通过信息素的沉积和蒸发来实现最优路径的搜索。

蚁群算法具有自组织、适应性和正反馈的特点。

2. 应用蚁群算法在路径规划、网络优化、图像处理等领域有着广泛的应用。

在无线传感网络中,可以利用蚁群算法来实现路由优化。

3. 优势蚁群算法适用于大规模问题的优化,具有分布式计算和鲁棒性,能够有效避免陷入局部最优解。

四、粒子群算法1. 概念粒子群算法模拟鸟群中鸟类迁徙时的行为,通过个体间的协作和信息共享来搜索最优解。

每个粒子代表一个潜在解决方案,并根据个体最优和群体最优不断更新位置。

2. 应用粒子群算法在神经网络训练、函数优化、机器学习等领域有着广泛的应用。

在神经网络的权重优化中,可以利用粒子群算法来加速训练过程。

3. 优势粒子群算法对于高维和非线性问题具有较强的搜索能力,且易于实现和调整参数,适用于大规模和复杂问题的优化。

五、模拟退火算法1. 概念模拟退火算法模拟金属退火时的过程,通过接受劣解的概率来跳出局部最优解,逐步降低温度以逼近最优解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

全局优化报告——遗传算法和蚁群算法的比较姓名:玄玄学号:3112054023班级:硕20411遗传算法1.1遗传算法的发展历史遗传算法是一种模拟自然选择和遗传机制的寻优方法。

20世纪60年代初期,Holland教授开始认识到生物的自然遗传现象与人工自适应系统行为的相似性。

他认为不仅要研究自适应系统自身,也要研究与之相关的环境。

因此,他提出在研究和设计人工自适应系统时,可以借鉴生物自然遗传的基本原理,模仿生物自然遗传的基本方法。

1967年,他的学生Bagley在博士论文中首次提出了“遗传算法”一词。

到70年代初,Holland教授提出了“模式定理”,一般认为是遗传算法的基本定理,从而奠定了遗传算法的基本理论。

1975年,Holland出版了著名的《自然系统和人工系统的自适应性》,这是第一本系统论述遗传算法的专著。

因此,也有人把1975年作为遗传算法的诞生年。

1985年,在美国召开了第一届两年一次的遗传算法国际会议,并且成立了国际遗传算法协会。

1989年,Holland的学生Goldberg 出版了《搜索、优化和机器学习中的遗传算法》,总结了遗传算法研究的主要成果,对遗传算法作了全面而系统的论述。

一般认为,这个时期的遗传算法从古典时期发展了现代阶段,这本书则奠定了现代遗传算法的基础。

遗传算法是建立在达尔文的生物进化论和孟德尔的遗传学说基础上的算法。

在进化论中,每一个物种在不断发展的过程中都是越来越适应环境,物种每个个体的基本特征被后代所继承,但后代又不完全同于父代,这些新的变化,若适应环境,则被保留下来;否则,就将被淘汰。

在遗传学中认为,遗传是作为一种指令遗传码封装在每个细胞中,并以基因的形式包含在染色体中,每个基因有特殊的位置并控制某个特殊的性质。

每个基因产生的个体对环境有一定的适应性。

基因杂交和基因突变可能产生对环境适应性强的后代,通过优胜劣汰的自然选择,适应值高的基因结构就保存下来。

遗传算法就是模仿了生物的遗传、进化原理,并引用了随机统计原理而形成的。

在求解过程中,遗传算法从一个初始变量群体开始,一代一代地寻找问题的最优解,直到满足收敛判据或预先假定的迭代次数为止。

遗传算法的应用研究比理论研究更为丰富,已渗透到许多学科,并且几乎在所有的科学和工程问题中都具有应用前景。

一些典型的应用领域如下:(1)复杂的非线性最优化问题。

对具体多个局部极值的非线性最优化问题,传统的优化方法一般难于找到全局最优解;而遗传算法可以克服这一缺点,找到全局最优解。

(2)复杂的组合优化或整数规划问题。

大多数组合优化或整数规划问题属于NP难问题,很难找到有效的求解方法;而遗传算法即特别适合解决这一类问题,能够在可以接受的计算时间内求得满意的近似最优解,如著名的旅行商问题、装箱问题等都可以用遗传算法得到满意的解。

(3)工程应用方面。

工程方法的应用是遗传算法的一个主要应用领域,如管道优化设计、通风网络的优化设计、飞机外型设计、超大规模集成电路的布线等。

(4)计算机科学。

遗传算法广泛应用于计算机科学的研究,如用于图像处理和自动识别、文档自动处理、VLSI设计等。

(5)生物学。

遗传算法起源于对生物和自然现象的模拟,现在又反过来用于生物领域的研究,如利用遗传算法进行生物信息学的研究等。

(6)社会科学。

遗传算法在社会科学的许多领域也有广泛应用,如人类行为规范进化过程的模拟、人口迁移模型的建立等(7)经济领域。

经济学领域也用到遗传算法。

例如,国民经济预测模型、市场预测模型和期货贸易模型等。

遗传算法与神经网络相结合正成功地被应用于从时间序列分析来进行财政预算等。

1.2遗传算法的基本原理遗传算法是一种基于自然选择和群体遗传机制的搜索算法,它模拟了自然选择和自然遗传过程中的繁殖、杂交和突变现象。

在利用遗传算法求解问题时,问题的每个可能的解都被编码成一个“染色体”,即个体,若干个个体构成了群体(所有可能解)。

在遗传算法开始时,总是随机地产生一些个体(即初始解)。

根据预定的目标函数对每个个体进行评估,给出了一个适应度值。

基于此适应度值,选择个体用来复制下一代。

选择操作体现了“适者生存”的原理,“好”的个体被选择用来复制,而“坏”的个体则被淘汰。

然后选择出来的个体经过交叉和变异算子进行再结合生成新的一代。

这一群新个体由于继承了上一代的一些优良性状,因而在性能上要优于上一代,这样逐步朝着更优解的方向进化。

因此,遗传算法可以看成是一个由可行解组成的群体逐步进化的过程。

图给出了简单遗传算法的基本过程。

下面介绍遗传算法的编码及基本遗传操作过程。

1.2.1 编码利用遗传算法求解问题时,首先要确定问题的目标函数和变量,然后对变量进行编码。

这样做主要是因为在遗传算法中,问题的解是用数字串来表示的,而且遗传算子也是直接对串进行操作的。

编码方式可以分为二进制编码和实数编码。

若用二进制数表示个体,则将二进制数转化为十进制数的解码公式可以为∑=---+=l j j ij l ii i il i i b R T R b b b F 1121212),...,,(其中,),...,,(il i i b b b 21为某个个体的第i 段,每段段长都为l ,每个ik b 都是0或者1,i T 和i R 是第i 段分量i X 的定义域的两个端点。

1.2.2 遗传操作遗传操作是模拟生物基因的操作,它的任务就是根据个体的适应度对其施加一定的操作,从而实现优胜劣汰的进化过程。

从优化搜索的角度看,遗传操作可以使问题的解逐代的优化,逼近最优解。

遗传操作包括以下三个基本遗传算子:选择、交叉、变异。

选择和交叉基本上完成了遗传算法的大部分搜索功能,变异增加了遗传算法找到最接近最优解的能力。

1. 选择选择是指从群体中选择优良的个体并淘汰劣质个体的操作。

它建立在适应度评估的基础上。

适应度越大的个体,被选择的可能性就越大,它的“子孙”在下一代的个数就越多。

选择出来的个体被放入配对库中。

目前常用的选择方法有轮赌盘方法(也称适应度比例法)、最佳个体保留法、期望值法、排序选择法、竞争法、线性标准化方法等。

2. 交叉交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作,交叉的目的是为了能够在下一代产生新的个体。

通过交叉操作,遗传算法的搜索能力得以飞跃性的提高。

交叉是遗传算法获得新优良个体的最重要的手段。

交叉操作是按照一定的交叉概率c P 在配对库中随机地选取两个个体进行的。

交叉的位置也是随机确定的。

交叉概率c P 的值一般取得很大,为0.6~0.9。

3. 变异变异就是以很小的变异概率m P 随机地改变群体中个体的某些基因的值。

变异操作的基本过程是:产生一个],[10之间的随机数rand ,如果m P rand ,则进行变异操作。

变异操作本身是一种局部随机搜索,与选择、交叉算子结合在一起,能够避免由于选择和交叉算子而引起的某些信息的永久性丢失,保证了遗传算法的有效性,使遗传算法具有局部的随机搜索能力,同时使得遗传算法能够保持群体的多样性,以防止出现未成熟收敛。

变异操作是一种防止算法早熟的措施。

在变异操作中,变异概率不能取值太大,如果50. m P ,遗传算法就退化为随机搜索,而遗传算法的一些重要的数学特性和搜索能力也就不复存在了。

1.3 基本步骤遗传算法的基本步骤如下:使用遗传算法需要决定的运行参数有:编码串长度、种群大小、交叉和变异概率。

编码串长度优优化问题所要求的求解精度决定。

种群大小表示种群中所含个体的数量,种群较小时,可提高遗传算法的运算速度,但却降低了群体的多样性,可能找不到最优解;种群较大时,又会增加计算量,使遗传算法的运行效率降低。

一般取种群数目为20~100.交叉概率控制着交叉操作的频率,由于交叉操作是遗传算法中产生新个体的主要方法,所以交叉概率通常应取较大值;但若过大的话,又可能破坏群体的优良模式。

一般取0.4~0.99.变异概率也是影响新个体产生的一个因素,变异概率小,产生新个体少;变异概率太大,又会使遗传算法变成随机搜索。

一般取变异概率为0.0001~0.1.遗传算法常采用的收敛判据有:规定遗传代数:连续几次得到的最优个体的适应值没有变化或变化很小等。

1.4 用MATLAB实现遗传算法MATLAB是Matwork公司的产品,是一个功能强大的数学软件,其优秀的数值计算能力使其在工业界和学术界的使用率都非常高。

MATLAB还十分便于使用,它以直观、简洁并符合人们思维习惯的代码给用户提供了一个非常友好的开发环境。

利用MATLAB处理矩阵运算的强大功能来编写遗传算法程序有着巨大的优势。

1.4.1编码遗传算法不对优化问题的实际决策变量进行操作,所以应用遗传算法首要的问题是通过编码将决策变量表示成串结构数据。

本文中我们采用最常用的二进制编码方案,即用二进制数构成的符号串来表示一个个体,用下面的encoding函数来实现编码并产生初始种群。

在上面的代码中,首先根据各决策变量的下界(min_var)、上界(max_var)及其搜索精度scale_var来确定表示各决策变量的二进制串的长度bits,然后随机产生一个种群大小为popsize的初始种群bit_gen。

编码后的实际搜索精度为scale_dec=(max_var-min_var)/(2^bits-1),该精度会在解码时用到。

1.4.2解码解码后的个体构成的种群bin_gen必须经过解码,以转换成原问题空间的决策变量构成的种群var_gen,方能计算相应的适应值。

我们用下面的代码实现。

解码函数的关键在于先由二进制数求得对应的十进制数D,并根据下式求得实际决策变量值X:⨯=DX+scale_decvarmin_1.4.3选择选择过程是利用解码后求得的各个适应值大小,淘汰一些较差个体而选出一些比较优良的个体,以进行下一步的交叉和变异操作。

选择算子的程序如下:在该算子中,采用了最优保存策略和比例选择法相结合的思路,即首先找出当前群体中适应值最高和最低的个体,将最佳个体best_indiv 保存并用其替换掉最差个体。

为保证当前最佳个体不被交叉、变异操作所破坏,允许其不参与交叉和变异而直接进入下一代。

然后将剩下的个体evo_gen按比例选择法进行操作。

所谓比例选择法,也叫赌轮算法,是指个体被选中的概率与该个体的适应值大小成正比。

将这两种方法想结合的目的是:在遗传操作中,不仅能不断提高群体的平均适应值,而且能保证最佳个体的适应值不减小。

1.4.4交叉下面采用单点交叉的方法来实现交叉算子,即按选择概率PC在两两配对的个体编码串cpairs中随机设置一个交叉点cpoints,然后在该点相互交换两个配对个体的部分基因,从而形成两个新的个体。

交叉算子的程序如下:1.4.5变异对于二进制的基因串而言,变异操作就是按照变异概率pm 随机选择变异点mpoints ,在变异点处将其位取反即可。

相关文档
最新文档