遗传算法简单实例.ppt

上传人:wuy****n92 文档编号:80433715 上传时间:2023-03-23 格式:PPT 页数:44 大小:867.50KB
返回 下载 相关 举报
遗传算法简单实例.ppt_第1页
第1页 / 共44页
遗传算法简单实例.ppt_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《遗传算法简单实例.ppt》由会员分享,可在线阅读,更多相关《遗传算法简单实例.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、遗传算法(GA)的肇始“活的有机体是解决问题的专家。它们所表现出来的各种才能足以使最好的计算机程序自惭形秽。这种现象尤其令计算机科学家们感到痛楚。计算机科学家们为了某种算法可能花费数月乃至数年的脑力劳动,而有机体则能通过进化和自然选择这样一种显然并非定向进行的机制获得这种能力。”-John Holland遗传算法的思想Darwin的进化论 -“自然选择、适者生存”特定环境的考验种群中个体的选择选择种群中的交叉交叉繁殖种群中个体的变异变异 上述操作反复执行,个体逐渐优化遗传算法的手工模拟计算示例遗传算法的手工模拟计算示例遗传算法的手工模拟计算示例遗传算法的手工模拟计算示例 为更好地理解遗传算法的

2、运算过程,下面用手工计算来简单地模拟遗传算法的各为更好地理解遗传算法的运算过程,下面用手工计算来简单地模拟遗传算法的各 个主要执行步骤。个主要执行步骤。例:求下述二元函数的最大值:例:求下述二元函数的最大值:max f(x1,x2)=x12+x22 s.t.x1 1,2,3,4,5,6,7 x2 1,2,3,4,5,6,7 (1)(1)个体编码个体编码个体编码个体编码 遗传算法的运算对象是表示个体的符号串,所以必须把变量遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1,x2 编码为一种编码为一种 符号串。符号串。本题中,用无符号二进制整数来表示。本题中,用无符号二进制整数来表示。因因

3、 x1,x2 为为 0 7之间的整数,所以分别用之间的整数,所以分别用3位无符号二进制整数来表示,将它位无符号二进制整数来表示,将它 们连接在一起所组成的们连接在一起所组成的6位无符号二进制数就形成了个体的基因型,表示一个可位无符号二进制数就形成了个体的基因型,表示一个可 行解。行解。例如,基因型例如,基因型 X101110 所对应的表现型是:所对应的表现型是:x 5,6。个体的表现型个体的表现型x和基因型和基因型X之间可通过编码和解码程序相互转换。之间可通过编码和解码程序相互转换。(2)(2)初始群体的产生初始群体的产生初始群体的产生初始群体的产生 遗传算法是对群体进行的进化操作,需要给其淮

4、备一些表示起始搜索点的初始遗传算法是对群体进行的进化操作,需要给其淮备一些表示起始搜索点的初始 群体数据。群体数据。本例中,群体规模的大小取为本例中,群体规模的大小取为4,即群体由,即群体由4个个体组成,每个个体可通过随机个个体组成,每个个体可通过随机 方法产生。方法产生。如:如:011101,101011,011100,111001 (3)(3)适应度汁算适应度汁算适应度汁算适应度汁算 遗传算法中以个体适应度的大小来评定各个个体的优劣程度,从而决定其遗传遗传算法中以个体适应度的大小来评定各个个体的优劣程度,从而决定其遗传 机会的大小。机会的大小。本例中,目标函数总取非负值,并且是以求函数最大

5、值为优化目标,故可直接本例中,目标函数总取非负值,并且是以求函数最大值为优化目标,故可直接 利用目标函数值作为个体的适应度。利用目标函数值作为个体的适应度。(4)(4)选择运算选择运算选择运算选择运算 选择运算选择运算(或称为复制运算或称为复制运算)把当前群体中适应度较高的个体按某种规则或模型把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代遗传到下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代 群体中。群体中。本例中,我们采用与适应度成正比的概率来确定各个个体复制到下一代群体中本例中,我们采用与适应度成正比的概率

