计算智能.

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

一、 一阶线性微分方程及其解法 二、 一阶线性微分方程的简单应用 三、 小结及作业 §6.2 一阶线性微分方程.
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
全微分 教学目的:全微分的有关概念和意义 教学重点:全微分的计算和应用 教学难点:全微分应用于近似计算.
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
圆的一般方程 (x-a)2 +(y-b)2=r2 x2+y2+Dx+Ey+F=0 Ax2+Bxy+Cy2+Dx+Ey+ F=0.
第五章 二次型. 第五章 二次型 知识点1---二次型及其矩阵表示 二次型的基本概念 1. 线性变换与合同矩阵 2.
第二节 微积分基本公式 1、问题的提出 2、积分上限函数及其导数 3、牛顿—莱布尼茨公式 4、小结.
不确定度的传递与合成 间接测量结果不确定度的评估
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
走进编程 程序的顺序结构(二).
计算机数学基础 主讲老师: 邓辉文.
第十章 方差分析.
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
第一章 函数与极限.
3.2 基于遗传算法的神经网络优化方法.
计算.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
第二章 基本遗传算法(GA) 2.1 基本遗传算法描述 基本遗传算法的构成要素 (1) 染色体编码方法
顺序表的删除.
3.8.1 代数法计算终点误差 终点误差公式和终点误差图及其应用 3.8 酸碱滴定的终点误差
线性规 Linear Programming
概 率 统 计 主讲教师 叶宏 山东大学数学院.
Three stability circuits analysis with TINA-TI
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
第四章 一次函数 4. 一次函数的应用(第1课时).
5.2 常用统计分布 一、常见分布 二、概率分布的分位数 三、小结.
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
用计算器开方.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第六章 Excel的应用 一、Excel的单元格与区域 1、单元格:H8, D7, IV26等 2、区域:H2..D8, HS98:IT77
第4章 Excel电子表格制作软件 4.4 函数(一).
正切函数的图象和性质 周期函数定义: 一般地,对于函数 (x),如果存在一个非零常数T,使得当x取定义域内的每一个值时,都有
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
3.1 变化率与导数   3.1.1 变化率问题 3.1.2 导数的概念.
3.16 枚举算法及其程序实现 ——数组的作用.
基于高中生物学理性思维培养的实践性课例开发
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
学习任务三 偏导数 结合一元函数的导数学习二元函数的偏导数是非常有用的. 要求了解二元函数的偏导数的定义, 掌握二元函数偏导数的计算.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
第一部分:概率 产生随机样本:对分布采样 均匀分布 其他分布 伪随机数 很多统计软件包中都有此工具 如在Matlab中:rand
1.非线性规划模型 2.非线性规划的Matlab形式
分数再认识三 真假带分数的练习课.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
高中数学选修 导数的计算.
第二节 函数的极限 一、函数极限的定义 二、函数极限的性质 三、小结 思考题.
第二章 基本遗传算法(GA) 2.1 基本遗传算法描述 基本遗传算法的构成要素 (1) 染色体编码方法
正弦、余弦函数的性质 华容一中 伍立华 2017年2月24日.
§2 方阵的特征值与特征向量.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
基因信息的传递.
第三章 从概率分布函数的抽样 (Sampling from Probability Distribution Functions)
数据表示 第 2 讲.
线性规划 Linear Programming
第十七讲 密码执行(1).
第十二讲 密码执行(上).
三角 三角 三角 函数 余弦函数的图象和性质.
位似.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
§4.5 最大公因式的矩阵求法( Ⅱ ).
第一节 不定积分的概念与性质 原函数与不定积分的概念 基本积分表 不定积分的性质 小结、作业 1/22.
一元一次方程的解法(-).
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Presentation transcript:

计算智能

计算智能是信息科学和生命科学相互交叉的前沿领域,是现代科学技术发展的一个重要体现。 计算智能涉及神经网络、模糊逻辑、进化计算和人工生命等领域,它的研究和发展反映了当代科学技术多学科交叉与集成的重要发展趋势。

关于A,B,C智能 贝兹德克于1994年提出了一种A,B,C智能模型,从而表示ABC与神经网络、模式识别和智能之间的关系: A:Artificial ,表示人工的、符号的(非生物的) B:Biological ,表示生物的 C:Computational,表示计算的 计算智能是一种智力方式的底层认知,它与人工智能的区别是认知层次从中层下降到底层而已。中层系统含有知识,底层系统没有知识。

PR Pattern Recognition 模式识别 计算智能与人工智能的区别与联系 NN Neural Network 神经网络 PR Pattern Recognition 模式识别

