理论教育 粒子群优化计算概述

粒子群优化计算概述

时间:2023-06-15 理论教育 版权反馈
【摘要】:粒子群优化算法最初是由Kennedy和Eberhart于1995年受人工生命研究结果启发,在模拟鸟群觅食过程中的迁徙和群集行为时提出的一种基于群体智能的进化计算技术。这些研究主要集中在如下几个方面:粒子群优化算法的理论分析。粒子群优化算法的改进。粒子群优化算法的应用。为了更好地使用这些算法求解相关实际问题,有必要研究使用粒子群优化算法求解问题的统一框架。

粒子群优化计算概述

粒子群优化算法最初是由Kennedy和Eberhart于1995年受人工生命研究结果启发,在模拟鸟群觅食过程中的迁徙和群集行为时提出的一种基于群体智能的进化计算技术。鸟群中的每只鸟在初始状态下是处于随机位置向各个随机方向飞行的,但是随着时间的推移,这些初始处于随机状态的鸟通过自组织逐步聚集成一个个小的群落,并且以相同速度朝着相同方向飞行,然后几个小的群落又聚集成大的群落,大的群落可能又分散为一个个小的群落。这些行为和现实中的鸟类飞行的特性是一致的。可以看出鸟群的同步飞行这个整体的行为只是建立在每只鸟对周围的局部感知上面,而且并不存在一个集中的控制者。也就是说整个群体组织起来但却没有一个组织者,群体之间相互协调却没有一个协调者。Kennedy和Eberhart从诸如鸟类这样的群居性动物的觅食行为中得到启示,发现鸟类在觅食等搜寻活动中,通过群体成员之间分享关于食物位置的信息,可以大大的加快找到食物的速度,也即是通过合作可以加快发现目标的速度,通常群体搜寻所获得利益要大于群体成员之间争夺资源而产生的损失。这些简单的经验事实如果加以提炼,可以用如下规则来说明:当整个群体在搜寻某个目标时,对于其中的某个个体,它往往是参照群体中目前处于最优位置的个体和自身曾经达到的最优位置来调整下一步的搜寻。Kennedy和Eberhart把这个模拟群体相互作用的模型经过修改并设计成了一种解决优化问题的通用方法,称之为粒子群优化算法[2,3]

PSO算法不像遗传算法那样对个体进行选择、交叉和变异操作,而是将群体中的每个个体视为多维搜索空间中一个没有质量和体积的粒子(点),这些粒子在搜索空间中以一定的速度飞行,并根据粒子本身的飞行经验以及同伴的飞行经验对自己的飞行速度进行动态调整,即每个粒子通过统计迭代过程中自身的最优值和群体的最优值来不断地修正自己的前进方向和速度大小,从而形成群体寻优的正反馈机制。PSO算法就是这样依据每个粒子对环境的适应度将个体逐步移到较优的区域,并最终搜索、寻找到问题的最优解。粒子群优化研究人员对粒子群体组织和协作模式以及算法参数等进行了研究,提出了如模糊PSO、带选择的PSO、具有高斯变异的PSO、具有繁殖和子种群的混合PSO、簇分析PSO、协同PSO以及多阶段PSO等。

虽然这些算法基于对不同物理系统的模拟,然而它们有相通的共性,如,在这些方法中,没有一个作为核心的个体,每个个体只拥有简单的智能,通过大量这样个体的信息交互(In-teraction),群体表现强大的智能。在优化领域,这些方法已经被成功的应用于常规算法难以求解的非凸、非线性,离散优化问题,积累了丰富的实际经验和理论成果。

PSO自1995年提出以来,由于其简单和明确的实际背景,以及前述的诸多优点,使得很多研究者加入到对这种算法的研究中,目前粒子群优化算法的理论研究与应用研究都取得了很大的进展,算法的应用也已经在不同学科中得以实现。这些研究主要集中在如下几个方面:

(1)粒子群优化算法的理论分析。

