1.蒲公英种子的传播的方式
蒲公英种子的传播-原创视频-搜狐视频
http://my.tv.sohu.com/us/18872878/9455085.shtml
(1)从生理结构上分析,蒲公英在经历昆虫受精之后的成熟,会借助风的作用种在远方。
(2)蒲公英的种子比较重,故而结构上那层种子上的小小的绒毛是类似于降落伞的结构,以确保种子的御风而飞。
(3)为什么要这样的播种?大片的蒲公英的土地因自身没有太大的空间去承受那么多的种子。而且像所有的植物一样泰国密集就会生长的不好。(自然界的生物是这样的吗?如果动物分布的很集中,基数大,地域小,是不是就会“困住自己”??)
2.蒲公英算法
模拟自然界的蒲公英的播种方式,使用自然播种,突变播种以及选择策略这样的三种方式。
步骤:
(1)随机初始化种群的个数和变异的蒲公英个数
(2)在蒲公英算法中,分成核心的蒲公英(AD),辅助蒲公英(CD)。越是核心,产生的种子越多,生活的适应性越好。播种时产生的种子数量是根据其蒲公英适宜度值计算的(也就是母亲,根据自己本身的适应性产生多少种子,母亲的适应性强则播种的时候种子就多)假设最大的种子数是max,最小的为min(max,min是自己设置的,用来作为一个阈值,控制种子的数量。就像是小麦的麦穗多少等都是一样的)而每一株蒲公英Xi的种子数为Mi(实际上应该是下标的变量,但是不好打)故而母代产生的种子的个数计算公式:
f(Xi)是总的适应度函数,用来评测适应度的。是根据具体的情况有所不同的
目标函数和适应度函数的区别:
适应度函数_百度百科
https://baike.baidu.com/item/%E9%80%82%E5%BA%94%E5%BA%A6%E5%87%BD%E6%95%B0/20593164?fr=aladdin
而适应度函数也不需要满足什么样子的可微等的条件,只需要给它位于输入,可以针对输入计算出一个可以加以比较的非负的值。
(3)辅助蒲公英的播种半径通过以下的公式计算
而这里的UB、LB分别表示的目标函数的上界和下界(应该是定义域的上下界吧)这样就可以理解为当进行第一次的播种半径计算,计算的可播种的地域圆的半径就是整个的变量的区间组成的圆
而实事先的情况下我们是了解X的属性的,也就是数据集是已经有啦,向量的无穷范数就是该向量中绝对值最大的数。也就是类似于组合优化问题中的一个一个的解,问题就是如何找到最优的解
w是权重因子,用于动态的调整上一代播种半径对这一代播种半径的影响
(4)之前说过蒲公英有核心的和非核心
对于核心的CD蒲公英,其播种方式,根据最后一代的进行调整(也就是说是根据最优一代和它的上一代的计算得到a,通过a来来更新cd的播种半径)
r,e代表枯萎因子,和生长因子。a是增长趋势,用来评价此地区的蒲公英两代之间是否有所进化(确定是不是在最优解的地方生长)
之前说到,大面积的蒲公英都选择到了一个地方的时候,反而是不好的,个体密度大。
(5)为了避免陷入局部最优,保持种群的多样性,从而为CD提供突变播种
Lévy distribution - Wikipedia
https://en.wikipedia.org/wiki/L%C3%A9vy_distribution
作用:就是突破局部性
突变播种:
就是为了CD跳出局部最优,本身也可以作为一个评测的标准就是,区分CD与AD的计算
(6)在DA中,它要求当前的最佳位置始终保持下一次的迭代
最佳位置:就是根据计算出来的子代和父代的所有的适应函数值最优的那个
分裂选择:把一个群体中的极端变异个体按不同方向留下来,减少中间常态的选择(与稳定选择相反),就是选择那些稀有的,不稳定的,两端的,情况比较少的,这个可以有利于群体的个性化
fi是木变函数的适应度值
favg是第t代群体的适应值的平均值
SN是所有蒲公英(父代蒲公英,突变的种子,正常的种子(子代))
(7)若满足停止条件(一般就是达到一定的精度要求,或者是满足迭代的次数),则搜索停止输出结果,否则转到步骤二
总得来说提供了两种策略
(1)核心非核心分别的计算播种半径,正常的额播种
(2)核心的突变播种,非核心的正常的播种