5.6.4 基于差分进化算法的三维Tsallis熵阈值优化
差分进化算法(Differential Evolution,DE)是近几年新兴的一种结构简单、性能高效的进化算法[65][66]。从1995年提出以来,就引起了众多学者的广泛关注,在很多领域得到应用。
设待求解的问题是优化一个含有D 个参数的函数,那么可以将这个全局优化问题转化为求解如下函数的最小值问题:


其中,CR 是位于区间[0,1]的一个常数,称为交叉概率,jrand是在区间[0,D]中随机选择的整数。方程(5.43)可以保证试验向量ui,G+1中至少有一个分量是由变异向量vi,G+1提供的,从而使得ui,G+1≠xi,G,增加了种群的多样性。(https://www.daowen.com)
步骤4:选择。将试验向量ui,G+1与原向量xi,G进行对比,使目标函数最优的向量个体被保留下来,如下所示:

从上式可以看出,当试验向量ui,G+1使目标函数的值不低于原向量xi,G时,ui,G+1就代替xi,G生成第i个个体的下一代xi,G+1;否则,xi,G就保留至下一代。因此,种群中个体的质量会逐渐得到优化。
步骤5:终止判断。判断DE算法是否可以终止迭代有以下两种方式:一是迭代次数G 达到预先设置的最大迭代次数Gmax,其中Gmax的大小要根据解决问题的复杂程度而定;二是迭代误差达到了预先设置的求解精度。
以上就是差分进化算法的基本执行步骤,如果将其引入来求解5.6.3节中三维Tsallis熵阈值,则可以大大地提高算法的执行速度,在有限的迭代次数中找到最优的阈值。在使用差分进化算法时,要注意三个参数的选择:种群数量N、变异因子F 以及交叉概率CR。一般情况下,种群数量N 越多,包含的信息量就越丰富,但是,与此同时会增加计算量,所以通常控制N 的大小在5×D 到10×D 之间,但最少不能少于4;对于变异因子F,0.5作为初始值是个不错的选择,但是如果在差分进化过程中,结果过早地收敛,则可以适当地增大N 和F;交叉概率CR 越大,收敛的速度越快,通常选择CR=0.9或者CR=1.0。