6、来确定各个个体复制到下一代群体中 的数量。其具体操作过程是:的数量。其具体操作过程是:先计算出群体中所有个体的适应度的总和先计算出群体中所有个体的适应度的总和 fi (i=1.2,M);其次计算出每个个体的相对适应度的大小其次计算出每个个体的相对适应度的大小 fi/fi,它即为每个个体被遗传,它即为每个个体被遗传 到下一代群体中的概率,到下一代群体中的概率,每个概率值组成一个区域,全部概率值之和为每个概率值组成一个区域,全部概率值之和为1;最后再产生一个最后再产生一个0到到1之间的随机数,依据该随机数出现在上述哪一个概率区之间的随机数,依据该随机数出现在上述哪一个概率区 域内来确定各个个体被选

7、中的次数。域内来确定各个个体被选中的次数。0124%24%17%35%1#2#3#4#个体编号个体编号初始群体初始群体p(0)适值适值占总数的百分比占总数的百分比总和总和1234011101101011011100111001343425500.240.240.170.351431选择次数选择次数选择结果选择结果1102011101111001101011111001 x1 x2 3 5 5 3 3 4 7 1(5)(5)交叉运算交叉运算交叉运算交叉运算 交叉运算是遗传算法中交叉运算是遗传算法中产生新个体产生新个体的主要操作过程,它以某一概率相互交换某的主要操作过程,它以某一概率相互交换某 两

8、个个体之间的部分染色体。两个个体之间的部分染色体。本例采用单点交叉的方法,其具体操作过程是:本例采用单点交叉的方法,其具体操作过程是:先对群体进行随机配对;先对群体进行随机配对;其次随机设置交叉点位置;其次随机设置交叉点位置;最后再相互交换配对染色体之间的部分基因。最后再相互交换配对染色体之间的部分基因。选择结果选择结果01 110111 10011010 111110 01配对情况配对情况交叉点位置交叉点位置个体编号个体编号12341-23-41-2:23-4:4交叉结果交叉结果011001 111101101001111011 可以看出,其中新产生的个体可以看出,其中新产生的个体“1111

9、01”、“111011”的适应度较原来两个的适应度较原来两个个体个体 的适应度都要高。的适应度都要高。(6)(6)变异运算变异运算变异运算变异运算 变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进 行改变,它行改变,它也是产生新个体也是产生新个体的一种操作方法。的一种操作方法。本例中,我们采用基本位变异的方法来进行变异运算,其具体操作过程是:本例中,我们采用基本位变异的方法来进行变异运算,其具体操作过程是:首先确定出各个个体的基因变异位置,下表所示为随机产生的变异点位置,首先确定出各个个体的基因变异位置,下表所

10、示为随机产生的变异点位置,其中的数字表示变异点设置在该基因座处;其中的数字表示变异点设置在该基因座处;然后依照某一概率将变异点的原有基因值取反。然后依照某一概率将变异点的原有基因值取反。对群体对群体P(t)进行一轮选择、交叉、变异运算之后可得到新一代的群体进行一轮选择、交叉、变异运算之后可得到新一代的群体p(t+1)。个体编号个体编号1234交叉结果交叉结果011001 111101101001111011变异结果变异结果变异点变异点4526011101 111111111001111010子代群体子代群体p(1)011101 111111111001111010 从上表中可以看出,群体经过一

11、代进化之后,其适应度的最大值、平均值都得从上表中可以看出,群体经过一代进化之后,其适应度的最大值、平均值都得 到了明显的改进。事实上,这里已经找到了最佳个体到了明显的改进。事实上,这里已经找到了最佳个体“111111”。注意注意注意注意 需要说明的是,表中有些栏的数据是随机产生的。这里为了更好地说明问题,需要说明的是,表中有些栏的数据是随机产生的。这里为了更好地说明问题,我们特意选择了一些较好的数值以便能够得到较好的结果,而在实际运算过程中我们特意选择了一些较好的数值以便能够得到较好的结果,而在实际运算过程中 有可能需要一定的循环次数才能达到这个最优结果。有可能需要一定的循环次数才能达到这个最

12、优结果。个体编号个体编号子群体子群体p(1)适值适值占总数的百分比占总数的百分比总和总和1234011101 111111111001111010349850530.140.420.210.232351 x1 x2 3 5 7 7 7 1 7 2个体编号个体编号初始群体初始群体p(0)适值适值fi(x1,x2)占总数的百分比占总数的百分比fi/f1234011101101011011100111001343425500.240.240.170.35 x1 x2 3 5 5 3 3 4 7 1 fi=143fmax=50f=35.75选择结果选择结果01110111100110101111100