当一个系统只涉及数值(底层)数据,含有模式识别部分,不应用于人工智能意义上的知识,而且系统能够呈现出: 计算智能系统与人工智能系统 当一个系统只涉及数值(底层)数据,含有模式识别部分,不应用于人工智能意义上的知识,而且系统能够呈现出: (1)计算适应性 (2)计算容错性 (3)接近人的计算速度 (4)计算误差率与人接近 则该系统就是计算智能系统。 当一个智能计算系统以非数值方式并加上知识,即为人工智能系统。

1943年麦卡洛奇和皮茨提出神经网络模型的概念(称为MP模型) 20世纪60年代威德罗和霍夫提出了自适应线性元件。 神经计算(Neural Computation) 神经计算研究的进展 1943年麦卡洛奇和皮茨提出神经网络模型的概念(称为MP模型) 20世纪60年代威德罗和霍夫提出了自适应线性元件。 60年代末到80年代初初与研究的低潮期 80年代后又大发展

遗传算法

1、遗传算法 遗传算法简称GA(Genetic Algorithms)是1975年由美国Michigan(密歇根州)大学的J.Holland教授提出的模拟自然界生物遗传学(孟德尔)和生物进化论(达尔文)通过人工方式所构造的一类并行随机搜索最优化方法,是对生物进化过程进行的一种数学仿真,是进化计算的重要形式。

1、遗传算法 在生物系统中,进化被认为是一种成功的自适应方法,具有很好的健壮性。其主要特点是 (1)直接对结构对象进行操作,不存在求导和函数连续性的限定; (2)具有内在的隐含并行性和更好的全局寻优能力; (3)采用概率化的寻优方法,能自动获取和指导优化的搜索空间, 自适应地调整搜索方向,不需要确定的规则。 遗传算法已被广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关计算智能中的关键技术之一。 遗传算法是以达尔文的自然选择学说为基础发展起来的。自然选择学说包括以下三个方面:

(1)遗传:这是生物的普遍特征,亲代把生物信息交给子代,子代总是和亲代具有相同或相似的性状。生物有了这个特征,物种才能稳定存在。 (2)变异:亲代和子代之间以及子代的不同个体之间的差异,称为变异。变异是随机发生的,变异的选择和积累是生命多样性的根源。 (3)生存斗争和适者生存:具有适应性变异的个体被保留下来,不具有适应性变异的个体被淘汰,通过一代代的生存环境的选择作用,性状逐渐逐渐与祖先有所不同,演变为新的物种。

遗传算法将“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串群体中,按所选择的适应度函数并通过遗传中的复制、交叉及变异对个体进行筛选,适应度高的个体被保留下来,组成新的群体,新的群体既继承了上一代的信息,又优于上一代。这样周而复始,群体中个体适应度不断提高,直到满足一定的条件。遗传算法的算法简单,可并行处理,并能到全局最优解。 如:爱斯基摩人, 非洲原始部落

2、遗传算法的基本操作为: (1)复制(Reproduction Operator) 复制是从一个旧种群中选择生命力强的个体位串产生新种群的过程。具有高适应度的位串更有可能在下一代中产生一个或多个子孙。 复制操作可以通过随机方法来实现。首先产生0~1之间均匀分布的随机数,若某串的复制概率为40%,则当产生的随机数在0.40~1.0之间时,该串被复制,否则被淘汰。

(2)交叉(Crossover Operator) 复制操作能从旧种群中选择出优秀者,但不能创造新的染色体。而交叉模拟了生物进化过程中的繁殖现象,通过两个染色体的交换组合,来产生新的优良品种。 交叉的过程为:在匹配池中任选两个染色体,随机选择一点或多点交换点位置;交换双亲染色体交换点右边的部分,即可得到两个新的染色体数字串。

交叉体现了自然界中信息交换的思想。交叉有单点交叉、两点交叉、还有一致交叉、顺序交叉和周期交叉。单点交叉是最基本的方法,应用较广。它是指染色体切断点有一处,例:

(3)变异(Mutation Operator) 变异运算用来模拟生物在自然的遗传环境中由于各种偶然因素引起的基因突变,它以很小的概率随机地改变遗传基因(表示染色体的符号串的某一位)的值。在染色体以二进制编码的系统中,它随机地将染色体的某一个基因由1变为0,或由0变为1。

若只有选择和交叉,而没有变异,则无法在初始基因组合以外的空间进行搜索,使进化过程在早期就陷入局部解而进入终止过程,从而影响解的质量。为了在尽可能大的空间中获得质量较高的优化解,必须采用变异操作。

3、遗传算法示例-- f(x) = x2 极大值问题 max f(x) = x2, x∈ [0, 31] 500 1000 31 x f (x) 当然,利用简单的代数运算,很容易求出该问题的解。现在改用遗传算法求解,遗传算法通常包括下述内容: 17

