遗传算法学习心得体会Word文件下载.docx
- 文档编号:16566492
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:26
- 大小:50.38KB
遗传算法学习心得体会Word文件下载.docx
《遗传算法学习心得体会Word文件下载.docx》由会员分享,可在线阅读,更多相关《遗传算法学习心得体会Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
轮盘赌选择又称比例选择算子,基本思想:
各个个体被选中的概率与其适应度函数值大小成正比。
设群体大小为n,个体i的适应度为Fi,则个体i被选中遗传到下一代群体的概率为:
遗传算子——交叉
所谓交叉运算,是指对两个相互配对的染色体依据交叉概率按某种方式相互交换其部分基因,从而形成两个新的个体。
交叉运算在GA中起关键作用,是产生新个体的主要方法。
1.单交叉点法(用于二进制编码)
选择一个交叉点,子代在交叉点前面的基因从一个父代
基因那里得到,后面的部分从另外一个父代基因那里得到。
如:
交叉前:
00000|01110000000010000
11100|00000111111000101
交叉后:
00000|00000111111000101
11100|01110000000010000
2.双交叉点法(用于二进制编码)选择两个交叉点,子代基因在两个交叉点间部分来自一个父代基因,其余部分来自于另外一个父代基因.
01|0010|11
11|0111|01
11|0010|01
01|0111|11
3.基于“与/或”交叉法(用于二进制编码)
对父代按位"
与”逻辑运算产生一子代A;
按位”或”逻
辑运算产生另一子代B。
该交叉策略在解背包问题中效果较好.
01001011
11011101
01001001
11011111
4.单交叉点法(用于互换编码)选择一个交叉点,子代的从初始位置出发的部分从一个基因复制,然后在另一个基因中扫描,如果某个位点在子代中没有,就把它添加进去。
87213|09546
98356|71420
87213|95640
98356|72104
5.部分匹配交叉(PMX法(用于互换编码)
先随机产生两个交叉点,定义这两点间的区域为匹配区域,并用交换两个父代的匹配区域。
父代A:
872|130|9546
父代B:
983|567|1420变为:
TEMPA:
872|567|9546
TEMPB:
983|130|1420
对于TEMPA、TEMPB中匹配区域以外出现的数码重复,要依据匹配区域内的位置逐一进行替换。
匹配关系:
153
670子代A:
802|567|9143
子代B:
986|130|5427
6.顺序交叉法(OX)(用于互换编码)
从父代A随机选一个编码子串,放到子代A的对应位置;
子代A空余的位置从父代B中按B的顺序选取(与己有编码不重复)。
同理可得子代B。
父代A:
872|139|0546
父代B:
983|567|1420
子代A:
856|139|7420
子代B:
821|567|3904
7.循环交叉(CX法(用于互换编码)
CX同OX交叉都是从一个亲代中取一些城市,而其它城市来自另外一个亲代,但是二者不同之处在于:
OX中来自第一个亲代的编码子串是随机产生的,而CX却不是,它是根
据两个双亲相应位置的编码而确定的。
父代A:
123456789
|||||
546923781
可得循环基因:
1->
5->
2->
4->
9->
1
用循环的基因构成子代A,顺序与父代A—样
12459
用父代B剩余的基因填满子代A:
子代B的编码同理。
(循环基因5->
1->
5)
遗传算子——变异变异是指依据变异概率将个体编码串中的某些基因值用其它基因值来替换,从而形成一个新的个体。
GA中的变异运算是产生新个体的辅助方法,它决定了GA的局部搜索能
力,同时保持种群的多样性。
交叉运算和变异运算的相互配合,共同完成对搜索空间的全局搜索和局部搜索。
注:
变异概率Pm不能太小,这样降低全局搜索能力;
也不能太大,Pm>
,这时GA退化为随机搜索。
篇二:
遗传算法
概念
遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了达
尔文的进化论和孟德尔的遗传学说。
其本质是一种高效、并行、全局搜索的方法,它既能在
搜索中自动获取和积累有关空间知识,并自适应地控制搜索过程以求得最优解遗传算法操作
使用适者生存的原则,在潜在的解决方案种群中逐次产生一个近视最优方案。
在遗传算法的
每一代中,根据个体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选
择,产生一个新的近视解。
这个过程导致种群中个体的
进化,得到的新个体比原个体更适应
环境,就像自然界中的改造一样。
应用遗传算法在人工智能的众多领域具有广泛应用。
例如,机器学习、聚类、控制(如煤气
管道控制)、规划(如生产任务规划)、设计(如通信络
设计、布局设计)、调度(如作业车间调度、机器调度、运输问题)、配置(机器配置、分配问题)、组合优化(如tsp、背包问题)、函数的最大值以及图像处理和信号处理等等。
遗
传算法多用应与复杂函数的优化问题中。
原理遗传算法模拟了自然选择和遗传中发生的复制、交叉、和变异等现象,从任一初始种群
出发,通过随机选择、交叉、变异操作,产生一群更适
合环境的个体,使群体进行到搜索空间中越来越好的区域,这样一代一代地不断繁衍进化,
最后收敛到一群最适合环境的个体求
得问题的最优解。
算法流程1.编码:
解空间中的解数据x,作为作为遗
传算法的表现型形式。
从表现型到基本型的映射称为编码。
遗传算法在进行搜索之前先将解空间的解数据表示成遗传空间的基本型串结构数据,这些串结构数据的不同的组
合就构成了不同的点
2.初始种群的形成:
随机产生n个初始串数据,每个串数据称为一个个体,n个串数据构成了一个群体。
遗传算法以这n个串结构作为初始点开始迭代。
设置进化
代数计数器to;
设置最大进行代数t;
随机生成m个个
体作为初始群体p(0)。
3.适应度检测:
适应度就是借鉴生物个体对环境的适应程度,适应度函数就是对问题中的个体对象所设计的表征其优劣的一种测度。
根据具体问题计算p(t)的适
应度。
4.选择:
将选择算子作用于群体。
选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。
选择操作是建立在群体中个体的
适应度评估基础上的。
5.交叉:
将交叉算子作用于群体。
所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。
遗传算法中起核心作用的就是交叉算子。
6.变异:
将变异算子作用于群体。
即是对群体中的个体串的某些基因座上的基因值作变动。
群体p(t)经过选择、交叉、变异运算之后得到下一代群体p(t+1)。
7.终止条件判断:
若t下几种:
适应度比例方法、
随机遍历抽样法、局部选择法。
其中轮盘赌选择法是最简单
也是最常用的选择方法。
在该方法中,各个个体的选择概率
和其适应度值成比例。
设群体大小为n,其中个体i的
适应度为,则i被选择的概率,为遗
传算法
2、交叉:
在自然界生物进化过程中起核心作用的是生物遗传基因的重组(加上变异)。
同
样,遗传算法中起核心作用的是遗传操作的交叉算子。
所谓交叉是指把两个父代个体的部分
结构加以替换重组而生成新个体的操作。
通过交叉,遗传算法的搜索能力得以飞跃提高。
交叉算子根据交叉率将种群中的两个个体随机地交换某些基因,能够产生新的基因组合,
期望将有益基因组合在一起。
根据编码表示方法的不同,可以有以下的算法:
b)二进制交叉(binaryvaluedcrossover)
1)单点交叉(single-pointcrossover)
2)多点交叉(multiple-pointcrossover)
3)均匀交叉(uniformcrossover)
4)洗牌交叉(shufflecrossover)
5)缩小代理交叉(crossoverwithreducedsurrogate)。
3、变异
变异算子的基本内容是对群体中的个体串的某些基因
座上的基因值作变动。
依据个体编
码表示方法的不同,可以有以下的算法:
a)实值变异b)二进制变异。
一般来说,变异算子操作的基本步骤如下:
a)对群中所有个体以事先设定的编译概率判断是否进行变异b)对进行变异的个体随机选择变异位进行变异。
例:
简单一元函数优化求下面函数的最大值:
f(x)=xsin(10*pi*x)+,-1figure
(1);
fplot(variable.*sin(10*pi*variable)+,[-1,2]);
%画出函数曲线%定义遗传算法参数
nind=40;
%个体数目(numberofindividuals)
maxgen=25;
%最大遗传代数(maximumnumberofgenerations)preci=20;
%
变量的二进制位数(precisionofvariables)ggap=;
%代沟(generationgap)trace=zeros(2,maxgen);
%寻优结
果的初始值fieldd=[20;
-1;
2;
1;
0;
1];
%区域描述器
(buildfielddescriptor)chrom=crtbp(nind,preci);
%初始种群gen=0;
%代计数器variable=bs2rv(chrom,fieldd);
%计算初始种群的十进制转换
objv=variable.*sin(10*pi*variable)+;
%计算目标函
数值whilegenfitnv=ranking(-objv);
%分配适应度
值(assignfitnessvalues)selch=select(sus,chrom,fitnv,ggap);
%选择selch=mut(selch);
%变异
variable=bs2rv(selch,fieldd);
%子代个体的十进制转换objvsel=variable.*sin(10*pi*variable)+;
%计算子代的目标函数值
[chromobjv]=reins(chrom,selch,1,1,objv,objvsel);
%重插入子代的新种群variable=bs2rv(chrom,fieldd);
gen=gen+1;
%代计数器增加%输出最优解及其序号,并在目标函数图像中标出,y为最优解,i为种群的序号
[y,i]=max(objv);
holdon;
plot(variable(i),y,bo);
trace(1,gen)=max(objv);
%遗传算法性能跟踪trace(2,
gen)=sum(objv)/length(objv);
end
variable=bs2rv(chrom,fieldd);
%最优个体的十进制
转holdon,grid;
plot(variable,objv,b*);
figure
(2);
plot(trace(1,:
));
plot(trace(2,:
),-.);
grid
legend(解的变化,种群均值的变化)篇二:
遗传算法学习心得基本概念
是一类借鉴生物界
遗传算法(geneticalgorithms,ga)
自然选择和自然遗传机制的随机
化搜索算法。
它模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都
保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)
对这些个体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。
ga的组成:
编码
基因在一定能够意义上包含了它所代表的问题的解。
基因的编码方式有很多,这也取决
于要解决的问题本身。
常见的编码方式有:
基因a:
00100011010(代表一个个体的染色体)
(2)互换编码(用于解决排序问题,如旅行商问题和调度问题)如旅行商问题中,一串基因编码用来表示遍历的
城市顺序,如:
234517986,表示九个城
市中,先经过城市2,再经过城市3,依此类推。
(3)树形编码(用于遗传规划中的演化编程或者表示)如,问题:
请你为这些输入输出选择一个函数,使得这个函数
把每个输入尽可能近地映射为输出。
基因就是树形结构中的一些函数。
(4)值编码(二进制编码不好用时,解决复杂的数值问题)在值编码中,每个基因就是一串取值。
这些取值可以是与问题有关任何值:
整数,实数,
字符或者其他一些更复杂的东西。
适应度函数遗传算法对一个个体(解)的好坏用适应度函数值来评价,适应度函数值越大,解的质
量越好。
适应度函数是遗传算法进化过程的驱动力,也是进行自然选择的唯一标准,它的设
计应结合求解问题本身的要求而定。
如tsp问题,遍历各城市路径之和越小越好,这样可以用可能的最大路径长度减去实际
经过的路径长度,作为该问题的适应度函数。
遗传算子——选择
适应度高的个体被遗
传到下一代群体中的概率大;
适应度低的个体,被遗传到下一代群体中的概率小。
选择操作
的任务就是按某种方法从父代群体中选取一些个体,遗传到下一代群体。
sga(基本遗传算法)中采用轮盘赌选择方法。
轮盘赌选择又称比例选择算子,基本思想:
各个个体被选中的概率与其适应度函数值大
小成正比。
设群体大小为n,个体i的适应度为fi则个体i被选中遗传到下一代群体的
概率为:
遗传算子——交叉所谓交叉运算,是指对两个相互配对的染色体依据交叉概率按某种方式相互交换其部分
基因,从而形成两个新的个体。
交叉运算在ga中起关键作用,是产生新个体的主要方法。
1.单交叉点法(用于二进制编码)选择一个交叉点,子代在交叉点前面的基因从一个父代基因那里得到,后面的部分从另外
一个父代基因那里得到。
11100|00000111111000101交叉后:
00000|0000011111100010111100|01110000000010000
2.双交叉点法(用于二进制编码)选择两个交叉点,子代基因在两个交叉点间部分来自一个父代基因,其余部分来自于另外
一个父代基因.
3.基于“与/或”交叉法(用于二进制编码)对父代按位与”逻辑运算产生一子代a;
按位”或”逻辑运算产生另一子代b。
该交叉策
略在解背包问题中效果较好.如:
11011101交叉后:
4.单交叉点法(用于互换编码)选择一个交叉点,子代的从初始位置出发的部分从一个基因复制,然后在另一个基因中
扫描,如果某个位点在子代中没有,就把它添加进去
5.部分匹配交叉(pmX法(用于互换编码)先随机产生两个交叉点,定义这两点间的区域为匹配区域,并用交换两个父代的匹配区
域。
父代a:
父代b:
983|567|1420变为:
tempa:
872|567
|9546tempb:
983|130|1420对于tempa、tempb中匹配区域以外出现的数码重复,要依据匹配区域内的位置逐
进行替换。
153670子代a:
802
|567|9143
子代b:
6•顺序交叉法(ox)(用于互换编码)从父代a随机选一个编码子串,放到子代a的对应位置;
子代a空余的位置从父代b中
bo父代a:
872|139|0546父代b:
983|567|1420交叉后:
子代a:
856|139|7420子代b:
7.循环交叉(cx)法(用于互换编码)cx同ox交叉都是从一个亲代中取一些城市,而其它城市来自另外一个亲代,但是二者
不同之处在于:
ox中来自第一个亲代的编码子串是随机产生的,而cx却不是,它是根据两
个双亲相应位置的编码而确定的。
父代a:
123456
789|||||
546923781可得循环基因:
1用循环的基因构成子代a,顺序与父代
a—样12459
用父代b剩余的基因填满子代a:
126453789
子代b的编码同理。
5)遗传算子——变异
变异是指依据变异概率将个体编码串中的某些基因值用其它基因值来替换,从而形成一
个新的个体。
ga中的变异运算是产生新个体的辅助方法,它决定了ga的局部搜索能力,同
时保持种群的多样性。
交叉运算和变异运算的相互配合,共同完成对搜索空间的全局搜索和
局部搜索。
变异概率pm不能太小,这样降低全局搜索能力;
也不能太大,pm>
,这时
篇三:
遗传算法总结
遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了达尔文的进化论和孟德尔的遗传学说。
其本质是一种高效、并行、全局搜索的方法,它既能在搜索中自动获取和积累有关空间知识,并自适应地控制搜索过程以求得最优解遗传算法操作使用适者生存的原则,在潜在的解决方案种群中逐次产生一个近视最优方案。
在遗传算法的每一代中,根据个体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选择,产生一个新的近视解。
这个过程导致种群中个体的进化,得到的新个体比原个体更适应环境,就像自然界中的改造一样。
例如,机器学习、聚类、控制(如煤气管道控制)、规划(如生产任务规划)、设计(如通信络设计、布局设计)、调度(如作业车间调度、机器调度、运输问题)、配置(机器配置、分配问题)、组合优化(如TSP、背包问题)、函数的最大值以及图像处理和信号处理等等。
遗传算法多用应与复杂函数的优化问题中。
原理
遗传算法模拟了自然选择和遗传中发生的复制、交叉、和变异等现象,从任一初始种群出发,通过随机选择、交叉、变异操作,产生一群更适合环境的个体,使群体进行到搜索空间中越来越好的区域,这样一代一代地不断繁衍进化,最后收敛到一群最适合环境的个体求得问题的最优解。
从表现
型到基本型的映射称为编码。
遗传算法在进行搜索之前先将解空间的解数据表示成遗传空间的基本型串结构数据,这些串结构数据的不同的组合就构成了不同的点。
随机产生N个初始串数据,每个串数据称为一个个体,
N个串数据构成了一个群体。
遗传算法以这N个串结构
作为初始点开始迭代。
设置进化代数计数器t0;
设置最大进行代数T;
随机生成M个个体作为初始群体P(0)。
适应度就是借鉴生物个体对环境的适应程度,适应度函数
就是对问题中的个体对象所设计的表征其优劣的一种测度。
根据具体问题计算P(t)的适应度。
选择的目的是把优
化的个体直接遗传到
下一代或通过配对交叉产生新的个体再遗传到下一代。
选择操作是建立在群体中个体的适应度评估基础上的。
所谓交叉是指把两个父代个体的部分结
构加以替换重组而生成新个体的操作。
遗传算法中起核心作用的就是交叉算子。
即是对群体中的个体串的某些基因座上
的基因值作变动。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遗传 算法 学习心得 体会