13、1配对情况配对情况交叉点位置交叉点位置1-23-41-2:23-4:4交叉结果交叉结果011001 111101101001111011选择次数选择次数1102变异结果变异结果变异点变异点4526011101 111111111001111010子代群体子代群体p(1)适值适值fi(x1,x2)占总数的百分比占总数的百分比fi/f011101 111111111001111010349850530.140.420.210.23 x1 x2 3 5 7 7 7 1 7 2 fi=253fmax=98f=58.75遗传算法的一个实例求解方程:将方程求解问题转化为生存问题:解一定在0,10之间,将区

14、间0,10划分成若干个小区间,设想每个小区间为一个生物个体,使下列表达式最小的个体有 最好的生存能力,该个体即为解。遗传算法的一个实例如何找到这个最优个体?可通过 Darwin 的进化论由初始个体经过代代演化,逐渐进化出来。如何将生物进化的操作转化为计算机可以执行的操作?通过编码表征生物个体,则生物之间的演化转化为编码的变化。步骤一:初始化个体编码:(假定要求小数点后两位)将0,10划分为1024个小区间 个体 1 0000000000 个体 2 0000000001 个体 3 0000000010 个体 1024 1111111111种群初始化:随机生成m个10位二进制串010定义适应度函数

15、:选择(适应度较大的个体)步骤二:选择为何取倒数?0.10.30.20.40.10.10.30.40.20.60.41.0ABCD随机产生0,1之间的数 RN,选择个体 RN个体ABCD选中的优势个体进行交叉 -由父个体生成子个体步骤三:交叉相同的两个父个体生成相同的两个子个体变异操作 在个体中随机选择一位,改变该位的值步骤四:变异交叉和变异操作均以一定概率进行反复执行步骤二、三、四并记录最优个体(适应度最大的个体)程序结束时,最优个体即为所求解程序结束的判定 根据循环次数 根据最大适应度 根据种群中相同个体数与总个体数的比值步骤五遗传算法各步骤的评价选择-优胜劣汰 选择操作为种群提供了演进的

16、方向交叉-优优组合 交叉操作的作用在于汇集散布于不同 个体间的局部优势模式变异-寻找新模式 变异操作是种群向外扩展的触角(随机)好的变异将保留,坏的淘汰遗传算法的总体评价优点 解决问题的方法具有普适性 全局收敛性(依概率收敛)能解决的问题范围很广不足 求得的解为近似的数值解 对于经典数学可以解决的问题,效率较低遗传算法的适应度函数求函数的全局极小值取 的初始区间,例如:-10,10将此区间分为1024个小区间,然后编码若求全局极大值(且为正),可直接取函数值为其适应度值,据此作概率选择;若求全局极小值(且为正),可取函数值的倒数为其适应度值,据此作概率选择。若不全为负,可统一加上一个正数,使为

17、正。TSP问题的遗传算法求解步骤一:个体编码及种群初始化步骤二:适应度选择步骤三:交叉操作步骤四:变异操作步骤五:重复二、三、四步,直至结束 令城市(点)数目为 N个体编码 取长度为N的数字串,串中数字互不重复,取值范围为1,N之间的整数。则每一个数字串代表一个个体,个体中数字出现的位置表征路径中城市出现的顺序。初始种群 令种群中有 M 个个体,可随机产生 M 个数字 串构成初始种群。例如:将数字串 1234N 上的数字进行随机的交换步骤一:初始化适应度的计算步骤二:适应度选择12345对于个体 ,适应度为:被选中作为父个体的概率:选择选择 M 次次重新生成种群重新生成种群TSP中交叉算子的特

18、点 要保证生成的解为有效解 从一个父个体中随机选取一段子串A,在另一个父个体中将A中出现的数字去掉形成串B,AB为一个子串步骤三:交叉操作此外还有多种交叉算子常用的变异操作:随机选取两个相邻位置的数字,交换其顺序。51243(5)51234(5)步骤四:变异操作1234512345交换3,4此外还有多种变异算子反复执行步骤二、三、四结束判定 循环执行 G 次(例如 G=500)后 当最优个体的总路径长度小于预期时步骤五:中国各省会城市的运行结果12345 缺陷:相同父个体生成不同的子个体 以下是相同个体:12345(1)54321(5)反射操作 12345(1)34512(3)旋转操作交叉算子