(1)编码 遗传算法首先要对实际问题进行编码,用字符串表达问题。这种字符串相当于遗传学中的染色体。每一代所产生的字符串个体总和称为群体。为了实现的方便,通常字符串长度固定,字符选0或1。 本例中,利用5位二进制数表示x值,采用随机产生的方法,假设得出拥有四个个体的初始群体,即:01101,11000,01000,10011。x值相应为13,24,8,19。 个体编号 初始群体 xi 适应度f(xi) f(xi)/∑f(xi) f(xi)/f Mp 1 2 3 4 01101 11000 01000 10011 13 24 8 19 169 576 64 361 0.14 0.49 0.06 0.31 0.58 1.97 0.22 1.23 总计∑f(xi) 平均值f 最大值 最小值 1170 293 1.00 0.25 4.00 18

(2)计算适应度 衡量字符串(染色体)好坏的指标是适应度,它也就是遗传算法的目标函数。 本例中适应度比较简单,用x2计算。 个体编号 初始群体 xi 适应度f(xi) f(xi)/∑f(xi) f(xi)/f Mp 1 2 3 4 01101 11000 01000 10011 13 24 8 19 169 576 64 361 0.14 0.49 0.06 0.31 0.58 1.97 0.22 1.23 总计∑f(xi) 平均值f 最大值 最小值 1170 293 1.00 0.25 4.00 表中还列出了当前适应度的总和∑f(xi)及平均值f,即: ∑f(xi) = f(x1) + f(x2) + f(x3) + f(x4) = 1170 f = ∑f(xi) /4 = 292.5(293) f(x1)/f=169/293=0.57679... 19

(2)计算适应度 表中第6列的 f(xi)/f 表示每个个体的相对适应度,它反映了个体之间的相对优劣性。如2号个体的 f(xi)/f 值最高(1.97),为优良个体,3号个体最低(0.22),为不良个体。 个体编号 初始群体 xi 适应度f(xi) f(xi)/∑f(xi) f(xi)/f Mp 1 2 3 4 5 6 7 01101 11000 01000 10011 13 24 8 19 169 576 64 361 0.14 0.49 0.06 0.31 0.58 1.97 0.22 1.23 总计∑f(xi) 平均值f 最大值 最小值 1170 293 1.00 0.25 4.00 20

(3)复制 为了将已有的群体变为下一代群体,遗传算法仿效进化论中“自然选择、适者生存”的原则,从旧群体中选择优良个体进行复制。选择的依据是个体适应度的大小,适应度大的个体接受复制,使之繁殖;适应度小的个体则删除掉,遭到淘汰。 21

(3)复制 在本例中,根据相对适应度的大小对个体进行取舍,2号个体性能最优,予以复制繁殖。3号个体性能最差,将它删除,使之死亡,表中的M表示传递给下一代的个体数目,其中2号个体占2个,3号个体为0,1号、4号个体保持为1个。 个体编号 初始群体 xi 适应度f(xi) f(xi)/∑f(xi) f(xi)/f Mp 1 2 3 4 01101 11000 01000 10011 13 24 8 19 169 576 64 361 0.14 0.49 0.06 0.31 0.58 1.97 0.22 1.23 总计∑f(xi) 平均值f 最大值 最小值 1170 293 1.00 0.25 4.00 这样,就产生了下一代群体。 22

(3)复制 从表中的第4列可以看出,复制后产生的新一代群体的平均适应度明显增加,由原来的293增加到421。造成平均适应度增加的原因有二: 个体 编号 复制后群体 xi 复制后 适应度f(xi) 交换对象 交换位置 交换后群体 1 2 3 4 (1)01101 (2)11000 (4)10011 13 24 19 169 576 361 2号 1号 4号 3号 01100 11001 11011 10000 144 625 729 256 总计 平均值 最大值 最小值 1682 421 1754 439 从表中的第4列可以看出,复制后产生的新一代群体的平均适应度明显增加,由原来的293增加到421。造成平均适应度增加的原因有二: 1)淘汰原来最差的个体。使最小适应度由原来的64增加到169。 2)增加了优良个体(2号)的个数,使适应度累计值增加。 23

(4)交换 通过复制产生的新群体,其性能得到改善,然而它不能产生新的个体。为了产生新的个体,遗传算法仿照生物学中杂交的方法,对染色体(字符串)的某些部分进行交叉换位。被交换的母体都选自经过复制产生的新一代个体(优胜者)。 24

(4)交换 个体 编号 复制后群体 xi 复制后 适应度f(xi) 交换对象 交换位置 交换后群体 1 2 3 4 01101 11000 10011 13 24 19 169 576 361 2号 1号 4号 3号 01100 11001 11011 10000 144 625 729 256 总计 平均值 最大值 最小值 1682 421 1754 439 本例中,利用随机配对的方法,决定1号和2号个体、3号和4号个体分别交换,如表中第5列。再利用随机定位的方法,确定这两对母体交叉换位的位置分别从字符长度的第4位及第3位开始。如:3号、4号个体从字符长度第3位开始交换。交换开始的位置称交换点。 11000 10011 11011 10000 25

