计算智能—进化计算
进化计算包括:
遗传算法(geneticalgorithms,GA)
进化策略(evolutionstrategies)
进化编程(evolutionaryprogramming)
遗传编程(geneticprogramming)
进化计算的基本原理
• 随机自适应的全局搜索算法
– (Holland霍兰德)
• 自然界的“自然选择”和“优胜劣汰”
– (Darwin达尔文)
• 生物遗传学说(交叉+变异)
– ( GregorJohann Mendel格里果·约翰·孟德尔)
遗传算法(并行+合作)
遗传算法是模仿生物遗传学和自然选择机理,通过人工方式所构造的一类随机自适应全局优化搜索算法,是对生物进化过程进行的一种数学仿真,是进化计算的最重要的形式。
遗传算法为那些难以找到传统数学模型的难题指出了一个解决方法。
进化计算和遗传算法借鉴了生物科学中的某些知识,这也体现了人工智能这一交叉学科的特点。
1.霍兰德的遗传算法通常称为简单遗传算法(SGA)。
2.编码与解码
3.适应度函数
4.遗传操作
1、编码与译码
进化计算求解问题的第一步是对问题的可能解进行编码,目的是为了有效地执行遗传操作。
编码是一个从问题的解空间到编码空间的映射。
如许多应用问题结构很复杂,但可以化为简单的位串形式编码表示,变换为位串形式编码表示的过程叫编码;将问题结构而相反将位串形式编码表示变换为原问题结构的过程叫译码。
借用生物的术语,把位串形式的解的编码表示叫染色体或基因型(基因表达),或叫个体。
原问题结构即一个染色体解码后所对应的解称为表现型。
编码空间也称为基因型空间或搜索空间。
解空间也称为表现型空间。
进化算法不是直接作用在问题的解空间上,而是交替地作用在编码空间和解空间上。
在编码空间对个体进行遗传操作,在解空间对问题的解进行评估。
例如:数值型的参数编码可以用长度为L的二进制串表示。
如x取值是[1,64]之间的整数,可以用6位二进制编码表示。其对应关系:
种群规模越大,性能越高,效率越差
例:货郎担问题(Travelling Salesman Problem,简记为TSP):设有n个城市,城市i和城市j之间的距离为d(i,j) i, j=1,...,n.TSP问题是要找遍访每个域市恰好一次的一条回路,且其路径总长度为最短。
对TSP可以按一条回路城市的次序进行编码,比如码串134567829表示从城市1 开始,依次是城市3,4,5,6,7,8,2,9,最后回到城市1。一般情况是从城市w1开始,依次经过城市w2,……,wn,最后回到城市w1,我们就有如下编码表示: w1 w2 …… wn
由于是回路,记wn+1= w1。它其实是1,……,n的一个循环排列。要注意w1,w2 ,……,wn是互不相同的。
2.适应度函数—》评价总群中的个体谁最优秀
为了体现染色体的适应能力,引入了对问题中的每一个染色体都能进行度量的函数,叫适应度函数。通过适应度函数来决定染色体的优、劣程度,它体现了自然进化中的优胜劣汰原则。对优化问题,适应度函数就是目标函数。TSP的目标是路径总长度为最短,路径总长度的倒数就可以为TSP的适应度函数
其中wn+1= w1。适应度函数要有效反映每一个染色体与问题的最优解染色体之间的差距,一个染色体与问题的最优解染色体之间的差距小,则对应的适应度函数值之差就小,否则就大。适应度函数的取值大小与求解问题对象的意义有很大的关系。
原则1:越优秀的个体,适应度函数值越大
原则2:对于任一个体,适应度函数值大于0
对于有些问题不能直接用原始问题做适应度函数
3、遗传操作
l 简单遗传算法的遗传操作主要有三种:选择(selection)、交叉(crossover)、变异(mutation)。改进的遗传算法大量扩充了遗传操作,以达到更高的效率。
l 选择操作也叫复制操作,根据个体的适应度函数值所度量的优、劣程度决定它在下一代是被淘汰还是被遗传。一般地说,选择将使适应度较大(优良)个体有较大的存在机会,而适应度较小(低劣)的个体继续存在的机会也较小。
选择操作
——从旧的种群中选择适应度高的染色体,放入匹配集(缓冲区),为以后染色体交换、变异,产生新的染色体作准备。
选择方法——适应度比例法(转轮法)
按各染色体适应度大小比例来决定其被选择数目的多少。
某染色体被选的概率:Pi(选择概率)
xi 为种群中第i个染色体,
第k个个体的累加概率之和:(qk=qk-1+pk)
选择操作具体步骤
产生0-1的随机数r(均匀产生N个),qk-1<=r<=qk,则选择第k个个体进入交配池
举例1:
具有6个染色体的二进制编码、适应度值、选择概率、累加值。
交叉操作
复制不能产生新个体,交叉产生新个体
N=10,Pc=0.7(交叉概率>=0.7),平均一代又NxPc=7个个体进行交叉
变异
变异操作的简单方式是改变数码串的某个位置的数码
总群中的基因座的数目:NxL
变异概率:Pm(0.01-.03,<0.1)
则平均一代中有NxLxPm个基因座发生变异
变异过程:
变异是随机的
产生NxL个随机数,若第i个随机数在0-Pm之间,则第i个基因座发生变异
第i个基因座---》第i/L+1条染色体的i%L基因座突变
遗传算法的求解步骤
(1) 初始化群体;--》随机产生长度为L的染色体(二维数组)
(2) 计算群体上每个个体的适应度值;个体(基因型)--》表现型—》代入适应度函数—》求出适应度值
(3) 按由个体适应度值所决定的某个规则选择将进入下一代的个体;(轮转法)
(4) 按概率Pc进行交叉操作;
(5) 按概率Pm进行突变操作;
完成了一代,产生了新的一代
(6) 若没有满足某种停止条件,则转第(2)步,否则进入下一步。
(7) 输出群体中适应度值最优的染色体作为问题的满意解或最优解。
遗传算法适合寻找全局最优,不宜找到局部最优,故常和单点寻优相结合。
共同学习,写下你的评论
评论加载中...
作者其他优质文章