【计算智能】——群体智能算法(蚁群优化算法ACO、粒子群优化算法PSO)

群体智能算法

与大多数基于梯度的优化算法不同,群体智能算法依靠的是概率搜索算法。

与梯度算法及传统演化算法相比优点:

  1. 没有集中控制约束,不会因为个体的故障影响整个问题的求解。
  2. 以非直接信息交流的方式确保了系统的可扩展性。
  3. 并行分布式算法模型,可充分利用多处理器。
  4. 对问题定义的连续性无特殊要求。
  5. 算法实现简单。

蚁群优化算法ACO

蚁群算法是对自然界蚂蚁的觅食寻径方式进行模拟而得出的一种仿生方法。

蚁群在觅食途中,会在所经过路径留下一种挥发性分泌物——信息素,并且能感知其存在和强度,朝着信息素浓度高的方向移动。与此同时释放出与路径长度有关的信息素。路径越长,释放的信息素浓度越低。浓度越高的路径选择它的蚂蚁越多,越发增加该路径上的信息素浓度,这样又吸引更多的蚂蚁,从而形成一个正反馈。蚂蚁最终总能找到一条从食物到巢穴之间的最优路径。最优路径上的激素浓度越来越大,而其他路径上的激素浓度却会随着时间的流逝而消减。

粒子群优化算法PSO

假设区域里就只有一块食物(即通常优化问题中所讲的最优解),鸟群的任务是找到这个食物源。鸟群在整个搜寻的过程中,通过相互传递各自的信息,让其他的鸟知道自己的位置,通过这样的协作,来判断自己找到的是不是最优解,同时也将最优解的信息传递给整个鸟群,最终,整个鸟群都能聚集在食物源周围,即我们所说的找到了最优解,即问题收敛。
PSO从这种模型中得到启示并用于解决优化问题。

  • PSO 中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为粒子。所有的粒子都有一个由被优化的函数决定的适值( fitness value) ,每个粒子还有一个速度决定它们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。
  • PSO初始化为一群随机粒子(随机解),然后通过迭代找到最优解。
    在每一次迭代中,粒子通过跟踪两个极值来更新自己;
    第一个就是粒子本身所找到的最优解,这个解称为个体极值
    另一个极值是整个种群目前找到的最优解,这个极值是全局极值
    另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。

过程:
假设在一个D维的目标搜索空间中,有N个粒子组成一个群落,其中:
第i个粒子表示为一个D维的向量:xi=(xi1,xi2,…xiD);
第i个粒子的“飞行 ”速度也是一个D维的向量:vi=(vi1,vi2,…viD),1≤i≤m,1 ≤d ≤D;
粒子i经历过的历史最好位置:pi=(pi1,pi2,…piD);
群体内(或领域内)所有粒子所经历过的最好位置:pg =(pg1,pg2,…pgD)。
在找到这两个最优值时,粒子根据如下的公式来更新自己的速度和位置
v i d = w ⋅ v i d + c 1 ⋅ r 1 ( p i d − x i d ) + c 2 ⋅ r 2 ( p g d − x i d ) v_id = w · v_id + c_1 · r_1(p_id - x_id) + c_2 · r_2(p_gd - x_id) vid=wvid+c1r1(pidxid)+c2r2(pgdxid)
x i d = x i d + v i d x_id = x_id + v_id xid=xid+vid
其中:c1和c2为学习因子,w为惯性因子,r1和r2为[0,1]范围内的均匀随机数。

算法流程:

  1. 初始化,设置粒子群规模、初始位置、初始速度等。
  2. 计算各粒子的适应度函数,找到个体历史最优解和全局历史最优解。
  3. 更新各粒子的位置和速度。
  4. 是否到达迭代次数?是,结束;否,返回2。
    【计算智能】——群体智能算法(蚁群优化算法ACO、粒子群优化算法PSO)_第1张图片

优点:

  1. 实现容易,精度高,收敛快,不需要调整参数。
  2. 对种群大小不十分敏感。
  3. 在多样化和集中化中建立平衡。

缺点:

  1. 对离散的优化问题处理不佳。
  2. 容易陷入局部最优。

你可能感兴趣的:(课程理论)