(4)交换 个体 编号 复制后群体 xi 复制后 适应度f(xi) 交换对象 交换位置 交换后群体 1 2 3 4 01101 11000 10011 13 24 19 169 576 361 2号 1号 4号 3号 01100 11001 11011 10000 144 625 729 256 总计 平均值 最大值 最小值 1682 421 1754 439 从表中可以看出,交换后出现优异个体3号,其适应度高达729,大大高于交换前的最大值(576)。与此同时,平均适应度也从原来的421提高到439,说明交换后的群体正朝优良方向发展。 26

(5)突变 遗传算法模仿生物学中基因突变的方法,将个体字符串某位符号进行逆变,即由1变为0或由0变为1。例如,下式左侧的个体于第3位突变,得到新个体如右侧所示。 10000 10100 遗传算法中,个体是否进行突变以及在哪个部位突变,都由事先给定的概率决定。通常,突变概率很小,约为0.008,本例的第一代中就没有发生突变。 上述(2)~(5)反复执行,直至得出满意的最优解。 由上可知,遗传算法参考生物中有关进化与遗传的过程,利用复制、交换、突变等操作,不断循环执行,逐渐逼近全局最优解。 27

4、遗传算法的基本特征 从上述简单例子可以看出,遗传算法仿照生物进化和遗传的规律,利用复制、交换、突变等操作,使优胜者繁殖,劣败者消失,一代一代地重复同样的操作,最终找出最优解。 从数学角度看,遗传算法实质上是一种搜索寻优技术。它从某一初始群体出发,遵照一定的操作规则,不断迭代计算,逐步逼近最优解。这种搜索技术,有如下特点: 28

4、遗传算法的基本特征 (1)智能式搜索 遗传算法的搜索策略,既不是盲目式的乱搜索,也不是穷举式的全面搜索,它是有指导的搜索。指导遗传算法执行搜索的依据是适应度,也就是它的目标函数。利用适应度,使遗传算法逐步逼近目标值。 (2)渐进式优化 遗传算法利用复制、交换、突变等操作,使新一代的结果优越于旧一代,通过不断迭代,逐渐得出最优的结果,它是一种反复迭代的过程。 29

4、遗传算法的基本特征 (3)全局最优解 遗传算法由于采用交换、突变等操作,产生新的个体,扩大了搜索范围,使得搜索得到的优化结果是全局最优解而不是局部最优解。 (4)黑箱式结构 遗传算法根据所解决问题的特性,进行编码和选择适应度。一旦完成字符串和适应度的表达,其余的复制、交换、突变等操作都可按常规手续执行。个体的编码如同输入,适应度如同输出。因此遗传算法从某种意义上讲是一种只考虑输入与输出关系的黑箱问题。 30

4、遗传算法的基本特征 (5)通用性强 传统的优化算法,需要将所解决的问题用数学式子表示,常常要求解该数学函数的一阶导数或二阶导数。采用遗传算法,只用编码及适应度表示问题,并不要求明确的数学方程及导数表达式。因此,遗传算法通用性强,可应用于离散问题及函数关系不明确的复杂问题,有人称遗传算法是一种框架型算法,它只有一些简单的原则要求,在实施过程中可以赋予更多的含义。 (6)并行式算法 遗传算法是从初始群体出发,经过复制、交换、突变等操作,产生一组新的群体。每次迭代计算,都是针对一组个体同时进行,而不是针对某个个体进行。因此,尽管遗传算法是一种搜索算法,但是由于采用这种并行机理,搜索速度很高。这种并行式计算是遗传算法的一个重要特征。 31

5、遗传算法的生物学含义 遗传算法受生物进化与遗传的启发,形成一种独特的优化方式,因此,遗传算法的运算原则常常与生物进化及遗传学说吻合,而且其术语也常常仿效生物学的术语。 遗传算法的运算基础是字符串,它就相当于生物学中的染色体。 字符串由一系列字符组成,每个字符都有特定的含义,反应所解决问题的某个特征,这就相当于基因,即染色体DNA的片段。 在进行交换、突变操作时,遗传算法只涉及到字符串某些片段,这就类似于遗传过程只涉及某些基因而不是整个染色体。 32

5、遗传算法的生物学含义 遗传学很注重等位基因,它是反映生物某一形态所对应的基因。在遗传算法的字符串中,每个字符都反映问题的某一特性,这也就相当于等位基因,至于等位基因的位置,也就相当于该字符在字符串中的位置。 在遗传学中,杂交产生的子代里显现出亲本的性状,称作显性性状,未显现出来的亲本性状叫作隐性性状。控制显性性状的基因是显性基因,用大写英文字母表示。控制隐性性状的基因是隐性基因,用小写英文字母表示。在遗传算法中,模仿这种大、小字母表达方式,对显性基因和隐性基因采取不同的操作。 在生物学中,生物个体所表现出来的性状被称作表现型,把反映表现型的基因组成称作基因型。与此相对应,在遗传算法中,表现型就相当于所求解问题的特征,如参数、可行解、可行策略等;基因型则视作字符串的结构。 AB血型的人有一个等位基因决定A,一个等位基因决定B(既无A又无B等位基因的人的血型为O型)。 33

