遗传算法学习心得体会

上传人:夏** 文档编号:564737734 上传时间:2023-04-19 格式:DOCX 页数:12 大小:33.81KB
返回 下载 相关 举报
遗传算法学习心得体会_第1页
第1页 / 共12页
遗传算法学习心得体会_第2页
第2页 / 共12页
遗传算法学习心得体会_第3页
第3页 / 共12页
遗传算法学习心得体会_第4页
第4页 / 共12页
遗传算法学习心得体会_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《遗传算法学习心得体会》由会员分享,可在线阅读,更多相关《遗传算法学习心得体会(12页珍藏版)》请在金锄头文库上搜索。

1、遗传算法 概念 遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了达 尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,它既能在 搜索中自动获取和积累有关空间知识,并自适应地控制搜索过程以求得最优解遗传算法操作 使用适者生存的原则,在潜在的解决方案种群中逐次产生一个近视最优方案。在遗传算法的 每一代中,根据个体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选 择,产生一个新的近视解。这个过程导致种群中个体的进化,得到的新个体比原个体更适应 环境,就像自然界中的改造一样。应用 遗传算法在人工智能的众多领域具有广泛应用。例如,机器学习、聚

2、类、控制(如煤气 管道控制)、规划(如生产任务规划)、设计(如通信网络设计、布局设计)、调度(如作业车 间调度、机器调度、运输问题)、配置(机器配置、分配问题)、组合优化(如tsp、背包问 题)、函数的最大值以及图像处理和信号处理等等。遗传算法多用应与复杂函数的优化问题中。原理 遗传算法模拟了自然选择和遗传中发生的复制、交叉、和变异等现象,从任一初始种群 出发,通过随机选择、交叉、变异操作,产生一群更适合环境的个体,使群体进行到搜索空 间中越来越好的区域,这样一代一代地不断繁衍进化,最后收敛到一群最适合环境的个体求 得问题的最优解。算法流程1.编码:解空间中的解数据X,作为作为遗传算法的表现型

3、形式。从表现 型到基本型的映射称为编码。遗传算法在进行搜索之前先将解空间的解数据表示成遗传 空间的基本型串结构数据,这些串结构数据的不同的组合就构成了不同的点。2. 初始种群的形成:随机产生n个初始串数据,每个串数据称为一个个体,n个串数据构成了一个群体。遗传算法以这n个串结构作为初始点开始迭代。设置进化 代数计数器t 0;设置最大进行代数t;随机生成m个个体作为初始群体p(0)。3. 适应度检测:适应度就是借鉴生物个体对环境的适应程度,适应度函数就是对问题中的个体对象所设计的表征其优劣的一种测度。根据具体问题计算p(t)的适 应度。4. 选择:将选择算子作用于群体。选择的目的是把优化的个体直

4、接遗传到 下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。5. 交叉:将交叉算子作用于群体。所谓交叉是指把两个父代个体的部分结 构加以替换重组而生成新个体的操作。遗传算法中起核心作用的就是交叉算子。6. 变异:将变异算子作用于群体。即是对群体中的个体串的某些基因座上 的基因值作变动。群体p(t)经过选择、交叉、变异运算之后得到下一代群体p(t+1)。7. 终止条件判断:若t< ;= t,则t=t+1,转到第3步,否则以进化过程中所得 到的具有最大适应度个体作为最优解输出,终止计算。遗传算法流程图如下图所示:遗传算法 下几种:适应度比例方法、随

5、机遍历抽样法、局部选择法。 其中轮盘赌选择法是最简单也是最常用的选择方法。在该方法中,各个个体的选择概率 和其适应度值成比例。设群体大小为n,其中个体i的适应度为,则i被选择的概率,为遗 传算法2 、交叉:在自然界生物进化过程中起核心作用的是生物遗传基因的重组( 加上变异) 。同 样,遗传算法中起核心作用的是遗传操作的交叉算子。所谓交叉是指把两个父代个体的部分 结构加以替换重组而生成新个体的操作。通过交叉,遗传算法的搜索能力得以飞跃提高。交叉算子根据交叉率将种群中的两个个体随机地交换某些基因,能够产生新的基因组合, 期望将有益基因组合在一起。根据编码表示方法的不同,可以有以下的算法:b)二进制

6、交叉(binary valued crossover)1) 单点交叉(single-poi nt crossover)2) 多点交叉(multiple-point crossover)3) 均匀交叉(uni form crossover)4) 洗牌交叉(shuffle crossover)5) 缩小代理交叉(crossover with reduced surroga te)。3、变异变异算子的基本内容是对群体中的个体串的某些基因座上的基因值作变动。依据个体编码表示方法的不同,可以有以下的算法:a) 实值变异b) 二进制变异。一般来说,变异算子操作的基本步骤如下:a) 对群中所有个体以事先设定

7、的编译概率判断是否进行变异b) 对进行变异的个体随机选择变异位进行变异。例:简单一元函数优化求下面函数的最大值:f(x)=xsin(10*pi*x)+2.0,-1<=x<=2;程序:figure(1);fplot(variable.*sin(10*pi*variable)+2.0,-1,2);%画出函数曲线%定义遗传算法参数nind=40;%个体数目(number of individuals)maxgen=25;%最大遗传代数(maximum number of generations) preci=20;%变量的二进制位数(precision of variables)ggap

