2022年遗传算法实例 .pdf
《2022年遗传算法实例 .pdf》由会员分享,可在线阅读,更多相关《2022年遗传算法实例 .pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、先进控制技术智能控制与智能系统(遗传算法作业)任课老师:学生姓名:学号:专业:导师:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 27 页 - - - - - - - - - 第 1 页简介:本文给出了一种遗传算法来求取两组函数的最大值。本遗传算法主要采用选择、交叉和变异三种方式实现。在定义域内随机选取50 组自变量作为初始种群,进行交叉、变异、选择复制后得到相应的最大函数值。在交叉和变异时,考虑到了可能由于交叉和变异可能使自变量超出其限定范围,故在程序中采取了一定算法
2、防止其发生以免使结果错误,在选择复制过程中, 为避免适应值为负, 或复制个体数超出种群数等情况的发生,进行了一些必要处理, 避免发生错误或算法发散。一、任务利用遗传算法求下列函数的最大适应值及其位置:(1)1sinsin(,)*xyfx yxy(2)22222(5)(5)(5)(5)(,)0.9exp()0.99996exp()1020 xyxyfx y其中,10,10 x y,精确到 0.0001。要求:1. 种群大小为 50;2. 交换位数为:2n,其中 n 为个体基因数;3. 变异位数为 4(固定不变);4. 交换的个数分别取: Nc=20,28,36,44;5. 变异的个数分别取: N
3、m=1,5,10,15;二、求解分析及相关处理1.个体编码基因数的确定任务要求求解精度为小数点后4 位,区间长度为10-(-10)=20,所以将区间-10,10分为452010210等份;又因为1751813107222102262144,所以单变量编码的二进制串长至少需要18 位,我们取单个个体基因数为18,在进行遗传算法的各个环节时, 等效将两个变量的编码串接起来当做一个个体进行名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 27 页 - - - - - - - -
4、- 第 2 页处理,则处理时个体基因数为n=36,每次交换位数为2n=18。2.数据处理因为,10,10 x y, 精度为 0.0001, 为方便在 MATLAB 中对数据进行操作,避免小数和负数的问题,进行适当的数据处理,如(x,y +10)10000,将自变量范围其转换到 0,200000,再对个体进行编码。3.随机种群的产生任务要求在 20001个个体中随机产生50 个个体作为初始种群,进行遗传算法的各个求解过程, 运用 matlab工具中的 rand函数,在 0,1之间产生符合随机分布的 50 个个体,进行数学运算和精度处理后转换到-10,10区间。4.随机交叉、变异个体的产生在进行交
5、叉、 变异前将初始种群中的个体进行随机排序,交叉、变异时按从前到后的顺序对要求交叉、 变异数目的个数的个体进行处理, 等效随机选择过程。5.随机交叉、变异基因位的产生分别产生长度为 36(将两个变量串接后的基因位串数)的由若干0 和 1 组成的数组,定义 1为进行交叉或变异, 0 不进行操作,0 和 1 的个数由交叉位 (18位)数和变异位数( 4 位)确定,每次进行4.随机交叉、变异前将该数组随机排序,4.随机交叉、变异时对每一位进行判断。6. 选择复制处理因为在定义域范围内, 函数值有正有负, 用常规的轮盘发进行复制个体的选择存在复制个体数为负的问题,所以进行选择时,先将适应值按从大到小排
6、序,复制时优先复制适应值大的个体数,对适应值进行四舍五入决定复制个体数,适应值为负的转换为正后再进行复制,这样即使复制负值个体, 其在种群中的比重也很小,不会影响整体的进化。因为有负值的存在,虽然适应值加和为50,但是如上进行处理后可能会产生负值个体总数超过50 的情况,为了限定种群数,进行复制循环判断,当已经复制的个体数为50时停止复制。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 27 页 - - - - - - - - - 第 3 页三、求解步骤1.在自变量选取,
7、在x,y 的定义域 -10,10内随机选取 50 组数据,精确到0.0001(为了提高精度,运算过程中课先精确到0.00001) 。2.为方便在 MATLAB 中对其进行操作,将其转换到0,200000。3.交换将种群顺序打乱,并两两分为为一组,如(x1,y1)和( x2,y2)为一组,分别选择前 Nc/2=10,14,18,22 组作为交换个体, 等效为随机选择个体进行交换。MATLAB中 x,y 均由 64 位二进制表示,由于217200000218,故在进行交换时只针对数据的后 18 位操作,将 x,y 看成一组,则每组交换的位数为 (18+18)/2=18。选取一个数组 Nc,规定其由
8、 18个 1 和 18 个 0 组成,将其随机排序。 Nc 的前 18位针对 x,后 18 位针对 y,若 Nc(k)=1,则交换相应位上的数,否则不交换。对于每两组( x,y)来说, Nc 是不同的,交换后,数据可能超出0,200000的范围,此时重新生成Nc,重新交换,直到交换后的4 个数全部在定义域范围内为止。4.变异在 50 组数据中任意选取Nm(Nm=1,5,10,15)组数据,对其进行变异,随即变异个体的产生和随机交叉个体的产生相通,编译前对种群数组随机排序,进行等效。变异的位数为4(x,y 中变异位数和为 4) ,变异所在位置随机,由变异位置选择数组Nm 确定,具体方法同交叉。
9、随机变异个体的产生, 若变异后的数据( x或 y)超出范围,重新变异,直到满足条件为止;5.选择复制主题思想上采用轮盘选择法,但是因为该选择法存在不能处理负数的缺陷,进行一定的改进。首先将x,y 的值还原到 -10,10,精确到 0.0001,并进行适应值计算,得到适应值数组S,和复制个体数数组N,将 N 取整后得到 A,将 S和 A 按降序排序,同时x,y 按照 A 排序的变化而变化,因为A 和 S 两数组间只差一个正系数,所以,排序后变化相同。然后进行复制,复制时按照A 中的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
10、师精心整理 - - - - - - - 第 4 页,共 27 页 - - - - - - - - - 第 4 页复制个体数进行复制,若复制个体数为负,取负后再复制,当新复制个体数为50 时,停止复制,得到有50 个个体的新种群。6.结果记录交叉、变异、选择复制后, S数组中第一个元素即为本次进化后所得到的最大值,将其存入数组MAX ,x 和 y 数组中的第一个元素即为最大函数值对应的自变量值,分别将其存入Mx 和 My 中。 (7)重复步骤 3-6N 次,得出进化曲线。7.重复 36步骤 100 次,即繁殖 100 代,并记录每次繁殖后的函数最大值和相应的自变量值。8.绘制曲线四、求解结果Nc
11、 为交换的个数;Nm 为变异的个数;种群数为 50,交换位数为个体为数的一半即18 位,变异位数为 4;1sinsin(,)*xyfx yxy22222(5)(5)(5)(5)(,)0.9exp()0.99996exp()1020 xyxyfx y计算结果如下:20 28 36 44 1 0.9982,0.3174,0.1835 0.9867,-1.2139,-1.2133 0.9952,-0.5222,-0.1018 0.9997,0.3352,0.3443 5 0.9958,0.2773,0.7782 0.9991,1.4163,1.0527 0.9911,-0.6546,0.0781 0
12、.9993,0.5258,1.2722 10 1.0000,0.2510,0.2198 0.9995,0.0279,0.0453 0.9949,0.2657,-0.2854 0.9952,0.1559,0.1234 15 0.9975,-0.0031,1.5015 0.9984,0.0994,-0.0972 0.9998,0.1746,2.0304 0.9999,-0.1220,0.1313 表一 f1 繁殖 100 代以后最大函数值及相应自变量值NcMAX,M x,MyNm名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
13、心整理 - - - - - - - 第 5 页,共 27 页 - - - - - - - - - 第 5 页20 28 36 44 1 0.9913,8.9709,3.8634 0.9992,7.5462,5.3582 0.9847,4.5322,6.3959 0.9931,4.5978,3.1841 5 0.9981,4.7422,6.5384 0.9998,6.8925,3.5605 0.9925,8.4362,4.8209 0.9963,3.7695,3.5869 10 0.9986,6.4113,7.4142 0.9915,4.9652,7.0891 0.9975,5.4070,5.9
14、000 0.9873,7.8150,6.3751 15 0.9919,4.2709,5.2285 0.9950,4.5215,4.5178 0.9959,7.3322,4.7210 0.9889,4.8385,7.5340 表二 f2 繁殖 100 代以后最大函数值及相应自变量值五、结果分析1.函数最大值曲线分析由附录 2 各曲线可以看出, 随着繁殖的进行, 函数最大值逐渐优化, 体现出了种群整体的进化, 但是当函数取到最大值时不能保持在最大状态,其原因在于:复制过程并不是全部复制最优个体,是在后续繁殖过程中变异仍在进行,其结果有可能使函数值减小;同时,函数值逼近最大值的的速度有快又慢,其原因
15、为:在复制过程中,有些最优个体复制数已经超过种群数,新种群中只有单一个体,交叉过程不能优化种群,种群的进化只能依赖变异,而变异的概率远低于交叉,所以函数收敛较慢。2.自变量曲线分析由附录 2 各曲线可以看出, 自变量在繁殖过程中波动很大,难以稳定。 其原因在于:对于函数f1 为周期函数,在给定定义域内函数的最大值有若干个,且交叉、变异过程自变量的变化是离散的,所以难以稳定; 对于函数 f2,分析可以看出其是偶函数, 在定义域内函数最大值有两个,由于交叉、 变异过程自变量的离散化变化,所以难以稳定。3.算法改进每次繁殖过程完成后对最优个体进行保留,可以提高算法的精度; 选择复制时应用其他算法,避
16、免种群单一化的产生,可以提高收敛速度。NcMAX,M x,MyNm名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 27 页 - - - - - - - - - 第 6 页六、附录1.程序流程图结 束将 x2,y2顺 序 打 乱 , 并 赋值 给 中 间 变 量 x3,y3将 Nc 顺 序 打 乱k=1Nc(k)=1?temp1=bitget(x2(2*j-1),k);temp2=bitget(x2(2*j),k);x3(2*j-1)=bitset(x2(2*j-1),k,
17、temp2);x3(2*j)=bitset(x2(2*j),k,temp1);YESk=k+1k=19?NOYESNc(k)=1?NOtemp1=bitget(y2(2*j-1),k-18);temp2=bitget(y2(2*j),k-18);y3(2*j-1)=bitset(y2(2*j-1),k-18,temp2);y3(2*j)=bitset(y2(2*j),k-18,temp1);YESk=k+1k=37?NOw=0YES交 叉 后 在 定 义域 内 ?w=1NONOw=1?j=j+1NOj= 交 换 个 数 ?YESNOYES将 Nm 顺 序 打 乱p=1Nm(p)=1?temp3
18、=bitget(x2(k),p);temp3=temp3;x3(k)=bitset(x3(k),p,temp3);YESp=p+1p=19?NONONm(p)=1?YEStemp3=bitget(y2(k),p-18);temp3=temp3;y3(k)=bitset(y2(k),p-18,temp3);p=p+1YESNOp=37?w=0NOYES变 异 后 在 定 义 域 内 ?w=1NOw=1 ?k=k+1NOYESk= 变 异 个 体 数 ?交 叉变 异遗 传 算 法 流 程 图j= 1,w = 1将 x2,y2顺 序 打 乱 , 并 赋值 给 中 间 变 量 x3,y3k= 1,w
19、=1YESYESNOx2=x3,y2=y3x2=x3,y2=y3YESx1=x2/10000-10; y1=y2/10000-10;求 解 适 应 值 数 组 S和复 制 个 体 数 目 数 组 A将 S和 A按 降 序 排序 , 同 时 x2,y2 元 素按 A 的 变 化 排 序M A X =函 数 最 大 值M x 和 M y 分 别 存 放对 应 自 变 量开 始定 义f1(x,y),f2(x,y)在 -10,10中 随 机生 成 数 组 x150,y150 x2=floor(double(x1+10)*10000)y2=floor(double(y1+10)*10000)繁 殖 进
20、化 过 程 需 要数 组 N c,N m等 初 始化G =1p= 1,k=1A (k)50?x3(p)=x2 (k ); y3(p)=y2 (k ); p= p+ 1;i= 复 制 数 ?i= i+ 1k= k+ 1NONOYESk= 种 群 数 ?x2= x3,y2=y3NOYESYESG =G +1G =100?G = 1:100plot(G,M A X)plot(G,M x)plot(G,M y )YES选 择 复 制NO主 程 序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
21、 7 页,共 27 页 - - - - - - - - - 第 7 页01020304050607080901000.70.80.91繁殖代数Nc=20 ,Nm=1最大值020406080100-2-1012繁殖代数x取值020406080100-1.5-1-0.500.511.5繁殖代数y取值01020304050607080901000.70.80.91繁殖代数Nc=20 ,Nm=5最大值020406080100-3-2-10123繁殖代数x取值020406080100-2-1012繁殖代数y取值2.绘制曲线(1)1sinsin(,)*xyfx yxy名师资料总结 - - -精品资料欢迎下
22、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 27 页 - - - - - - - - - 第 8 页01020304050607080901000.80.850.90.951繁殖代数Nc=20,Nm=10最大值020406080100-3-2-10123繁殖代数x取值020406080100-2-1012繁殖代数y取值01020304050607080901000.40.60.81繁殖代数Nc=20 ,Nm=15最大值020406080100-4-2024x取值020406080100-4-2024繁殖代
23、数y取值繁殖代数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 27 页 - - - - - - - - - 第 9 页01020304050607080901000.70.80.91最大值繁殖代数Nc=28,Nm=1020406080100-2-1012繁殖代数x取值020406080100-4-2024繁殖代数y取值01020304050607080901000.70.80.91繁殖代数Nc=28,Nm=5最大值020406080100-2-1012繁殖代数x取值02
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年遗传算法实例 2022 遗传 算法 实例
限制150内