19、的进一步研究用群论描述 所有路径的集合形成一个二面体群 A 等价解构成一个正规子群 B A 中陪集的数目为 2N12345(1)32154(3)相同父个体交叉34215(3)15234(1)不同子个体,且和父个体不同1234512345123454.1 遗传算法简介遗传算法简介 智能优化计算智能优化计算简单实例简单实例1.产生初始种群产生初始种群2.计算适应度计算适应度 4 4.1.4 .1.4 遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作 0001100000 0101111001 0000000101 1001110100 1010101010111001011

20、0 1001011011 1100000001 1001110100 0001010011(8)(5)(2)(10)(7)(12)(5)(19)(10)(14)4.1 遗传算法简介遗传算法简介 智能优化计算智能优化计算简单实例简单实例3.选择选择 4 4.1.4 .1.4 遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作 个体个体染色体染色体适适应度度选择概率概率累累积概率概率10001100000820101111001530000000101241001110100105101010101076111001011012710010110115811000000011

21、991001110100101000010100111488521071251910140.08695758521071251910140.0543480.0217390.1086960.0760870.1304350.0543480.2065220.1086960.1521744.1 遗传算法简介遗传算法简介 智能优化计算智能优化计算简单实例简单实例3.选择选择 4 4.1.4 .1.4 遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作 个体个体染色体染色体适适应度度选择概率概率累累积概率概率10001100000820101111001530000000101241

22、00111010010510101010107611100101101271001011011581100000001199100111010010100001010011140.0869570.0543480.0217390.1086960.0760870.1304350.0543480.2065220.1086960.1521740.0869570.1413040.1630430.2717390.3478260.4782610.5326090.7391300.8478261.0000004.1 遗传算法简介遗传算法简介 智能优化计算智能优化计算简单实例简单实例3.选择选择4.在在01之间产

23、生一个之间产生一个5.随机数:随机数:4 4.1.4 .1.4 遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作 个体个体染色体染色体适适应度度选择概率概率累累积概率概率1000110000082010111100153000000010124100111010010510101010107611100101101271001011011581100000001199100111010010100001010011140.0869570.0543480.0217390.1086960.0760870.1304350.0543480.2065220.1086960.152

24、1740.0869570.1413040.1630430.2717390.3478260.4782610.5326090.7391300.8478261.0000000.0702210.5459290.7845670.4469300.5078930.2911980.7163400.2709010.3714350.854641淘汰!淘汰!淘汰!淘汰!0001100000 1110010110 1100000001 1001110100 10101010101110010110 1001011011 1100000001 1001110100 00010100114.1 遗传算法简介遗传算法简介

25、智能优化计算智能优化计算简单实例简单实例4.交叉交叉 4 4.1.4 .1.4 遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作 0001100000 1110010110 1100000001 1001110100 10101010101110010110 1001011011 1001110100 1100000001 000101001100011110100000010110111100001011010110111100001001110100000110011101001100000001101010100010100100114.1 遗传算法简介遗传算法简

26、介 智能优化计算智能优化计算简单实例简单实例5.变异变异 4 4.1.4 .1.4 遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作遗传算法的基本操作 0001100000 1110010110 1100000001 1001110100 10101010101110010110 1001011011 1100000001 1001110100 000101001100011110100000010110111100001011010110111100001001010100000110011101001100000001101010100010100100110001100000 11

27、10010110 1100000001 1001110100 10101010101110010110 1001011011 1100000001 1001110100 000101001100011110100000010110111100001011010110111100001001110100000110011101001100000001101010100010100100114.2 基本遗传算法基本遗传算法 智能优化计算智能优化计算问题的提出问题的提出 一元函数求最大值:一元函数求最大值:4 4.2.1 .2.1 简单函数优化的实例简单函数优化的实例简单函数优化的实例简单函数优化的