具体来说,这个问题的研究分为三个方面:一是单个粒子的运动轨迹,现有的研究发现,单个粒子不断地在各种正弦波上“跳跃”,即其轨迹是各种正弦波的随机的叠加组合,这里所用的主要工具是微分方程和差分方程;二是收敛性问题,关于粒子群算法的收敛性研究比较多的集中在一些简化条件下的结果,采用的主要工具是动态系统理论。其他还有采用集合论的方法来研究此问题,得出的结论是:在没有任何改进的情况下,原始的粒子群优化算法既不能收敛到全局极值点,也不能收敛到局部极值点,但是这种证明是非构造性证明,对于理解算法的工作原理没有太大帮助;三是整个粒子系统随时间的演化和分布,这方面的研究目前还少有人涉及。

(2)粒子群优化算法的改进。

这方面的内容非常庞杂,从改进的策略来说,可以分为如下几种类型,一是从算法本身的改进,例如对算法迭代式的改进,或对算法参数的优化。二是和进化计算的结合,例如采用杂交的算子来优选粒子。三是拓扑结构的研究,通过数值实验来寻找最合适的邻域结构,或者随着计算的进行,动态的改变邻域结构。四是基于函数变换的方法,在算法运行的过程中,不断地改变被优化函数的形状。以上这些方法,从根本上说,主要是为了克服粒子群优化算法在优化多峰复杂函数时,会出现早熟,粒子的多样性减低,以至于不能收敛到全局极值点的现象。

(3)粒子群优化算法的应用。

粒子群优化算法的应用已经扩展到很多领域,从最初的复杂多峰非线性函数的优化、多目标优化等传统问题,到电力系统的分析,动态系统的跟踪与优化、神经网络的权值训练并将其用于复杂系统的建模,非线性系统的优化控制问题等。算法研究的目的是应用,如何将粒子群算法应用于更多领域,同时研究应用中存在的问题也非常值得关注。

对应于不同实际问题,构造算法主要依赖经验和大量实验。为了更好地使用这些算法求解相关实际问题,有必要研究使用粒子群优化算法求解问题的统一框架。然后,在这个统一的框架下,研究各种具体算法。依据行为主义人工智能框架的一般描述,同时比较多种群体智能算法的个案,如粒子群算法、蚁群算法以及遗传算法等,可以看到:这些算法虽然有不同的物理背景和优化机制,但是从优化流程上看,却具有很大的一致性。这些算法都采用“生成+检测”的框架,通过“邻域搜索+全局搜索”的策略寻优。首先,将原问题空间映射为算法空间;接着初始化一组初始解;然后,在算法参数控制下根据搜索策略对个体进行搜索从而产生若干待选解;进而按照接受准则(确定性、概率性或混沌方式)更新当前状态,如此反复迭代直到满足某种收敛准则;最后通过空间的反变换,输出原问题的解。算法的核心包括:算法空间变换和反变换;初始个体的产生准则;邻域搜索策略;全局搜索策略;接受准则以及收敛准则。

根据上述的粒子群优化算法求解问题的统一框架,可得到粒子群优化算法的设计步骤如下:

(1)确定问题的表示方案(编码方案或者称为粒子表示方法)。与其他的进化算法相同,粒子群算法在求解问题时,其关键步骤是将问题的解从解空间映射到具有某种结构的表示空间,即用特定的码串表示问题的解。根据问题的特征选择适当的编码方法,将会对算法的性能以及求解结果产生直接的影响。粒子群算法的大部分研究均集中在数值优化领域中,其位置一速度计算模型使用于具有连续特征的问题函数,因此,目前算法大多采用实数向量的编码方式,以粒子的位置向量来表示问题的解。比如,对于生产调度这类属于离散空间的非数值优化问题,如何用粒子群算法的粒子表示方法来映射调度问题的解空间,是求解问题的最关键环节。

(2)确定优化问题的适应度函数。在求解过程中,借助于适应值来评价解的质量。因此,在求解问题时,必须根据问题的具体特征,选取适当的目标函数来计算适应值,适应值是唯一能够反映并引导优化过程不断进行的参量。