8、=0.9;%代沟(genera tion gap)trace=zeros(2, maxgen);%寻优结果的初始值fieldd二20;T;2;1;0;1;1;% 区域描述器(build field descrip tor)chrom=crtbp(nind, preci);%初始种群gen=0;%代计数器variable=bs2rv(chrom, fieldd);% 计 算 初 始 种 群 的 十 进 制 转 换objv=variable.*sin(10*pi*variable)+2.0;%计算目标函数值while gen<maxgenfitnv 二ranking(-objv);%分配适应

9、度值(assign fitn ess values)selch=select(sus, chrom, fitnv, ggap);%选择selch=mut(selch);%变异variable=bs2rv(selch, fieldd);%子代个体的十进制转换objvsel=variable.*sin(10*pi*variable)+2.0;%计算子代的目标函数值chrom objv=reins(chrom, selch, 1, 1, objv, objvsel); %重插入子代的新种群 variable=bs2rv(chrom, fieldd);gen=gen+1;%代计数器增加%输出最优解及其

10、序号,并在目标函数图像中标出,y为最优解,i为种群的序号y, i=max(objv);hold on;plot(variable(i), y, bo);trace(1, gen)=max(objv); % 遗传算法性能跟踪 trace(2,gen)=sum(objv)/length(objv);endvariable二bs2rv(chrom, fieldd);%最优个体的十进制转hold on, grid;plot(variable,objv,b*);figure(2);plot(trace(1,:);hold on;plot(trace(2,:),-.);gridlegend(解的变化,种群

11、均值的变化)篇二:遗传算法学习心得基本概念遗传算法(gene tic algori thms, ga)是一类借鉴生物界自然选择和自然遗传机制的随机 化搜索算法。它模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都 保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异) 对这些个体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。ga 的组成:(1)编码(产生初始种群)(2)适应度函数(3)遗传算子(选择、交叉、变异)(4)运行参数编码基因在一定能够意义上包含了它所代表的问题的解。基因的编码方式有很多,这也取决 于要解决的

12、问题本身。常见的编码方式有:(1)二进制编码,基因用0或1表示(常用于解决01背包问题)如:基因a:00100011010 (代表一个个体的染色体)(2)互换编码(用于解决排序问题,如旅行商问题和调度问题)如旅行商问题中,一串基因编码用来表示遍历的城市顺序,如: 234517986,表示九个城市中,先经过城市2,再经过城市 3,依此类推。(3)树形编码(用于遗传规划中的演化编程或者表示)如, 问题:给定了很多组输入和输出。请你为这些输入输出选择一个函数,使得这个函数把每个输入尽可能近地映射为输出。编码方法:基因就是树形结构中的一些函数。(4)值编码 (二进制编码不好用时,解决复杂的数值问题)在

13、值编码中,每个基因就是一串取值。这些取值可以是与问题有关任何值:整数,实数, 字符或者其他一些更复杂的东西。适应度函数遗传算法对一个个体(解)的好坏用适应度函数值来评价,适应度函数值越大,解的质 量越好。适应度函数是遗传算法进化过程的驱动力,也是进行自然选择的唯一标准,它的设 计应结合求解问题本身的要求而定。如 tsp 问题,遍历各城市路径之和越小越好,这样可以用可能的最大路径长度减去实际 经过的路径长度,作为该问题的适应度函数。遗传算子选择 遗传算法使用选择运算来实现对群体中的个体进行优胜劣汰操作:适应度高的个体被遗 传到下一代群体中的概率大;适应度低的个体,被遗传到下一代群体中的概率小。选

14、择操作 的任务就是按某种方法从父代群体中选取一些个体,遗传到下一代群体。sga (基本遗传算法)中采用轮盘赌选择方法。轮盘赌选择又称比例选择算子,基本思想:各个个体被选中的概率与其适应度函数值大 小成正比。设群体大小为n,个体i的适应度为fi,则个体i被选中遗传到下一代群体的 概率为:遗传算子交叉 所谓交叉运算,是指对两个相互配对的染色体依据交叉概率按某种方式相互交换其部分 基因,从而形成两个新的个体。交叉运算在ga中起关键作用,是产生新个体的主要方法。1. 单交叉点法 (用于二进制编码) 选择一个交叉点,子代在交叉点前面的基因从一个父代基因那里得到,后面的部分从另外一个父代基因那里得到。如:

15、交叉前:00000|0111000000001000011100|00000111111000101交叉后:00000|0000011111100010111100|011100000000100002. 双交叉点法 (用于二进制编码) 选择两个交叉点,子代基因在两个交叉点间部分来自一个父代基因,其余部分来自于另外一个父代基因.如:交叉前:01 |0010| 1111 |0111| 01交叉后:11 |0010| 0101 |0111| 113. 基于“ 与/或 ”交叉法 (用于二进制编码)对父代按位与”逻辑运算产生一子代a;按位”或”逻辑运算产生另一子代b。该交叉策 略在解背包问题中效果较好 .如:交叉前:0100101111011101交叉后:01001001110111114. 单交叉点法 (用于互换编码)选择一个交叉点,子代的从初始位置出发的部分从一个基因复制,然后在另一个基因中 扫描,如果某个位点在子代中没有,就把它添加进去。如:交叉前:87213 | 0954698356 | 71420交叉后:87213 | 9564098356 | 721045. 部分匹配交叉(pmx

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

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号