28、实例 4.2 基本遗传算法基本遗传算法 智能优化计算智能优化计算问题的提出问题的提出 用微分法求取用微分法求取f(x)的最大值:的最大值:解有无穷多个:解有无穷多个:4 4.2.1 .2.1 简单函数优化的实例简单函数优化的实例简单函数优化的实例简单函数优化的实例 4.2 基本遗传算法基本遗传算法 智能优化计算智能优化计算问题的提出问题的提出 当当i为奇数时为奇数时xi对应局部极大值点,对应局部极大值点,i为偶数时为偶数时xi对应对应局部极小值。局部极小值。x19即为区间即为区间-1,2内的最大值点:内的最大值点:此时,函数最大值此时,函数最大值f(x19)比比f(1.85)=3.85稍大。稍

29、大。4 4.2.1 .2.1 简单函数优化的实例简单函数优化的实例简单函数优化的实例简单函数优化的实例 4.2 基本遗传算法基本遗传算法 智能优化计算智能优化计算编码编码 表现型:表现型:x 基因型:二进制编码(串长取决于求解精度)基因型:二进制编码(串长取决于求解精度)串长与精度之间的关系串长与精度之间的关系:若要求求解精度到若要求求解精度到6位小数,区间长度为位小数,区间长度为2-(-1)3,即需将区间分为,即需将区间分为3/0.000001=3106等份。等份。所以编码的二进制串长应为所以编码的二进制串长应为22位。位。4 4.2.1 .2.1 简单函数优化的实例简单函数优化的实例简单函

30、数优化的实例简单函数优化的实例 4.2 基本遗传算法基本遗传算法 智能优化计算智能优化计算产生初始种群产生初始种群 产生的方式:随机产生的方式:随机 产生的结果:长度为产生的结果:长度为22的二进制串的二进制串 产生的数量:种群的大小(规模),如产生的数量:种群的大小(规模),如30,50,4 4.2.1 .2.1 简单函数优化的实例简单函数优化的实例简单函数优化的实例简单函数优化的实例 4.2 基本遗传算法基本遗传算法 智能优化计算智能优化计算计算适应度计算适应度 不同的问题有不同的适应度计算方法不同的问题有不同的适应度计算方法 本例:直接用目标函数作为适应度函数本例:直接用目标函数作为适应

31、度函数 将某个体转化为将某个体转化为-1,2区间的实数:区间的实数:s x=0.637197 计算计算x的函数值(适应度):的函数值(适应度):f(x)=xsin(10 x)+2.0=2.586345 4 4.2.1 .2.1 简单函数优化的实例简单函数优化的实例简单函数优化的实例简单函数优化的实例 4.2 基本遗传算法基本遗传算法 智能优化计算智能优化计算计算适应度计算适应度 二进制与十进制之间的转换二进制与十进制之间的转换:第一步,将一个二进制串(第一步,将一个二进制串(b21b20b0)转化为)转化为10进制进制数:数:第二步,第二步,x对应的区间对应的区间-1,2内的实数:内的实数:4

32、 4.2.1 .2.1 简单函数优化的实例简单函数优化的实例简单函数优化的实例简单函数优化的实例 (0000000000000000000000)-14.2 基本遗传算法基本遗传算法 智能优化计算智能优化计算遗传操作遗传操作 选择:轮盘赌选择法;选择:轮盘赌选择法;交叉:单点交叉;交叉:单点交叉;变异:小概率变异变异:小概率变异 4 4.2.1 .2.1 简单函数优化的实例简单函数优化的实例简单函数优化的实例简单函数优化的实例 4.2 基本遗传算法基本遗传算法 智能优化计算智能优化计算模拟结果模拟结果 设置的参数设置的参数:种群大小种群大小50;交叉概率;交叉概率0.75;变异概率;变异概率0

33、.05;最大;最大代数代数200。得到的最佳个体得到的最佳个体:smax xmax=1.8506;f(xmax)=3.8503;4 4.2.1 .2.1 简单函数优化的实例简单函数优化的实例简单函数优化的实例简单函数优化的实例 4.2 基本遗传算法基本遗传算法 智能优化计算智能优化计算模拟结果模拟结果 进化的过程进化的过程:4 4.2.1 .2.1 简单函数优化的实例简单函数优化的实例简单函数优化的实例简单函数优化的实例 世代数世代数自变量自变量适应度适应度11.44953.449491.83953.7412171.85123.8499301.85053.8503501.85063.8503801.85063.85031201.85063.85032001.85063.8503

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