(3)选择控制参数。粒子群算法的控制参数通常包括粒子种群数量、算法执行的最大代数、惯性权重系数、学习因子系数及其他一些辅助控制参数,如粒子位置和速度的控制范围等。针对不同的算法模型,选择适当的控制参数,直接影响算法的优化性能。

(4)选择粒子群优化模型。目前,粒子群算法已经发展了多种位置—速度计算模型,如惯性权重PSO模型、收敛因子PSO模型、采用拉伸技术的PSO模型、二进制PSO模型等,在求解不同类型优化问题时,不同PSO模型的优化性能也有差异。由于惯性权重线性递减PSO模型能够有效地在全局搜索和局部搜索之间进行平衡,因此,目前这一PSO模型得到的较多的应用。

(5)确定算法的终止准则。与其他进化算法一样,PSO算法中最常用的终止准则是预先设定一个最大的迭代次数,或者当搜索过程中解的适应值在连续多少代后不再发生明显改变时,终止算法。

PSO算法和其他进化算法类似,也采用“群体”和“进化”的概念,通过个体间的协作与竞争,实现复杂空间中最优解的搜索。PSO先生成初始种群,即在可行解空间中随机初始化一群粒子,每个粒子都为优化问题的一个可行解,并由目标函数为之确定一个适应值(fit-ness value)。PSO不像其他进化算法那样对于个体使用进化算子,而是将每个个体看作是在n维搜索空间中的一个没有体积和重量的粒子,每个粒子将在解空间中运动,并由一个速度决定其方向和距离。通常粒子将追随当前的最优粒子而动,并经逐代搜索最后得到最优解。在每一代中,粒子将跟踪两个极值,一为粒子本身迄今找到的最优解pbest,另一为全种群迄今找到的最优解gbest。每个粒子具有两个特征,它们分别是位置和速度。我们假设需要优化的问题为:

其中,f(x)是从Hn→H已知的多维函数,X=(x1,x2……,xd)(xi∈[x(min)i, x(max)i]),[x(min)i, x(max)i]为各分量在d维解空间中Ω的取值范围,X是对应该算法中粒子的位置。PSO的核心思想是:粒子的速度和位置是通过跟踪粒子当前局部最优和全局最优解来进行更新的,达到终止条件所得到的最优解即是问题的最优解。粒子的更新公式为:

其中,X(k)是粒子的当前位置,V(k)是粒子的当前速度,Xpbest为当前粒子的局部最优点,Xgbest为当前粒子群的全局最优点,rand1()和rand2()是在0~1之间的随机数,c1和c2为学习因子,w是加权系数。

PSO中的控制参数(如惯性权重、学习因子等)决定了该算法的优化性能,这些相关的参数选取的规则如下[5]

粒子数目:粒子数目的多少需要根据问题的复杂程度决定。通常情况下粒子取20~40个便能解决一般的优化问题,10个粒子可以解决更简单的优化问题,如果是复杂的优化问题,就需要更多的粒子(100以上)。

粒子的维度:粒子的维度就是问题解的维度,由优化的问题决定,也就是参数优化中需要优化的参数个数。(www.daowen.com)

粒子的范围:粒子在每一维可以设定不同的取值范围,这是由优化问题决定。

最大速度Vmax:一般最大速度设置为粒子的范围宽度,它决定了在一个循环中粒子的最大的移动距离。

学习因子:粒子的学习能力是有学习因子决定了,它表征了粒子自我总结的能力以及向其他优秀个体学习的能力,它的取值范围为0~4,通常我们取c1=c2=2,当然也可以取不同的值,如同步或异步变化的学习因子。

惯性权重:也称为加权系数,它使粒子具有探索开发的能力,取值范围是0~1,也有很多其他的方法,如自适应法、常数法等。

粒子群算法流程如下:

(1)设置相关参数,如粒子的寻优空间、粒子的维度以及种群规模等。

(2)初始化粒子的位置和速度。

(3)将粒子个体的当前位置设置为该粒子的最优位置,粒子中最佳的位置设置为全局最优位置。

