(PSO)算法基本粒子群基本PSO算法数学表示如下:设搜索空间为D维,总粒子数为m。第个粒子位置表示为向量x=(Xil,Xi2,XiD);第i个粒子的速度(位置变化率)为向量v;=(viu,Vi2…,ViD)。第粒子经过的历史最优位置为P;=(PiPi2,PiD),群体内(或邻域内)所有粒子所经过的最优位置(即当次选迭代中的全局极值)为 Pg=(Pg1Pg2*..PgD).每个粒子的位置按如下公式进行更新(“飞行”):11
11 基本 PSO算法数学表示如下: ⚫ 设搜索空间为D维,总粒子数为m。第i个粒子 位置表示为向量xi=( xi1, xi2,., xiD );第i个粒子 的速度(位置变化率)为向量vi=(vi1, vi2,., viD)。 第i个粒子 经过的历史最优位置为 Pi=( pi1,pi2,.,piD ),群体内(或邻域内)所有粒 子所经过的最优位置(即当次迭代中的全局极 值)为 Pg =( pg1,pg2,.,pgD ) . ⚫ 每个粒子的位置按如下公式进行更新(“飞 行”): 基本粒子群(PSO)算法
基本PSO算法(续)t+1(1) = via +Cri(Pia -Xia)+ Cr(Pgd -Xia)idxitl = xia + vit!(2)其中i=1,2,..",m;d =1,2,..,Dc,和c2 称为学习因子或加速系数,一般为正常数。学习因子使粒子具有自我总结和向群体中优秀个体学习的能力,从而向自已的历史最优点以及群体内或邻域内的历史最优点靠近。12
12 基本PSO算法(续) ( ) ( ) (1) 1 1 2 2 1 id id gd id t id t vid = v + c r p − x + c r p − x + (2) +1 +1 = + t id t id t id x x v 其中i = 1,2, ,m;d = 1,2, ,D c1和c2 称为学习因子或加速系数,一般为正常数。 学习因子使粒子具有自我总结和向群体中优秀 个体学习的能力,从而向自己的历史最优点以 及群体内或邻域内的历史最优点靠近
参数设置(1)实验发现C =C2=0.5或2时搜索结果较好。通常取为2(2)r和r,为[0,1区间均匀分布的随机数这两个参数是用来保持群体的多样性(3)为使速度不致过大,可设置速度上限第d(1≤d≤D)维的位置变化范围为[-XMAXd,XMAXd],速度变化范围为[-VMAXd,VMAXdl,迭代中若位置和速度超过边界范围则取边界值。13
13 (1)实验发现 0.5 2 2. c1 = c2 = 或 时搜索结果较好。通常取为 . (2) [0,1] , 1 2 这两个参数是用来保持群体的多样性 r 和r 为 区间均匀分布的随机数 (3)为使速度不致过大,可设置速度上限. 第d(1≤d≤D)维的位置变化范围为[-XMAXd , XMAXd],速度变化范围为[-VMAXd , VMAXd],迭代中若位置和速度超过边界范围 则取边界值。 参数设置
基本PSO算法由三部分组成+= via +Cr(pid -Xia)+Cr(Pgd -Xia)(1)xtl = Xi +vit+(2)(1)前次迭代中自身的速度:这是粒子飞行中的惯性作用,是粒子能够进行飞行的基本保证。(2)自我认知部分:表示粒子飞行中考虑到自身的经验,向自已曾经找到过的最好点靠近。(3)社会经验部分:表示粒子飞行中考虑到社会的经验,向邻域中其他粒子学习,使粒子在飞行时向所有粒子曾经找到过的最好点靠近。14
14 基本PSO算法由三部分组成 ⚫ (1)前次迭代中自身的速度:这是粒子飞行中 的惯性作用,是粒子能够进行飞行的基本保证。 ⚫ (2)自我认知部分:表示粒子飞行中考虑到自 身的经验,向自己曾经找到过的最好点靠近。 ⚫ (3)社会经验部分:表示粒子飞行中考虑到社 会的经验,向邻域中其他粒子学习,使粒子在 飞行时向所有粒子曾经找到过的最好点靠近。 ( ) ( ) (1) 1 1 2 2 1 id id gd id t id t id v = v + c r p − x + c r p − x + (2) +1 +1 = + t id t id t id x x v
PSO位置更新图示V-速度速度: Via(t +1)= Via(t)+C-学习因子C1xrand()x[pia(t)- Xid(t)(t))+Pid-区域最佳解Pgd-全域最佳解C2xrand()x[P gd(t)-Xid(t)(t)]目前的区域最佳解pbest新位置Xid(t+1)过去自身经验运动向量新速度Vid(t+1)自前的全域最佳解gbest原來速度Vid同伴飞行经验原位置Xid(t)位置: Xid(t+1)=Xid(t)+Vid(t+1)原來速度Vid(t)15
15 PSO 位置更新图示 速度:vid(t +1)= vid(t)+ c1 xrand()x[pid(t)- xid(t)(t)]+ c2 xrand()x[Pgd(t)-xid(t)(t)] v-速度 C-学习因子 pid-区域最佳解 Pgd-全域最佳解 原來速度 vid 过去自身经验 同伴飞行经验 运动向量 目前的区域最佳解pbest 目前的全域最佳解 gbest 原來位置 xid(t) 新位置 xid(t+1) 原來速度 vid(t) 新速度 vid(t+1) 位置:xid(t+1)=xid(t)+vid(t+1)