5、遗传算法的生物学含义 生物学术语在遗传算法中的对应意义如下表。 序号 生物学 遗传算法 1 2 3 4 5 6 染色体(Chromosome) 基因(Gene) 等位基因(Allele) 基因位置(Locus) 基因型(Genotype) 表现型(Phenotype) 字符串 字符 对应的字符 字符的位置 字符串结构 字符串含义 34

6、遗传算法的工作步骤 根据前面所讲的示例,可以看出遗传算法的实施过程中包括编码、产生群体、计算适应度、复制、交换、突变等操作。 遗传算法的详细流程如下图。 35

Gen:遗传(迭代)的代次。表明遗传算法反复执行的次数,即已产生群体的代次数目。 Pc Pt Pm No Yes Gen:=0 随机产生初始群体 满足终止条件 计算群体中各个体的适应度 i:=0 i:=M? 选择遗传算子及概率 根据适应度选择两个个体 i:=i+1 执行交换 将两个交换结果添入新群体 将复制结果添入新群体 执行复制 根据适应度选择一个个体 将突变结果添入新群体 执行突变 Gen:=Gen+1 输出结果 结束 Gen:遗传(迭代)的代次。表明遗传算法反复执行的次数,即已产生群体的代次数目。 M:群体中拥有的个体数目。 i:已处理个体的累计数,当i等于M,表明这一代的个体已全部处理完毕,需要转入下一代群体。 交叉率 Pc 就是参加交叉运算的染色体个数占全体染色体总数的比例,记为Pc,取值范围一般为0.4~0.99。 变异率 Pm 是指发生变异的基因位数所占全体染色体的基因总位数的比例,记为Pm,取值范围一般为0.0001~0.1。 复制概率 Pt 用于控制复制与淘汰的个体数目。 36

(3)根据遗传概率,利用下述操作产生新群体: 1)复制。将已有的优良个体复制后添入新群体中,删除劣 概括地讲,遗传算法主要执行以下四步: (1)随机地建立由字符串组成的初始群体; (2)计算各个体的适应度; (3)根据遗传概率,利用下述操作产生新群体: 1)复制。将已有的优良个体复制后添入新群体中,删除劣 质个体; 2)交换。将选出的两个个体进行交换,所产生的新个体添 入新群体中。 3)突变。随机地改变某一个体的某个字符后添入新群体中。 (4)反复执行(2)、(3)后,一旦达到终止条件, 选择最佳个体作为遗传算法的结果。 37

遗传算法关键问题 (1)编码 遗传算法的工作对象是字符串,因此对字符串的编码有两点要求:一是字符串要反映所研究问题的性质;二是字符串的表达要便于计算处理。 遗传算法常常用二进制的0/1字符编码。当问题比较简单,例如只描述高/低、大/小等布尔型性质时,每一位0/1变量就代表一个性质。 例如,某事物只涉及到贵/贱、大/小及好/坏时,我们可用三位0/1字符表示,并规定第1位字符代表贵/贱,第2位字符代表大/小,第3位字符代表好/坏。如111代表贵-大-好,而100代表贵-小-好。 38

(1)编码 当问题的性质要用数值描述时,则编码变成用二进制数表示十进制数。例如,用4位0/1字符串表示1 ~ 16。 根据排列计算,长度(位数)为L的0/1字符串,可以表达2*2*2‥ ‥2 = 2L 种情况。如果所描述性质的最小值不是0时,即性质介于Umin~Umax之间,为了减小字符串长度,可以采用映射的方法,用2L个二进制数表示 [ Umin,Umax ]。这时,令L个0表示Umin ,L个1 表示Umax ,其中L大小取决于( Umax — Umin ),其余的数则用线性插值决定。例如,对于[ 16,31 ]的十进制数,我们可以用4位二进制0/1字符在[ 0000,1111 ]范围内表示。 Umin 0…0 … Umax 1…1 39

(1)编码 对于兼有多种性质的问题,可以采用长字符串顺序分别表示。例如,可选25位0/1字符串表示物体的体积、重量及颜色,其中前10位数表示体积量,中间10位数表示重量,后5位数表示颜色。 在遗传算法中,字符串的长度常常是固定的,以便按统一的方式执行操作。个别研究者采用不等长的字符串,这时就需要跟踪记录,经常调整操作方式,比较烦琐。 从生物学角度看,编码就相当于选择遗传物质,它是研究遗传的基础。同样,在遗传算法中编码也是一项基础性工作。 40

