第五章计算智能2人工智能课程北京大学汇编Word文档下载推荐.docx
- 文档编号:14306964
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:12
- 大小:30.53KB
第五章计算智能2人工智能课程北京大学汇编Word文档下载推荐.docx
《第五章计算智能2人工智能课程北京大学汇编Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第五章计算智能2人工智能课程北京大学汇编Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
生物群体的生存过程普遍遵循达尔文的物竞天择、适者生存的进化准则;
生物通过个体间的选择、交叉、变异来适应大自然环境。
生物染色体用数学方式或计算机方式来体现就是一串数码,仍叫染色体,有时也叫个体;
适应能力用对应一个染色体的数值来衡量;
染色体的选择或淘汰问题是按求最大还是最小问题来进行。
20世纪60年代以来,如何模仿生物来建立功能强大的算法,进而将它们运用于复杂的优化问题,越来越成为一个研究热点。
进化计算(evolutionarycomputation)正是在这一背景下蕴育而生的。
进化计算包括遗传算法(geneticalgorithms,GA),进化策略(evolutionstrategies)、进化编程(evolutionaryprogramming)和遗传编程(geneticprogramming)。
人类不满足于模仿生物进化行为,希望能够建立具有自然生命特征的人造生命和人造生命系统。
对人工生命(ArtificialLife,ALife)的研究,自1987年起取得了重要进展。
这是人工智能和计算智能的一个新的研究热点。
5.1遗传算法
介绍遗传算法的基本机理和求解步骤,评介遗传算法研究进展和应用情况。
遗传算法的基本机理。
遗传算法的交叉和变异机制。
课堂教学为主,并通过演示程序sga.exe加深对遗传算法的理解。
理解遗传算法的基本机理,了解遗传算法的框图,掌握一般遗传算法的主要步骤,初步了解遗传算法研究的进展和应用情况。
遗传算法是模仿生物遗传学和自然选择机理,通过人工方式构造的一类优化搜索算法,是对生物进化过程进行的一种数学仿真,是进化计算的一种最重要形式。
5.1.1遗传算法的基本机理
霍兰德提出的遗传算法通常称为简单遗传算法(SGA)。
现以此作为讨论主要对象,加上适应的改进,来分析遗传算法的结构和机理。
在讨论中会结合销售员旅行问题(TSP)来说明。
1、编码与解码
许多应用问题的结构很复杂,但可以化为简单的位串形式编码表示。
将问题结构变换为位串形式编码表示的过程叫编码;
而相反将位串形式编码表示变换为原问题结构的过程叫解码或译码。
把位串形式编码表示叫染色体,有时也叫个体。
GA的算法过程简述如下。
首先在解空间中取一群点,作为遗传开始的第一代。
每个点(基因)用一个二进制数字串表示,其优劣程度用一目标函数棗适应度函数(fitnessfunction)来衡量。
遗传算法最常用的编码方法是二进制编码。
二进制编码的最大缺点之一是长度较大,对很多问题用其他主编码方法可能更有利。
其他编码方法主要有:
浮点数编码方法、格雷码、符号编码方法、多参数编码方法等。
举例:
对于销售员旅行问题,按一条回路中城市的次序进行编码。
从城市w1开始,依次经过城市w2,……,wn,最后回到城市w1,我们就有如下编码表示:
w1w2……wn
由于是回路,记wn+1=w1。
它其实是1,……,n的一个循环排列。
要注意w1,w2,……,wn是互不相同的。
提问:
二进制编码存在的缺点是什么?
课后查资料:
浮点数编码方法、格雷码、符号编码方法、多参数编码方法
举例:
销售员旅行问题采用符号编码方法。
2、适应度函数
为了体现染色体的适应能力,引入了对问题中的每一个染色体都能进行度量的函数,叫适应度函数(fitnessfunction)。
TSP的目标是路径总长度为最短,自然地,路径总长度就可作为TSP问题的适应度函数。
适应度函数要有效反映每一个染色体与问题的最优解染色体之间的差距。
适应度函数的取值大小与求解问题对象的意义有很大的关系。
TSP问题的适应度函数。
讨论:
适应度函数如何有效反映每一个染色体与问题的最优解染色体之间的差距?
3、遗传操作
简单遗传算法的遗传操作主要有有三种:
选择(selection)、交叉(crossover)、变异(mutation)。
改进的遗传算法大量扩充了遗传操作,以达到更高的效率。
选择操作也叫复制(reproduction)操作,根据个体的适应度函数值所度量的优劣程度决定它在下一代是被淘汰还是被遗传。
交叉操作的简单方式是将被选择出的两个个体P1和P2作为父母个体,将两者的部分码值进行交换。
变异操作的简单方式是改变数码串的某个位置上的数码。
二进制编码表示的简单变异操作是将0与1互换:
0变异为1,1变异为0。
5.1.2遗传算法的求解步骤
1、遗传算法的特点
遗传算法是一种基于空间搜索的算法,它通过自然选择、遗传、变异等操作以及达尔文适者生存的理论,模拟自然进化过程来寻找所求问题的解答。
遗传算法具有以下特点:
(1)遗传算法是对参数集合的编码而非针对参数本身进行进化;
(2)遗传算法是从问题解的编码组开始而非从单个解开始搜索;
(3)遗传算法利用目标函数的适应度这一信息而非利用导数或其它辅助信息来指导搜索;
(4)遗传算法利用选择、交叉、变异等算子而不是利用确定性规则进行随机操作。
遗传算法的主要优点有哪些?
2、遗传算法的框图
简单遗传算法框图如图5.2所示。
算法的停止条件最简单的有如下二种:
(1)完成了预先给定的进化代数则停止;
(2)群体中的最优个体在连续若干代没有改进或平均适应度在连续若干代基本没有改进时停止。
一般遗传算法的主要步骤如下:
(1) 随机产生一个由确定长度的特征字符串组成的初始群体。
(2) 对该字符串群体迭代的执行下面的步(a)和(b),直到满足停止标准:
(a)计算群体中每个个体字符串的适应值;
(b)应用复制、交叉和变异等遗传算子产生下一代群体。
(3) 把在后代中出现的最好的个体字符串指定为遗传算法的执行结果,这个结果可以表示问题的一个解。
根据遗传算法思想可以画出简单遗传算法框图5.2。
演示:
看例子的演示,观察SGA是否收敛,参数对算法有什么影响。
3、遗传算法求解举例
为了便于理解,下面通过一个简单的例子来说明遗传算法的主要内容及其运行步骤。
例:
设
,用SGA求
首先用程序SGA.exe对例2进行实算。
其求解步骤如下:
(1)方案表示
用一个二进制矢量表示一个染色体,由染色体来代表变量x的实数值,每个染色体的每一位二进制数称为遗传因子。
(2)群体初始化
随机产生一定数量的染色体,每个染色体为22位字节的二进制数。
(3)适应度函数
适应度函数必须有能力计算搜索空间中每个确定长度的特征字符串的适应值。
(4)遗传操作
采用的遗传操作分别是复制、交叉和变异。
交叉相对于复制和变异的不同之处在于:
交叉需要两个父代染色体配合进行,而复制和变异只需要一个父代染色体即可进行。
变异可根据一定的变异率来改变一个或多个遗传因子。
(5)算法参数
遗传算法的主要参数有群体规模和算法执行的最大代数目,次要参数有复制概率、杂交概率和变异概率等参数。
5.2进化策略
介绍进化策略的算法模型、进化策略和遗传算法的区别。
进化策略的算法模型。
没有要求。
课堂教学为主。
了解进化策略的算法模型,一般了解进化策略和遗传算法的区别。
进化策略是一类模仿自然进化原理以求解参数优化问题的算法。
它是由雷切伯格(Rechenberg)、施韦费尔(Schwefel)和彼得·
比纳特(PeterBienert)于1964年提出的,并在德国共同建立的。
5.2.1进化策略的算法模型
最简单形式的进化策略可描述如下:
(1)问题被定义为寻求与函数的极值相关联的实数n维矢量x,F(x):
Rn→R。
(2)从每个可能的范围内随机选择父矢量的初始群体,初始试探的分布具有典型的一致性。
(3)父矢量xi,i=1,…,p通过加入一个零均方差的高斯随机变量以及预先选择x的标准偏差来产生子代矢量xi。
(4)通过对误差
(i=1,…,p)排序以选择和决定保持哪些矢量。
那些拥有最小误差的P矢量成为下一代的新的父代。
(5)产生新的试验数据以及选择最小误差矢量的过程将继续到找到符合条件的答案或者所有的计算已经全部完成为止。
(举例说明)
求一个3维问题的最小值。
5.2.2进化策略和遗传算法的区别
除了研究和应用领域外,进化策略和遗传算法
还有以下区别:
(1)进化策略和遗传算法表示个体的方式不同,
进化策略在浮点矢量上运行,而遗传算法一般运行在二进制矢量上。
(2)进化策略和遗传算法的选择过程不同。
(3)进化策略和遗传算法的复制参数不同,遗传算法的复制参数(交叉和变异的可能性)在进化过程中保持恒定,而进化策略时时改变它们。
随着技术的发展,进化策略和遗传算法以上的差别越来越不明显。
进化策略和遗传算法还有什么区别?
5.3进化编程
介绍进化编程的机理与表示及算法步骤。
进化编程的机理与表示。
课堂教学为主,充分利用网络课程中的有关素材及示例程序阐述抽象概念。
了解进化编程的机理与表示,一般了解算法步骤。
进化编程又称为进化规划(EvolutionaryPlanning),是由福格尔(Fogel)在1962年提出的一种模仿人类智能的方法。
他们为有限状态机的演化而提出进化规划来预测问题。
这些状态机的状态变换表是通过对应的离散有界集上进行的均匀随机变异来修改的。
进化编程根据正确预测的符号数来度量适应值。
通过变异,为父代群体中的每个机器状态产生一个子代。
父代和子代中最好的部分被选择生存下来。
5.3.1进化编程的机理与表示
进化编程的过程,可理解为从所有可能的计算机程序形成的空间中,搜索具有高的适应度的计算机程序个体。
在进化编程中,可能有几百或几千个计算机程序参与遗传进化。
进化编程最初由一随机产生的计算机程序群体开始,这些计算机程序由适合于问题空间领域的函数所组成,这样的函数可以是标准的算术运算函数、标准的编程操作、逻辑函数或由领域指定的函数。
群体中每个计算机程序个体是用适应度来评价的,该适应值与特定的问题领域有关。
5.3.2进化编程的步骤
进化编程可繁殖出新的计算机程序以解决问题,它分为三个步骤:
(1)产生出初始群体,它由关于问题(计算机程序)的函数随机组合而成。
(2)迭代完成下述子步骤,直至满足选种标准为止:
(a)执行群体中的每个程序,根据它解决问题的能力,给它指定一个适应值。
(b)应用变异等操作创造新的计算机程序群体。
(3)在后代中适应值最高的计算机程序个体被指定为进化编程的结果。
进化编程的基本过程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 计算 智能 人工智能 课程 北京大学 汇编