粒子场优化(Particle Field Optimization,PFO)

在这里插入图片描述
获取更多资讯,赶快关注上面的公众号吧!

粒子场优化Particle Field Optimization

加拿大的Nathan Bell和B. John Oommen于2015年,提出了一种新的、抽象的粒子群优化(PSO)系统视角,视图抛弃单个粒子构成的群体,而是通过 场(field)或分布(distribution) 来描述每个粒子。各种场的更新策略类似于汤普森采样(Thompson’s sampling)。通过这种抽象,提出了新的粒子场优化算法(Particle Field Optimization,PFO),从而利用这一新的视角来实现与传统PSO完全不同的模型和行为。

PSO

基本PSO可以参考之前的博文——群体智能之粒子群优化(PSO),这里不再赘述。

Bare Bones Particle Swarm(BBPS)

BBPS是PSO的一种变体,它试图模拟基本粒子群算法的高层行为,同时使用一种更简单的粒子更新策略。对基本粒子群优化系统的观察表明,即使没有复杂的速度和加速度分量,也可以实现非常相似的行为模式。此外,在系统处于群体停滞状态(即当个人和全局最佳点保持不变时)时,使用标准速度策略对单个粒子的观察产生了钟形曲线非常明显的直方图。通过这一现象导致可以推测:即不必处理粒子的速度和加速度,每个粒子只需对通过近似所观察到的直方图所构造的随机分布进行抽样就可以得到更新。

BBPS彻底消除了粒子的速度分量,仅通过采样高斯分布来确定粒子的下一位置。该高斯分布在每个维度上是随机构造和采样的,其均值为全局最优解个体历史最优的平均值,方差为全局最优解和个体最优解在各个维度上上的绝对距离。给定一个位置为 X ⃗ i \vec{X}_{i} X i为的粒子 i i i,其个体最优点为 P ⃗ i \vec{P}_{i} P i,全局最优点为 P ⃗ g \vec{P}_{g} P g,则粒子的下一位置通过下式确定:

P m → = P ⃗ i + P ⃗ g 2 , X ⃗ i = N → ( P m → , σ 2 → ) \overrightarrow{P_{m}}=\frac{\vec{P}_{i}+\vec{P}_{g}}{2}, \quad \vec{X}_{i}=\overrightarrow{\mathcal{N}}\left(\overrightarrow{P_{m}}, \overrightarrow{\sigma^{2}}\right) Pm =2P i+P g,X i=N (Pm ,σ2 )

其中 N → \overrightarrow{\mathcal{N}} N 表示逐个维度创建高斯随机向量的函数,且以 P m → \overrightarrow{P_{m}} Pm 为中心, σ \sigma σ是每个维度上的标准偏差向量,比例于 P ⃗ i \vec{P}_{i} P i P ⃗ g \vec{P}_{g} P g在每个维度上的绝对差值。

该更新策略比基本的粒子群速度策略稍微抽象一些,因为粒子不再在空间中飞行,但群体的一般行为保持不变。在更高的层次上,算法仍然涉及到一群在解空间中移动的粒子,这些粒子受到其个体最优位置的记忆和全局最优位置的通信的影响。

Particle Field Optimization,PFO算法

虽然BBPS引入了抽象的方法用于更新粒子的位置,但是如果仔细观察这种变化的后果,就有可能抽象到更高层次上,从而发现全新的视角。

首先分析一下,单个粒子在这两种模型的贡献是什么。在基本的PSO中,单个粒子包含:当前位置、当前速度和个体最优位置。为了确定下一次迭代中粒子的下一位置,这些分量都是必需的。粒子的在下一迭代中的位置取决于其当前位置和速度。更新后的速度反过来又取决于粒子的当前速度、个体最优位置和种群全局最优位置。粒子的每个分量都会对更新函数有贡献,必须进行维护以便在下一迭代中使用。