(2)适应度 在遗传算法中,衡量个体优劣的尺度是适应度。根据适应度的大小,决定某些个体是繁殖或是消亡。因此,适应度是驱动遗传算法的动力。从生物学角度讲,适应度相当于“生存竞争,适者生存”的生物生存能力,在遗传过程中具有重要意义。 通常,适应度是费用、赢利、方差等目标的表达式。在运用过程中可以借鉴以下经验。 41

(2)适应度 <1>统一表达形式 在实际问题中,有时希望适应度越大越好(如赢利、劳动生产率),有时要求适应度越小越好(费用、方差)。为了使遗传算法有通用性,这种最大、最小值问题宜统一表达。通常都统一按最大值问题处理,而且不允许适应度小于0。 对于最小值问题,其适应度按下式转换: f (x) = Cmax - g (x) 当g(x)< Cmax 0 其他情况 f(x):转换后的适应度。 g(x):最小值问题下的适应度。 Cmax :足够大的常数,可取g(x)的最大值。 42

(2)适应度 <1>统一表达形式 为了保证适应度不出现负值,对于有可能产生负值的最大值问题,可以采用下式进行变换: f (x) = U(x) + Cmin 当U(x) + Cmin >0 0 其他情况 f(x): 变换后的适应度。 U(x):最大值问题下的适应度。 Cmin :足够大的常数。 43

(2)适应度 f '= a*f + b <2>适应度缩放 在执行遗传算法的初始阶段,各个个体的适应度比较离散,某些个体的适应度会很高或很低。对于个别适应度很高的个体,会连续多次被复制;对于适应度很低的个体,会过早被舍弃。这种不正常的取舍,对于个体数目不多的群体尤为严重,会把遗传算法的搜索引向误区,过早地收敛于局部最优解。为了克服这种缺陷,需要采用适应度缩放技术,将适应度按下式变换: f ' : 缩放后的适应度。 f:原来的适应度。 a、b :系数。 f '= a*f + b 利用这种缩放技术,缩小(放大)原来最大(最小)的适应度,从而可以减弱离散现象。 44

(3)复制 个体是否被复制的依据是其适应度的大小,适应度大者被复制,小者被淘汰,使新群体中的个体总数与原来群体相同。 复制是遗传算法的基本算子,它将优良个体在下一代新群体中繁殖,体现了“适者生存”的自然选择原则。 个体是否被复制的依据是其适应度的大小,适应度大者被复制,小者被淘汰,使新群体中的个体总数与原来群体相同。 在遗传算法中,常常采用J.Holland教授提出的轮盘赌方式选择复制对象。 45

(3)复制 轮盘选择示例: 个体序号 1 2 3 4 5 6 7 8 9 10 适应度 17 12 11 适应度累计值 27 34 36 48 59 66 69 76 随机数 23 49 76 13 1 27 57 被选中的个体 3 7 10 表中第一行说明有10个个体参与选择,第二行表示各个体的适应度,第三行标记适应度的累计值,总值为76。然后,在[ 0,76 ]区间内产生均匀分布的随机数,如第四行所示。依次序将第三行的累计适应度与随机数相比较,其值大于或等于随机数的第一个个体列为入选的复制对象。例如,第一个随机数是23,除了1号、2号个体外,其余个体的累计适应度均大于23,然而3号个体累计值为27,是第一个大于23的个体,所以它入选。 46

(3)复制 上述选择过程,可描述如下: (1)依次累计群体内各个体的适应度,得相应的累计值Si,最后一个累计值为Sn; (2)在[ 0,Sn ]区间内产生均匀分布的随机数R; (3)依次用Si与R相比较,第一个出现Si大于或等于R的个体i被选为复制对象; (4)重复(2)、(3),直至满足所需要的个体数目。 47

(3)复制 表面上看,复制个体的选择是随机的。但是,选择时是依据相邻两个适应度累计值的差值△ Si : △Si = Si – Si-1 = fi fi表示第i个个体的适应度 因此,适应度fi越大, △Si的距离越大,随机数落在这个区间的可能性越大,第i个个体被选中的机会也越多。如下图所示。 48

(3)复制 图中的指针固定不动,外圈的圆环可以任意转动,圆环中每段对应于适应度的大小。从统计意义上讲,适应度大的个体被复制的机会越大。当然,适应度小的个体尽管被复制的概率小,但仍有可能被“破格”复制,这样就增加个体的多样性,便于执行交换及突变。所以,轮盘选择方法既体现“适者生存”原则,又保持个体性态多种多样。 S2 S1 S3 S4 Si Sn-1 Sn … 轮盘(赌)选择原理 49

(3)复制 每代群体中,被复制的个体数目由复制概率Pt控制, Pt常取0.1~0.2,也就是说,群体中有10%个体被复制,相应地有10%个体被淘汰,以保持群体大小。 选择复制个体的随机方法还有别的形式,不过轮盘选择法是最常用的方法。 50

