粒子群算法
源于对鸟群捕食行为的研究,每只鸟之间通过集体的协作使群体达到最优目的,使一种基于Swarm Intelligence的优化算法,关键点在于处理“社会行为”和“个体认知”。
算法介绍:
①每一个寻优的问题解都能想象称一只鸟,所有粒子均在一个D维空间进行搜索。
②所有例子都能由一个fitness function确定适应值以判断目前位置的好坏。
③所有粒子必须赋予记忆功能,能记忆住所搜寻到的最佳位置。
④粒子具有速度来确定飞行距离和方向,可根据自身或者同伴的飞行经验来判断。
求解过程
D维空间,由n个粒子:
粒子i位置Xi=(Xi1,Xi2,…,XiD)将Xi代入适应函数f(Xi)求适应值
粒子i速度Vi= (Vi1,Vi2,…,ViD)
粒子i个体经历过的最好位置 Pbesti = (Pi1,Pi2,…,PiD)
种群所经历过的最好的位置Gbesti = (gi1,gi2,…,giD)
粒子i的第d维速度更新公式:
粒子i的第d维位置更新公式:
上式中的参数含义为:
由粒子的速度更新公式包含三部分:
①粒子先前的速度(基本粒子群算法)
②个体认知部分,表示粒子本身的思考,可理解为粒子当前位置与自己最好位置的距离
③社会部分,表示粒子间信息共享和合作,可理解为粒子当前位置与种群最好位置之间的距离
若速度更新公式中,C1=0,则式子中无认知部分,个体认知与社会行为一致,此时成为“无私型粒子群算法”;若C2=0,则式子中无社会部分,表现为个体认知独立于社会行为,此时称为“自我认知型粒子群算法”