(4)根据式(4-2)、式(4-3)更新粒子的位置与速度。

(5)根据粒子的适应度更新粒子的个体最优位置和全局最优位置,同时更新粒子的适应度。

(6)判断算法是否结束。若结束返回当前全局最优位置,算法结束;否则,返回步骤(4)。

粒子群算法与其他进化算法,如遗传算法、进化策略、进化规划等具有很多共同之处:

(1)粒子群算法和其他进化算法相同,都使用“种群”概念,用于表示一组解空间中的个体集合。两者都随机初始化种群,而且都使用适应值来评价系统,而且都根据适应值来进行一定的随机搜索。两个系统都不是保证一定找到最优解。

(2)如果将粒子所持有的最好位置也看作种群的组成部分,则粒子群的每一步迭代都可以看作是一种弱化的选择机制。在进化策略算法中,子代与父代竞争,若子代具有更好的适应值,则子代将替换父代,而PSO算法的进化方程式也具有与次类似的机制,其唯一的差别在于,粒子群算法只有当粒子的当前位置与所经历的最好位置相比具有更好的适应值时,其粒子所经历的最好位置才会唯一地被该粒子当前的位置所替代。可见,PSO算法中也隐藏着一定形式的“选择”机制。

(3)在遗传算法中存在着交叉(crossover)和变异(mutation)操作,粒子群算法中虽然在表面上不具备这样的操作,但在本质上却有相通之处。粒子群算法的速度更新公式(4-2)与实数编码的遗传算法的算术交叉算子很类似。通常,算术交叉算子由两个父代个体的线性组合产生两个子代个体,而在PSO算法的速度更新公式(4-2)中,如果不考虑第一项,也就是带惯性权重的速度项,就可以将公式理解成由两个父代个体产生一个子代个体的算术交叉运算。从另一个角度上看,同样不考虑第一项,速度更新方程也可以看作是一个变异算子,其变异的强度大小取决于个体最好位置和全局最好位置之间的距离,可以把个体最好位置和全局最好位置看作父代,变异就可以看作是由两个父代到子代的变异。至于前面略去的惯性速度项,也可以理解为一种变异的形式,其变异的大小与速度相乘的惯性因子相关,惯性因子越接近1,则变异强度越小;越远离1,则变异强度越大。

粒子群算法与其他进化算法的区别在于:

(1)通常在进化算法的分析中,人们习惯将每一步迭代计算理解为用新个体(即子代)替换旧个体(即父代)的过程,而粒子群算法的进化迭代过程则是一个自适应过程,粒子的位置不是被新的粒子所代替,而是根据粒子的速度进行自适应变化。因此,粒子群算法与其他进化算法的一个不同点在于:粒子群算法在进化过程中同时保留和利用位置和速度的信息,而其他进化算法仅仅保留和利用位置的信息。

(2)如果将粒子群算法中的位置计算公式(4-3)看作为一个变异算子,那么粒子群算法就与进化规划很相似,而不同之处在于,在每一代,粒子群算法中的每个粒子只朝着一些根据群体的经验认为是好的方向飞行,而进化规划是通过一个随机函数变异到任何方向。也就是说,粒子群算法在优化计算过程中执行着一种有“意识”的变异。

(3)粒子群算法与其他进化算法的最显著区别在于,粒子群算法将粒子的位置和速度模型化,从而给出了一组显式的进化计算方程。

(4)在收敛性方面,GA已经有了较成熟的收敛性分析方法,并且可对收敛速度进行估计;而PSO这方面的研究还比较薄弱。尽管已经有简化确定性版本的收敛性分析,但将确定性向随机性的转化尚需进一步研究。

(5)在应用方面,PSO算法主要应用于连续问题,包括神经网络训练和函数优化等,而GA除了连续问题之外,还可应用于离散问题,比如TSP问题、货郎担问题、工作车间调度等。

从以上分析中看,基本PSO算法与其他进化算法有相似之处,但同时也具备其他算法不具备的特性,特别的是,PSO算法同时将粒子的位置与速度模型化,并给出了它们的进化方程。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