(4)交换 在遗传算法中,交换是产生新个体的主要手段。它仿照生物学中杂交的原理,将两个个体(染色体)的部分字符(基因)互相交换。 下表是个体两两交换的示例,字符串内的下横线代表交换点的位置,交换点及其后面的字符串两两互换。 序号 交换前 交换后 1 2 亲代1:1 1 1 1 1 1 亲代2:0 0 0 0 0 0 子代1:1 1 1 1 0 0 子代2:0 0 0 0 1 1 3 4 亲代1:1 0 1 1 0 1 亲代2:0 0 1 1 0 0 子代1:1 0 1 1 0 0 子代2:0 0 1 1 0 1 51

(4)交换 执行交换的个体是随机选择的。首先,要确定交换的概率Pc,大致为0.5~0.8左右。这就是说,约50%~80%的个体要执行交换。然后,采用上述轮盘选择的方法,按适应度大小选择被交换的个体,依次两两进行交换。 交换点的选择也是随机的。假设字符串长度为L,则在[ 0,L ]区间内产生随机整数,该整数便是交换点的位置。需要注意的是,交换点不能选在第一个字符上。因此,长度为L的字符串,可供选择的交换点为(L-1)个。 根据交换点数目的不同,可分为一点交换和多点交换,前者只选取一个交换点,该点之后的字符全部参加交换。后者选择两个或多个交换点,只有两点间的字符才参加交换。当字符串长度大时,常采用两点交换。此外还有多点交换,即对长字符串实行多段交换。 52

(4)交换 通过交换,子代的字符串不同于亲代。有时,这种差别很明显,如表中的第一组个体,被交换部分完全不一样。有时,这种差别却不大,如表中的第二组个体,被交换的三个字符中只有最后一个字符发生变化。后一种情况说明交换后产生的个体,其性态变化不大。尽管如此,交换仍然是遗传算法产生新个体的主要手段。正是有了交换操作,群体的性态才多种多样。 序号 交换前 交换后 1 2 亲代1:1 1 1 1 1 1 亲代2:0 0 0 0 0 0 子代1:1 1 1 1 0 0 子代2:0 0 0 0 1 1 3 4 亲代1:1 0 1 1 0 1 亲代2:0 0 1 1 0 0 子代1:1 0 1 1 0 0 子代2:0 0 1 1 0 1 传统的优化算法,例如动态规划法、个体性态不能增添,只能在原有的个体群体中择优,从而限制了搜索寻优的范围。因此,可以说,如果没有交换,遗传算法就失去了其优越性。 53

(5)突变 突变是遗传算法中产生新个体的另一种方法,它是将某一个体的某一位字符进行补运算,使0变为1,或使1变为0。 突变个体的选择以及突变位置的确定,都是采用随机的方法产生。首先,确定突变概率Pm, Pm通常较小,约为0.001~0.01。也就是说,1000个字符中有1~10个发生突变。然后,针对每个字符在[ 0,1 ]之间产生三位有效数的均匀分布随机数。若Pm = 0.008,凡是随机数小于0.008所对应的字符,将实现突变。示例如下: 54

(5)突变 表中有三个字符长度为4的旧个体。对应每个字符,依次产生[ 0,1 ]区间均匀分布的随机数12个。表中只有2号个体的第3个字符以及3号个体的第4个字符需要发生突变,因为它们对应的随机数小于0.008。 序号 旧个体 随机数 新字符 新个体 1 2 3 1010 1100 0010 0.801 0.102 0.266 0.373 0.120 0.096 0.005 0.840 0.760 0.473 0.894 0.001 1110 0011 55

(5)突变 序号 旧个体 随机数 新字符 新个体 1 2 3 1010 1100 0010 0.801 0.102 0.266 0.373 0.120 0.096 0.005 0.840 0.760 0.473 0.894 0.001 0011 随机确定突变的位置后,执行突变的方法有两种。一种是直接产生突变,将表中的2号和3号旧个体分别改写作1110及0011。 另一种方法,按50%的概率随机产生新字符0或1。表中2号个体产生的新字符为0,与需要突变的第三行字符恰好一样,因此新个体等同于旧个体。表中3号个体产生的新字符(1)不同于待突变的原来字符(0),因此新个体不同于旧个体。很明显,后一种突变方法的突变概率仅为前一种方法的50%。通常建议采用后一种方法,增加突变的随机性。 56

(5)突变 还有一种执行突变的方法,是根据给定的概率Pm1。随机选择突变的个体。当被突变的个体选中后,在字长范围内用均匀分布的随机数选择突变的字符,使该个体发生突变。然而,这时的概率Pm1 ,不同于突变概率Pm,后者是针对字符而言,前者是针对个体。遗传算法中讨论的正是字符的突变概率Pm,两者间的关系与字长L有关。 尽管突变和交换都能产生新个体,但是在遗传算法中,交换的作用远比突变重要。 57

