遗传算法 学习笔记

一.算法思想

       模拟达尔文进化论的自然选择和遗传学的生物进化过程形成的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。

       应用:   函数优化、组合优化(NP问题、TSP问题)自动控制、机器人智能控制、组合图像处理和模式识别,人工生命、遗传程序设计。

二、算法核心

       遗传算法从代表问题可能解的一个种群开始,种群由染色体编码表示,产生初始种群之后,按照适者生存和优胜劣汰的原则,逐代演化产生越来越好的解,在每一代的进化过程中,按照个体的适应度选择个体,借助遗传算子进行交叉变异产生新的种群,最终产生进化过程中的最优解。


遗传算法 学习笔记

遗传算法中用到的基本概念: 染色体 种群  个体 适应度 选择 交叉 变异 编码 解码

三、算法框架

a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。

b)个体评价:计算群体P(t)中各个个体的适应度。

c)选择运算  :将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。 

      常用的选择算子有适应度比例方法,随机遍历抽样法、局部选择法,最常用的是轮盘赌的选择方法

d)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。

    根据编码的不同,交叉算子有实值交叉和二进制交叉,二进制交叉又分为单点交叉和多点交叉和均匀交叉等。

e)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。

    根据编码的不同,变异算子有实值变异和二进制变异,一般变异概率小,大多为染色体单点变异。

群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。

f)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。

遗传算法 学习笔记

补充:

      轮盘赌选择算子

自然界中,越适应的个体就越有可能繁殖后代。但是也不能说适应度越高的就肯定后代越多,只能是从概率上来说更多。假设种群数目,某个个体其适应度为,则其被选中的概率为:

       

 比如我们有5条染色体,他们所对应的适应度评分分别为:5,7,10,13,15。

        所以累计总适应度为:

                                 遗传算法 学习笔记

        所以各个个体被选中的概率分别为:

               遗传算法 学习笔记    

这个轮盘是按照各个个体的适应度比例进行分块的。你可以想象一下,我们转动轮盘,轮盘停下来的时候,指针会随机地指向某一个个体所代表的区域,那么非常幸运地,这个个体被选中了。(很明显,适应度评分越高的个体被选中的概率越大。)

遗传算法 学习笔记



你可能感兴趣的:(遗传算法 学习笔记)