在BBPS模型中,移除了速度项,单个粒子只保留了当前位置和个体最优位置。然而,不同于基本PSO,粒子的更新不需要这两个分量,具体来说,下一迭代中粒子的位置与当前迭代中粒子的位置无关。当更新粒子时,下一位置是通过采样一个高斯随机分布来生成的,而这个高斯随机分布又是通过粒子的个体最优位置和全局最优位置来构造的。位置创建后,该位置只用于一个目的,即更新粒子的个体最优位置。之后,使用种群的个体最优位置更新全局最优位置,所以全局最优位置也不直接依赖于粒子的当前位置。

因此是可以将位置分量从模型中完全移除的,通过修改更新操作以直接处理粒子的个体最优位置同时保持等效行为,而不再存储和维护粒子的当前位置。对构造的随机分布进行采样,就可以得到一个新的位置,如果新位置的值优于个体最优位置的值,那么就使用新位置更新粒子个体最优位置。可以看出区别就在于这个新生成的位置是临时的,而不必为了下一代进行维护。该抽象模型下的算法行为保持不变,但是需要重新审视原始PSO中的隐喻和概念。

移除粒子的当前位置分量后,单个粒子现在只包含一个个体最优位置,粒子不再作为空间中的显式点存在。从概念上讲,粒子的个体最优位置是粒子对其迄今为止评价过的最优位置所保持的记忆,而全局最最优位置可以被认为是种群的集体记忆。这两个记忆定义了用于更新粒子的随机分布。尽管粒子不再作为空间中的一个显式点存在,我们可以相反地,把粒子在空间中的位置看作是由随机分布本身定义的。这是因为这个分布代表了粒子可能位置的概率场。从这个角度来看,粒子是以自身记忆和群体集体记忆定义的随机场存在的。

随着个体种群的新概念的出现,算法的高层视角发生了巨大的变化。一群粒子在空间中飞行的比喻不再恰当地描述算法的高级概念。相反,现在的算法由一群粒子场组成,这些粒子场以不同的方式在空间中移动。因为这些粒子场的位置被定义为随机分布,评估一个粒子场的当前位置是不确定的,所以这些粒子场不一定要移动去探索新的点。这些粒子场在空间中保持静止,直到个体的最优位置改变,或者种群的全局最优位置改变。这个粒子场的总体本身可以被看作是粒子的随机场,定义为由每个个体分布组成的混合分布。这个种群水平分布可以被认为是一个粒子群的抽象表示,代表下一个迭代中所有可能的粒子位置的概率分布。虽然行为是类似,但是这种高级概念的观点与BBPS算法有显著的不同。然而,有了这个新视角,就有可能探索改进或改变算法行为的新方向。

如何影响PFO抽象

有了BBPS算法的这个新视角,我们可以开始采取步骤,使用这种抽象的哲学来实现新算法。在这个抽象的BBPS模型中,种群中的每个个体在每次迭代中都会生成并评估一个新点,从而保持个体代表单个粒子的概念。然而,没有必要在我们的新模型中维护这个比喻,因此我们可以从不同的角度来处理候选解的生成和评估。

与传统粒子群算法中让每个个体直接代表一个候选解不同,我们以一种更间接的方式使用种群来探索解空间。总的来说,这个种群代表了一个复杂的,有限的混合分布,由一个简单的多元高斯分布的基本集合组成,这些分布是由粒子场个体定义的。传统上,每个人都会生成并评估一个新解。然而,这个种群分布可以用另一种方式来指导搜索。

候选解是通过对这个种群级的分布进行采样生成的。虽然种群水平分布是复杂的,但抽样过程是简单的。种群水平分布是已知分量分布的有限混合分布。因此,对这种复杂的种群水平分布进行抽样是一个简单的问题,即随机选择一个底层分量分布。在种群的上下文中,这意味着随机选择一个粒子场个体,然后对定义该粒子场位置的多元高斯分布进行采样。

一旦生成和评估了候选解位置,种群中的每个粒子场个体都会被更新。每个个体使用从其自身分布中生成的候选解进行更新。如果一个候选解优于个体最优位置,则个体最优位置设为该解。这样,种群定义了一个随机分布来指导搜索和生成候选解,然后用候选解更新种群,重新定义下一次迭代的搜索区域。