(6)终止条件 遗传算法是一种反复迭代的搜索方法,它通过多次进化逐渐逼近最优解而不是恰好等于最优解,因此需要确定终止条件。 其一, 最常用的终止方法是规定遗传(迭代)的代次。刚开始时,迭代次数小一些,如规定100次。然后视情况逐渐增加次数,可达到上千次。 58

(6)终止条件 | f(x) – f * | ≤△ f(x) : 遗传算法得出的目标函数值。 f * :实际目标值。 △ :足够小的数。 当目标函数是方差这一类有最优目标值的问题时,可采用控制偏差的方法实现终止。一旦遗传算法得出的目标函数值(适应度)与实际目标值之差小于允许值后,算法终止,即: | f(x) – f * | ≤△ f(x) : 遗传算法得出的目标函数值。 f * :实际目标值。 △ :足够小的数。 59

(6)终止条件 第三种终止方法是检查适应度的变化。在遗传算法后期,一旦最优个体的适应度没有变化或变化很小时,即令计算终止。 遗传算法的另一个重要参数是每代群体中的个体数。很明显,个体数目越多,搜索范围越广,容易获取全局最优解。然而个体数目太多,每次迭代时间也长。通常,个体数目可取100-1000之间。 60

7 遗传算法的应用领域 (1)函数优化。 函数优化是遗传算法的经典应用领域,也是遗传算法进行性能评价的常用算例。尤其是对非线性、多模型、多目标的函数优化问题,采用其他优化方法较难求解,而遗传算法却可以得到较好的结果。

(2)组合优化。 随着问题的增大,组合优化问题的搜索空间也急剧扩大,采用传统的优化方法很难得到最优解。遗传算法是寻求这种满意解的最佳工具。例如,遗传算法已经在求解旅行商问题、背包问题、装箱问题、图形划分问题等方面得到成功的应用。

(3)生产调度问题 在很多情况下,采用建立数学模型的方法难以对生产调度问题进行精确求解。在现实生产中多采用一些经验进行调度。遗传算法是解决复杂调度问题的有效工具,在单件生产车间调度、流水线生产车间调度、生产规划、任务分配等方面遗传算法都得到了有效的应用。

(4)自动控制。 在自动控制领域中有很多与优化相关的问题需要求解,遗传算法已经在其中得到了初步的应用。例如,利用遗传算法进行控制器参数的优化、基于遗传算法的模糊控制规则的学习、基于遗传算法的参数辨识、基于遗传算法的神经网络结构的优化和权值学习等。

(5)机器人 例如,遗传算法已经在移动机器人路径规划、关节机器人运动轨迹规划、机器人结构优化和行为协调等方面得到研究和应用。 (6)图像处理 遗传算法可用于图像处理过程中的扫描、特征提取、图像分割等的优化计算。目前遗传算法已经在模式识别、图像恢复、图像边缘特征提取等方面得到了应用。

8 遗传算法应用--求函数极值 利用遗传算法求Rosenbrock函数的极大值

编码 用长度为10位的二进制编码串来分别表示两个变量 x1,x2。10位二进制编码串可以表示从0到1023之间的1024 个不同的数,故将x1,x2的定义域离散化为1023个均等的区 域,包括两个端点在内共有1024个不同的离散点。 从离散点-2.048到离散点2.048 ,分别对应于从 0000000000(0)到1111111111(1023)之间的二进制编码。

将x1,x2分别表示的两个10位长的二进制编码串连接在一起, 组成一个20位长的二进制编码串,它就构成了这个函数优化问题 的染色体编码方法。使用这种编码方法,解空间和遗传算法的搜 索空间就具有一一对应的关系。 例如: 表示一个个体的基因型,其 中前10位表示x1,后10位表示x2。

确定解码方法:解码时需要将20位长的二进制编码串切断为两个10位长的二进制编码串,然后分别将它们转换为对应的十进制整数代码,分别记为y1和y2。 依据个体编码方法和对定义域的离散化方法可知,将代码y转换为变量x的解码公式为 例如,对个体

它由两个代码所组成 上述两个代码经过解码后,可得到两个实际的值 确定个体评价方法:由于Rosenbrock函数的值域总是非负的,并且优化目标是求函数的最大值,故可将个体的适应度直接取为对应的目标函数值,即

选个体适应度的倒数作为目标函数 设计遗传算子:选择运算使用比例选择算子,交叉运算使用单点交叉算子,变异运算使用基本位变异算子。 确定遗传算法的运行参数:群体大小M=80,终止进化代数G=100,交叉概率Pc=0.60,变异概率Pm=0.10。

采用上述方法进行仿真,经过200步迭代, 当 时,Rosenbrock函数具有极大值,极大值为3880.3。