1.利用选择的方法
Angeline提出了用进化计算中的选择机制来改善粒子群优化算法。通常在解决复杂非线性函数时,基于群体的优化算法在快速寻找最优值方面有一定的优势。基于群体的优化算法可以定义如下
其中,P是搜索空间中的一组位置,称为群体。f是适应值函数,其返回一组值,从而表明群体中每个成员的优化效果。m是群体修改函数,其返回一组新的群体。从父代中直接得到的信息,或者搜索动态过程中隐含的信息,都能够给予子代一定的指导。粒子群优化算法正是如上式方程形式的基于群体的优化算法。其修改函数是基于昆虫的群体行为,每个个体包含在搜索空间中的当前位置、当前速度、自身搜索到的最好位置。它们通过基本粒子群操作(速度更新公式和位置更新公式)而得到新的群体。
而进化算法是另一种形式的基于群体的搜索方法,定义如下:
其中,μ是突变函数,其随机改变群体中的部分个体。s是选择函数,用其他群体成员的复制体(称为父代)代替表现差的粒子。这个选择机制使得搜索能够倾向于之前所走过的具有相对优势的位置。选择对群体起着集中的作用,分布有限的资源使得搜索倾向于具有最大效益的已知区域。
Angeline提出了混合群体(hybrid swarm),其结合了类似于传统进化计算算法中选择机制。混合群体和粒子群在各方面都很相似,它结合了进化计算中的锦标选择算子(tournament selection method)。锦标选择算子可描述如下:
(1)每个个体基于当前位置的适应值与其他个体的适应值进行比较,如果当前个体的适应值优于某个个体的适应值,则每次授予该个体一分。对每个个体重复这个过程。
(2)根据前一步所计算的分数对种群中的个体进行从大到小的排列。(www.xing528.com)
(3)各级种群中顶部的一半个体,并对它们进行复制,取代种群底部的一半个体,在此过程中最佳个体的适应度并未改变。
此选择过程在粒子修改群体前执行。通过增加这个选择过程,在每一代中,一半的个体将会被移动到比当前位置具有相对优势的位置上。移动后的个体将仍然保持它们的个体最优位置。可见混合群体和粒子群体的区别是很小的,区别仅仅在于带选择机制的混合群体比粒子群体具有更多开发能力,即在已具有的信息的基础上继续搜索的能力。实验表明该算法在某些函数上比粒子群具有优势,如Rosenbrock函数和Rastrigin函数。
2.利用杂交的方法
Lovbjerg提出了繁殖(breeding)粒子群优化算法,粒子群中的粒子被赋予一个杂交概率,这个杂交概率由用户定义,与粒子的适应值无关。在每次迭代中,根据杂交概率选择一定数量的粒子进入一个池中,池中的粒子随机地两两杂交,产生相同数目的子代,并用子代粒子取代父代粒子,以保证种群的粒子数目不变。
用a和b表示被选择的两个亲代个体的指针,那么繁殖算法的计算公式表示为
通过该方法产生的子代代替父代。可见选择父代没有基于适应值,防止了基于适应值的选择对那些多局部极值的函数带来潜在问题。pi是[0,1]之间的随机数(经验值约为0.2)。理论上讲繁殖法可以更好地搜索粒子间的空间,两个在不同局部最优点的粒子经过繁殖后,可以从局部最优逃离。结果表明,对于单峰函数,繁殖法虽略加快了收敛速度,却不如基本PSO和GA找到的解好,而对于多局部极值的函数,繁殖PSO不仅加快了收敛速度,而且找到了同样好或更好的解。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。