这种种群指导搜索的概念将我们引向一个新的、独特的算法的下一步。由于由种群生成的复杂分布是有限的混合分布,因此对分布应用加权机制是一件简单的事情。通过加权每个粒子场对种群分布的贡献,有可能将额外的信息纳入搜索过程中,独立于底层的粒子群算法过程。

最后,由于粒子场个体的种群不再直接代表候选解,因此在每次迭代中生成和计算的候选解数量不再需要与种群的大小相等。所以,可以通过使用不同的相对种群和候选解点池大小来进一步修改行为。由于粒子群分布的性质,改变粒子群中粒子场个体的数量会影响该分布的分辨率。

PFO实现

考虑到这些变化,我们现在已经脱离了传统的粒子群优化算法范式,并得到了一种新的、独特的算法,并将其称为粒子场优化(PFO)。该算法由粒子场个体的种群和候选解点的点池组成。粒子场个体的种群使用粒子群算法(PSO)原理来指导求解空间的搜索,通过生成和评估候选解点池来进行求解。与传统的粒子群优化算法相似,PFO算法由初始化阶段和仿真阶段组成,仿真阶段循环直到满足一定的终止条件,并返回算法所找到的最优解作为输出。作为参数,该算法接受初始化范围、种群大小和池大小。种群大小参数指定粒子场个体的数量,这些粒子场个体构成了用于指导搜索的种群池大小参数指定在每一步仿真中要生成和评估的候选解的数量。还需要指定一个加权函数,对每个个体对整个种群分布的贡献进行加权。

初始化阶段用于初始化粒子场个体的数量。一个粒子场个体只存储一个个体的最佳位置,因此对这些个体的初始化很简单。通过对初始化范围定义的均匀随机分布进行抽样,给每个个体分配一个初始的最优点。

仿真阶段循环,直到满足终止条件,通常是最大迭代次数。每个迭代由两个阶段组成。在第一阶段,生成候选解。这些候选解是通过对粒子场个体种群定义的混合分布进行采样产生的。对于点池中的每个点,我们做如下操作:根据某种加权方案,从种群中随机选择一个粒子场个体,然后,通过对被选择个体定义的随机分布进行抽样来生成点。这种随机分布是利用个体的最优位置,和全局(或邻域)最优点来构造的,与BBPS方法相同。给定一个个体最优位置为 P ⃗ i \vec{P}_{i} P i和全局最优位置为 P ⃗ g \vec{P}_{g} P g的粒子场,候选解点 c ⃗ i \vec{c}_{i} c i的位置可以根据下式确定:
P m → = P ⃗ i + P ⃗ g 2 , σ 2 → = ∣ P ⃗ i − P ⃗ g ∣ , c ⃗ = N → ( P m → , σ 2 → ) \overrightarrow{P_{m}}=\frac{\vec{P}_{i}+\vec{P}_{g}}{2}, \quad \overrightarrow{\sigma^{2}}=\left|\vec{P}_{i}-\vec{P}_{g}\right|, \quad \vec{c}=\overrightarrow{\mathcal{N}}\left(\overrightarrow{P_{m}}, \overrightarrow{\sigma^{2}}\right) Pm =2P i+P g,σ2 =P iP g,c =N (Pm ,σ2 )

一旦生成了候选解,就可以对目标函数进行评估。在点池中的每个候选解都生成之后,第二阶段开始。在这个阶段,将更新粒子场个体的种群。每个个体使用从自己的分布中生成的候选解集来更新自己的最优位置。每个个体从相关的候选解集中选择最最优位置。如果最优关联候选解优于个体最优位置,个体将其最佳发现点设为与该候选解点相等。然后清空候选解池,模拟继续到下一个迭代。

一旦满足终止条件,则返回全局最优发现点作为算法的输出。算法见算法1。
在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

松间沙路hba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值