粒子群优化算法及其相关研究综述
- 格式:doc
- 大小:148.82 KB
- 文档页数:11
基于粒子群算法的优化设计及其应用随着科技不断的发展和完善,计算机技术也在逐渐成熟,计算机算法在各个领域都得到了广泛的应用。
其中粒子群算法是一种比较常用的优化算法,它具有高效、简单、易于实现的特点,在许多领域都有广泛的应用。
1. 粒子群算法的基本原理粒子群算法是一种基于种群的随机优化算法,它的基本思想是将每个参数看成一只鸟的位置,而优化目标看作是寻找全局最优位置,鸟根据自身在搜索空间中的位置和速度进行搜索,不断更新位置、速度和全局最优解,从而优化目标函数并得出最佳参数。
具体来说,粒子群算法首先初始化一定数量的粒子,每个粒子都有一个位置向量和一个速度向量,然后通过不断的迭代寻找最优解。
在迭代的过程中,每个粒子跟踪自己的最优位置和全局最优位置,然后根据自身速度和各自的位置更新速度和位置,重复迭代过程直到满足预设的终止条件。
2. 粒子群算法的应用粒子群算法是一种通用的优化算法,它可以应用于各个领域,下面列出几个常见的应用案例。
2.1 电力优化电力系统中的负荷预测、停电预测和电力调度等问题通常都是需要进行优化的,而粒子群算法可以为这些问题提供一种高效、快速、可靠的解决方法。
例如优化电力调度问题,可以利用粒子群算法搜索得到最佳出力组合,使得总成本最小且满足系统控制约束条件。
2.2 机器学习机器学习中的参数优化也是一个非常重要的问题,而粒子群算法正好可以为这类问题提供一种快速且高效的解决方法。
例如,可以使用粒子群算法优化神经网络的权重和偏差,从而提高预测的准确性和准确性。
2.3 计算流体力学在计算流体力学中,通常需要进行大量的参数优化和计算,而粒子群算法正好可以为这些问题提供一种快速、高效、精确的解决方案。
例如,可以使用粒子群算法优化流动分析中的物理参数,从而提高计算模型的准确性。
3. 粒子群算法的优缺点粒子群算法有一些明显的优点和缺点。
3.1 粒子群算法的优点(1)简单易懂,易于实现。
(2)快速收敛,不易陷入局部最优。
组合优化问题的粒子群算法求解研究随着信息科学的快速发展,计算机的应用越来越广泛。
尤其是在数据处理和决策分析方面,计算机算法的效率和准确性成为决定因素。
在这些应用场景中,组合优化问题是计算机科学的核心之一。
组合优化问题是指一些问题,它们可以由多个离散的变量来描述,而且这些变量之间存在着某种特定的组合关系。
在实际应用中,组合优化问题涉及到许多不同的领域,如图像处理、网络优化、物流和生产等。
粒子群算法(PSO)是一种在组合优化问题中广泛应用的算法。
它被视为一种群体智能算法,可以有效地解决多种组合优化问题。
本文将介绍粒子群算法及其在组合优化问题中的应用。
一、粒子群算法粒子群算法是一种仿生算法程序,它的运行方式类似于鸟类、鱼类或昆虫等动物的行为。
每个粒子可以被视为一只鸟或一条鱼,它在搜寻空间中移动并改变自身状态,同时也通过 information-velocity和experience-velocity改变周围其他粒子的状态。
在粒子群算法中,每个粒子都有一组搜索空间内的潜在解,以及相应的目标函数值。
在粒子群算法中,每个粒子都有一组表示解决方案的待优化参数。
给定一个合适的目标函数或优化问题,粒子群算法通过迭代和互相学习来寻找最优解。
算法的主要流程如下:1. 粒子的初始化:初始化搜索范围内的粒子和速度。
2. 计算目标函数:针对目标函数进行数值计算。
例如,假设我们要寻找函数的最小值,我们需要计算函数的值并用适当的代价函数来评估每个可能解的好坏程度。
3. 更新粒子速度和位置:根据经验和社会信息,更新每个粒子的位置和速度。
4. 判断是否满足任何停止标准:通常是根据优化算法的收敛标准,如果系统达到了这些标准,算法将停止迭代。
5. 返回解决方法:在达到收敛标准后,算法将返回最优解或一个近似解。
二、组合优化问题中的粒子群算法组合优化问题的求解是许多实际问题中必须解决的一个核心问题。
由于这种问题的解决需要对大量的离散变量进行组合,因此在求解过程中存在着高维度、非线性、困难度高等弊端,特别是在大规模的优化问题中更是如此。
基于改进粒子群算法的工程设计优化问题研究在当今的工程领域,优化设计问题至关重要。
它不仅能够提高工程产品的性能和质量,还能有效降低成本和缩短研发周期。
而粒子群算法作为一种强大的优化工具,在解决工程设计优化问题方面展现出了巨大的潜力。
然而,传统的粒子群算法在某些复杂的工程问题中可能存在局限性,因此对其进行改进成为了研究的热点。
粒子群算法的基本原理是模拟鸟群觅食的行为。
在算法中,每个粒子代表问题的一个潜在解,它们在解空间中飞行,通过不断调整自己的速度和位置来寻找最优解。
粒子的速度和位置更新取决于其自身的历史最优位置和整个群体的历史最优位置。
这种简单而有效的机制使得粒子群算法在处理许多优化问题时表现出色。
然而,在实际的工程设计优化中,问题往往具有高维度、多约束和非线性等特点,这给传统粒子群算法带来了挑战。
例如,在高维度空间中,粒子容易陷入局部最优解;多约束条件可能导致算法难以满足所有约束;非线性特性则可能使算法的搜索变得困难。
为了克服这些问题,研究人员提出了多种改进粒子群算法的策略。
其中一种常见的方法是引入惯性权重。
惯性权重的引入可以控制粒子的飞行速度,使其在搜索过程中更好地平衡全局搜索和局部搜索能力。
较大的惯性权重有利于全局搜索,能够帮助粒子跳出局部最优;较小的惯性权重则有助于在局部区域进行精细搜索,提高解的精度。
另一种改进策略是对粒子的学习因子进行调整。
学习因子决定了粒子向自身历史最优位置和群体历史最优位置学习的程度。
通过合理设置学习因子,可以提高算法的收敛速度和搜索效率。
此外,还有一些研究将粒子群算法与其他优化算法相结合,形成混合算法。
例如,将粒子群算法与遗传算法相结合,利用遗传算法的交叉和变异操作来增加种群的多样性,避免算法早熟收敛。
在工程设计优化问题中,改进粒子群算法已经取得了许多显著的成果。
以机械工程中的结构优化设计为例,通过改进粒子群算法,可以在满足强度、刚度等约束条件的前提下,优化结构的形状、尺寸和材料分布,从而减轻结构重量,提高结构的性能。
粒子群优化算法研究进展粒子群优化算法(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,灵感来自鸟群觅食行为。
粒子群算法最早由Eberhart和Kennedy于1995年提出,并在之后的二十多年间得到广泛应用和研究。
在粒子群优化算法中,解空间被看作是粒子在多维空间中的运动轨迹。
每个粒子代表一个解,通过移动位置来最优解。
粒子根据自身的历史最优解和群体中最优解进行更新,以找到全局最优解。
粒子群算法的研究进展可以从以下几个方面来概括。
首先,对基本粒子群算法的改进。
由于基本粒子群算法存在易陷入局部最优解的问题,研究者提出了一系列的改进方法。
例如,引入惯性权重控制粒子运动的方向和速度,改进了粒子的更新策略;引入自适应策略使粒子能够自适应地调整自身的行为。
其次,对约束优化问题的处理。
在实际应用中,许多优化问题还需要满足一定的约束条件。
针对约束优化问题,研究者提出了多种处理方法,如罚函数法、外罚函数法和修正的粒子群优化算法等,用于保证过程中的可行性。
此外,粒子群算法的应用领域也得到了广泛拓展。
粒子群算法已成功应用于许多领域,如函数优化、神经网络训练、图像分割、机器学习等。
在这些领域的应用中,粒子群算法往往能够找到较好的解,并具有较快的收敛速度。
最后,还有一些衍生算法被提出。
基于粒子群算法的思想,研究者提出了一些衍生算法,如混合算法和改进算法等。
这些算法在解决特定问题或克服粒子群算法的局限性方面具有一定的优势。
总结起来,粒子群优化算法是一种高效、简单而又灵活的优化算法,其研究进展包括对基本算法的改进、对约束优化问题的处理、应用领域的拓展以及衍生算法的提出等。
未来的研究方向可能包括进一步改进算法的性能、提升算法的收敛速度以及应用于更广泛的领域等。
基于粒子群算法的优化研究近年来,随着科技的不断发展,计算机技术的进步以及人工智能领域的发展,优化算法成为了解决各种实际问题的强有力工具。
在众多的优化算法中,粒子群算法(Particle Swarm Optimization,PSO)以其简单易理解、易于实现和优良的全局搜索性能,成为了最受欢迎的一种优化算法之一。
粒子群算法最初是由美国伊利诺伊理工大学的Eberhart和Kennedy在1995年提出,其灵感来源于鸟群或鱼群等真实生物群体的行为。
在粒子群算法中,解被表示为一组粒子(particles),每个粒子都有自己的位置和速度。
每个粒子根据自己的历史最优解和群体的历史最优解对自己的速度和位置进行更新,从而实现优化搜索目标。
粒子群算法具有易于理解、适用性强和全局搜索性能优越等特点,在各种实际问题中都得到了广泛应用。
例如,在工程、物流、金融等领域中,粒子群算法被广泛应用于参数优化、数据挖掘、路径规划等问题的求解。
此外,粒子群算法也在神经网络、模糊系统等领域中得到了广泛应用。
粒子群算法的核心思想是通过每个粒子的个体历史最优值和群体历史最优值的影响来指导粒子的搜索方向。
具体地,粒子的速度和位置更新公式如下:$$V_i^t=wV_i^{t-1}+c_1r_1(p_i^t-X_i^t)+c_2r_2(g^t-X_i^t)$$$$X_i^t=X_i^{t-1}+V_i^t$$其中,$V_i^t$表示粒子的速度,在第$t$次迭代时,$i$表示第$i$个粒子。
$X_i^t$表示第$i$个粒子的位置,表示在第$t$次迭代时,粒子$i$的位置。
$p_i^t$表示粒子$i$的个体历史最优值,即粒子$i$在历史上所找到的最优解。
$g^t$表示群体历史最优值,即所有粒子历史上所找到的最优解。
$c_1$、$c_2$为常数,$r_1$、$r_2$均为[0,1]之间的随机数。
$w$为惯性权重,用于控制粒子的搜索范围。
不同于一些经典的优化算法,如遗传算法、模拟退火等,粒子群算法是一种群体式(Population-Based)的优化算法。
基于粒子群算法的优化问题求解研究一、引言优化问题在现代科学技术发展中扮演着非常重要的角色,针对不同的实际问题,不同的优化方法都可以被应用。
其中,粒子群算法(Particle Swarm Optimization,PSO)是一种适用于求解优化问题的有效算法。
本文将针对基于粒子群算法的优化问题求解展开研究。
二、粒子群算法概述粒子群算法是一种群智能算法,它源于对鸟群捕食过程中所形成的协同性的研究,该算法通过不断调整在解空间中移动的一群粒子的位置与速度,最终得到最优解。
具体的粒子群算法流程如下:1. 随机初始化粒子群每个粒子的位置及速度;2. 按照约定的适应度函数计算每个粒子的适应度,记录全局最优适应度;3. 根据当前位置和速度,更新粒子的位置和速度,直至满足停止条件。
三、优化问题求解中的粒子群算法应用粒子群算法在优化问题求解中的应用可以分为以下几个步骤:1. 问题建模:将需要求解的优化问题转化成适应度函数;2. 参数设置:包括粒子数、最大迭代次数、惯性权重等;3. 粒子初始化:随机生成一定数量的粒子,并初始化它们的位置和速度;4. 适应度函数计算:根据粒子当前位置计算对应适应度;5. 群体信息更新:根据粒子当前位置和历史最优位置,更新粒子速度和位置;6. 全局最优位置更新:记录历史最优位置,并更新全局最优适应度;7. 结果输出:输出最终结果。
四、粒子群算法优化思路在实际的求解优化问题时,需要运用一些技巧优化粒子群算法,以确保算法具有更好的性能。
下述是一些优化思路:1. 精度控制:当适应度值的差异达到预设的精度时,停止迭代,提高求解精度;2. 自适应惯性权重:为避免粒子陷入局部最优解,引入自适应惯性权重,使粒子在搜索早期快速探索解空间,而在搜索后期逐渐收敛于最优解;3. 多种启发式算子综合使用:对于不同的优化问题,运用不同的启发式算子来更新粒子位置和速度,综合使用比单一使用效果更佳;4. 多种策略综合使用:对于不同的优化问题,采用不同的策略来选择适应度函数、确定惯性权重、粒子初始化等操作,以达到更好的优化效果。
学术研究中的粒子群优化算法摘要:粒子群优化算法是一种基于群体智能的优化算法,具有易于实现、鲁棒性强等特点,被广泛应用于各种优化问题。
本文主要介绍了粒子群优化算法的基本原理、算法流程、参数选择和改进方法,并讨论了其在学术研究中的应用。
一、引言随着计算机科学和人工智能技术的不断发展,优化算法在各个领域得到了广泛应用。
粒子群优化算法(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,通过模拟鸟群觅食过程中的行为,寻找最优解。
与其他优化算法相比,PSO具有易于实现、鲁棒性强、适用范围广等特点,因此在学术研究和工业应用中得到了广泛关注。
二、粒子群优化算法的基本原理粒子群优化算法是一种基于种群的随机搜索算法,通过不断迭代寻找最优解。
在算法中,每个粒子表示一个潜在解,其位置和速度反映了该解的质量。
每个粒子都会根据历史最佳解(Best Personal Best)和群体最佳解(Best Global Best)来更新自己的位置和速度。
在每一代,粒子会根据适应度函数评估自己的质量,并不断更新最佳解。
最终,算法将收敛于一群局部最优解,其中包含真实的最优解。
三、粒子群优化算法的流程1.初始化:随机生成一组粒子,每个粒子的位置和速度表示一个潜在解。
2.适应度评估:根据适应度函数评估每个粒子的质量,并记录最佳解。
3.更新最佳解:每个粒子根据自身最佳解和全局最佳解更新位置和速度。
4.更新粒群:将新生成的粒子加入粒群中,并根据粒群大小调整粒子的数量。
5.终止条件:当满足终止条件(如达到最大迭代次数或最优解的改变小于某个阈值)时,算法停止并输出全局最佳解。
四、参数选择和改进方法粒子群优化算法的参数包括种群规模、迭代次数、学习因子等。
这些参数的选择对算法的性能有重要影响。
合适的参数设置可以提高算法的搜索效率和精度。
此外,为了进一步提高算法的性能,可以对PSO进行一些改进,如引入惯性权重的自适应调整、引入惯性权重的混合PSO、离散空间PSO等。
求解云计算任务调度的粒子群优化算法研究云计算是一种新兴的计算技术,它将计算任务分配到云服务器上,从而提供充足的资源和更强大的性能。
但是,由于计算任务的复杂性和数量的增加,对于任务调度的要求也日益提高。
粒子群优化算法(PSO)在空间搜索中具有良好的性能,可以有效地帮助我们优化计算任务调度问题,而这正是本文要研究的课题。
本文将通过深入研究粒子群优化算法,探讨如何将粒子群优化算法用于云计算任务调度。
一、粒子群优化算法介绍粒子群优化算法(PSO)是一种基于智能体的优化算法,用于在各种实际应用中优化给定的目标函数。
它是一种群体智能的算法,模拟大量的粒子、昆虫或鸟类飞行的运动行为以找到最优解。
该算法是由James Kennedy和Russell最先提出的,并被许多人用于求解大规模优化问题,其中包括复杂学习、决策、控制、预测和计算任务。
PSO算法的基本概念是模拟群体智能和规则,通过粒子(体系结构)的迭代搜索来解决优化问题,使粒子从一组初始位置中以最小的空间进行优化搜索。
算法的基本思想是:每个粒子都有自己的速度和位置,它们的运动由当前位置和新位置的最优值决定,两者之间的速度差称为参数,用于控制粒子的运动。
当每个粒子搜索到更佳的位置时,它会更新自己的位置,而其他粒子将根据该位置更新自己的位置,直到所有粒子都能够达到全局最优解为止。
二、粒子群优化算法在云计算任务调度中的应用在云计算任务调度中,PSO算法可以作为一个强大的工具来优化任务调度问题,以提高任务调度的效率和准确性。
当云环境中的任务变得复杂时,PSO算法可以帮助我们解决众多调度任务所面临的挑战。
首先,PSO算法可以帮助解决任务调度的细节问题,以有效地确定调度的结果。
它可以从许多不同的策略中构建一个最佳调度方案,从而消除权衡最优策略所存在的风险。
此外,由于PSO算法是基于吸引力和排斥力的规则,所以它可以更容易地运行任务,并在有限的时间内完成任务调度。
另外,PSO算法还可以提高云计算任务调度的灵活性,这是任务调度的一个重要方面。
粒子群优化算法及其应用一、粒子群优化算法是啥呢?哎呀,粒子群优化算法啊,就像是一群超级聪明的小粒子在找宝藏呢!它是一种超级有趣的算法哦。
你想啊,就好比有好多小粒子在一个大大的空间里跑来跑去,每个粒子都带着自己的小目标,它们一边跑一边互相交流经验,就像小伙伴们一起做游戏一样。
这些粒子都有自己的位置和速度,它们根据自己的经验和小伙伴们的经验来调整自己的路线,想要找到那个最好的地方,也就是最优解啦。
二、粒子群优化算法的原理这个算法的原理其实也不是特别复杂啦。
每个粒子都有自己的当前位置,这就好比是它现在走到哪儿了,还有速度,就像是它跑得多快。
然后呢,每个粒子还有自己记忆中的最好位置,这个位置就是它到目前为止找到的最棒的地方啦。
同时呢,整个粒子群也有一个大家公认的最好位置。
粒子们就根据自己的速度、自己的最好位置还有群体的最好位置来调整自己下一次要跑的方向和速度呢。
就像是大家在一个迷宫里找出口,每个人都有自己觉得最可能是出口的地方,同时也知道大家普遍认为最可能是出口的地方,然后根据这些信息来决定下一步往哪儿走。
三、粒子群优化算法的应用1. 在工程优化中的应用这可太有用啦。
比如说在设计一个机械零件的时候,要考虑很多因素,像重量、强度、成本之类的。
粒子群优化算法就可以像一个超级助手一样,在众多可能的设计方案里找到那个最优的。
就好像是从一堆形状各异的积木里,找出搭出最稳固又最漂亮的那个组合的方法。
2. 在函数优化中的应用对于那些复杂的函数,想要找到它的最大值或者最小值可不容易。
但是粒子群优化算法就可以大显身手啦。
它能快速地在函数的定义域里穿梭,找到那个让函数值最大或者最小的点,就像在一片大草原上找到最高或者最低的那片草一样神奇。
3. 在神经网络中的应用神经网络有时候就像一个调皮的孩子,参数很多很难调整到最好的状态。
粒子群优化算法就可以来帮忙啦。
它可以调整神经网络的参数,让神经网络学习得更快更好,就像给这个调皮孩子请了一个超级厉害的家教。
求解云计算任务调度的粒子群优化算法研究云计算任务调度是指在云计算环境中,将任务分配给合适的计算资源进行执行的过程。
任务调度的效率和质量直接影响着云计算系统的性能和用户体验。
为了优化任务调度的结果,研究者提出了多种优化算法,其中一种经典的算法是粒子群优化算法(Particle Swarm Optimization, PSO)。
本文将重点研究云计算任务调度的粒子群优化算法。
粒子群优化算法是一种基于模拟群体行为的优化算法,最初在20世纪90年代由美国Indiana University的Eberhart和Kennedy提出。
它通过模拟鸟群寻找食物的行为,来求解优化问题。
算法的核心思想是通过粒子之间的迭代和信息共享,不断更新粒子的位置和速度,从而找到最优解。
在云计算任务调度中,粒子群优化算法可以将任务表示为粒子的位置,计算资源表示为粒子的速度。
算法的基本流程如下:1.确定问题的目标函数。
云计算任务调度的目标一般是最小化任务的执行时间、最大化系统的利用率或者最小化能源消耗等。
目标函数应该能够评估出各个解的优劣程度。
2.初始化粒子群的位置和速度。
每个粒子代表一个任务,位置表示任务的调度方案,速度表示任务的执行时间或其他指标。
位置和速度的初始化可以采用随机生成的方式。
3.对每个粒子计算适应度值,即目标函数的值。
根据适应度值的大小,更新粒子的个体最优位置和整个群体的全局最优位置。
4.根据粒子的个体最优位置和全局最优位置,调整粒子的速度和位置。
可以借鉴其他粒子群优化算法的更新公式,例如线性或非线性的速度和位置更新公式。
5.判断终止条件,如果满足停止条件(例如达到最大迭代次数或目标函数值小于一些阈值),则输出最优解;否则返回步骤3继续迭代。
在云计算任务调度中,粒子群优化算法有以下优势:1.全局能力强。
粒子通过全局最优信息的引导,具有较好的全局性能,能够找到问题的最优解或近似最优解。
2.并行计算效率高。
粒子群算法的计算过程中粒子之间的更新是独立的,可以利用并行计算的特性,提高算法的运行效率。
基于粒子群算法的多目标优化问题研究1.引言多目标优化问题是现代工程设计和决策中经常遇到的问题之一,因为现实中往往需要优化多个目标。
传统的单目标优化问题只考虑一个目标函数,因此无法很好地解决多目标优化问题。
粒子群算法(Particle Swarm Optimization,PSO)是一种启发式优化算法,它已经广泛应用于多个领域中的优化问题。
本文将介绍粒子群算法以及基于粒子群算法的多目标优化问题研究。
2.粒子群算法原理粒子群算法是一种通过模拟自然界中鸟群或鱼群等生物群体行为来进行优化的算法,该算法由Eberhart和Kennedy在1995年提出。
粒子群算法将优化问题看作是在一个多维空间中的搜索问题,将解空间中的每一个可能的解看作一个粒子,各个粒子按照一定规则进行搜索,不断更新粒子位置和速度来寻找全局最优解。
在粒子群算法中,每个粒子都有位置和速度两个向量,位置向量表示当前的解,速度向量表示粒子的移动方向和速度大小。
在搜索过程中,每个粒子会记录自己目前找到的最优解,而全局最优解则是所有粒子的最优解中的最优解。
搜索过程中,粒子按照自身的最优解和全局最优解来调整速度和位置,以期望找到某个局部最优解,最终在搜索过程结束时得到全局最优解。
3.基于粒子群算法的多目标优化问题研究多目标优化问题需要同时优化多个目标函数,这些目标函数往往是相互矛盾的,因此需要找到一组解,这些解可以尽可能地满足多个目标函数的要求。
本章将介绍基于粒子群算法的多目标优化问题研究的方法。
3.1 基本方法在基于粒子群算法的多目标优化问题研究中,最常用的方法是多目标粒子群算法(Multi-objective Particle Swarm Optimization,MOPSO)。
该算法通过对粒子速度和位置的调整,以期望找到多个目标函数的 Pareto 前沿(Pareto Front),并从中选择最优解。
MOPSO 算法中,每个粒子的位置和速度向量都需要根据多个目标函数来计算。
收稿日期:2006-09-16基金项目:国家自然科学基金项目(60572148)作者简介:董元(1982-),女,陕西丹凤人,西安电子科技大学综合业务网国家重点实验室研究生粒子群优化算法发展综述董元,王勇,易克初(西安电子科技大学综合业务网国家重点实验室,陕西西安710071)摘要:粒子群优化(PSO)算法是一种源于人工生命和演化计算理论的优化技术.PSO通过粒子搜寻自身的个体最好解和整个粒子群的全局最好解来更新完成优化.该算法原理简单,所需参数较少,易于实现,目前已经应用到很多领域.文章阐述了基本PSO的原理,给出了各种改进技术,并展望了PSO的发展方向.关键词:进化算法2粒子群优化2混合算法2自适应2异步模式中图分类号:TL811+.11文献标识码:A文章编号:1008-3030(2006)04-0028-060引言优化是个古老的课题,它所研究的问题是在众多方案中寻找最优方案.二十世纪八十年代以来,一些新颖的优化算法得到了迅速发展.在一定程度上模拟了人脑的组织结构的人工神经网络(ANN)2借鉴了自然界优胜劣汰的进化思想的遗传算法(GA)2受启发于自然界蚂蚁寻径方式的蚁群算法(ACO)2源于物理学中固体物质的退火过程思路的模拟退火(SA)、模拟了人类有记忆过程的智力过程的禁忌搜索(TS).这些算法有个共同点:都是通过模拟或揭示某些自然界的现象和过程得到发展,在优化领域称之为智能优化算法(intelligentoptimizationalgorithms).Eberhart和Kennedy于1995年提出的粒子群优化算法(particleswarmoptimization,PSO)是源于群智能和人类认知的学习过程而发展的另外一种智能优化算法.PSO算法非常适合于求解连续函数的优化问题,目前其应用已扩展到组合优化问题[1]和离散型优化等问题.由于其原理简单,所需参数较少且易于实现的特点,PSO已经得到了众多学者的重视和研究.1PSO基本原理1.1基本PSO粒子群优化算法是基于群体的演化算法,其思想来源于人工生命和演化计算理论.设想这样一个场景:一群鸟在随机搜寻食物,在这个区域里只有一块食物,所有的鸟都不知道食物在那里,但是它们知道当前的位置距离食物还有多远.那么找到食物的最简单有效的策略就是搜寻目前距离食物最近的鸟的周围区域.PSO算法就是从这种生物碱种群行为特性中得到启发并用于求解优化问题.在PSO中,每个优化问题的潜在可能解都可以想象成维搜索空间上的一个点,我们称之为“粒子(Particle)”.所有的粒子都有一个被目标函数决定的适应值(fitnessvalue),在每次迭代中,通过跟踪两个极值来更新自己:第一个就是粒子本身所找到的最好解,称为个体极值点(用Pbest表示其位置),另一个是整个种群目前找到的最好解,称为全局极值点(用Gbest表示其位置).粒子的速度和位置更新方程为velid(t+1)=velid(t)+acc1*diag[e1,e2,…,eR]id1*(gbest-pid(t))+acc2*diag[e1,e2,…,eR]id2*(pbest-pid(t))(1)pid(t+1)=pid(t)+velid(t)(2)其中velid(t+1)为粒子i的速度矢量,eR是值在区间的随机矢量,acc1,acc2是加速系数(或称学习因第20卷第4期2006年12月商洛学院学报JournalofShangluoUniversityVo1.20No.4Dec.2006子),分别调节向全局最好粒子和个体最好粒子方向飞行的最大步长[2],通常,令acc1=acc2=2.基本PSO的流程见图1.第一步:初始化粒子群设定加速系数acc1,acc2,最大进化代数,初始搜索点的位置及其速度,每个粒子的Pbest值为当前位置.第二步:计算粒子适应度值已知各粒子的位置,根据适应度函数(如最小均方误差函数)求解各粒子的适应度值.第三步:求解Pbest和Gbest值如果粒子的适应度值好于该粒子当前的个体极值,则将Pbest设置为该粒子的位置,且更新个体极值.如果所有粒子的个体极值中最好的好于当前的全局极值,则将Gbest设置为该粒子的位置,记录该粒子的序号,并更新全局极值.第四步:判别是否满足最优化条件若按照适应度函数最优判别原则(如均方误差为0)已达到最优化条件,或当前迭代次数达到了最大进化代数,则停止迭代,输出最优解.否则更新粒子.第五步:更新粒子的位置和速度用式(1)和式(2)对每一个粒子的速度和位置进行更新.再转到第二步,进行新一轮迭代.以上算法描述中,粒子跟踪两个极值,自身极值和种群全局极值,称为全局版本(globalversion)PSO.另一种为局部版本(localversion)PSO,粒子除了追随自身极值外,不跟踪全局极值而是追随拓扑近邻粒子当中的局部极值Lbest.两者收敛速度和跳出局部最优的能力有所差异[3].全局模型通常收敛到最优点的速度较局部结构快,但更易陷入局部极小.在实际应用中,可以先用全局PSO找到大致的结果,再用局部PSO进行搜索.1.2二进制PSOPSO最初是从解决连续优化问题发展起来的,Eberhart等人又提出了离散二进制PSO[4].限制每一维位置和Pbest为1或者为0,速度不作这样的限制,用速度来更新位置时,如果速度高一些,粒子的位置更有可能选1,速度低一点则选0,阈值在[0,1]之间.则二进制PSO的公式为ifρidk+1<sig(velidk+1)thenpidk+1=1elsepidk+1=0(3)其中sig(x)=1/(1+exp(-x))向量ρidk+1的各个分量是[0,1]之间的随机数.为了防止Sigmoid函数饱和,可以将速度限制在[-4,+4]之间,其他部分与基本连续PSO类似.2PSO的改进与发展正如其他新生的事物一样,PSO算法初始时也不可能非常完善,在实际应用时,往往出现早熟收敛和全局收敛性能差等缺点.在PSO中gbest(或Lbest)将信息传给其他粒子,是单向的信息流动,多数情况下,所有的粒子可能更快地收敛于最优解,且每个粒子在算法结束时仍然保持着其个体极值.PSO算法对种群大小不十分敏感,收敛快,但也存在着精度较低,易发散等缺点.若加速系数、最大速度等参数太大,粒子群可能错过最优解,算法不收敛H 而在收敛的情况下,由于所有的粒子都向最优解方向飞去,粒子趋向同一化,失去了多样性,使得后期收敛速度明显变慢,同时算法收敛到一定精度时,无法再继续优化.2.1标准PSO2.1.1惯性权重(inertiaweight)的引入为了更好的控制算法的寻优能力,Shi等人在式(1)中引入了惯性权重ω[5],则式子为velid(t+1)=ω*velid(t)+acc1*diag[e1,e2,…,eR]id1*(gbest-pid(t))+acc2*diag[e1,e2,…,eR]id2*(pbest-pid(t))(4)用ω来控制前面的速度对当前速度的影响,较大的ω可以加强PSO的全局搜索能力,较小的ω能加强局部搜索能力[6].文献[7]中导出了惯性权重PSO的收敛性条件,当ω>1/2(acc1+acc2)-1,ω<1,acc1+acc2>0时,粒子必定收敛到极值点.初始时,Shi将ω取值为常数,但后来的试验发现,动态惯性权值能够获得比定值更好的寻优结果,出现了许多动态权重PSO方法,如线性递减权值,模糊惯性权重[8],自适应第4期29董元,王勇,易克初:粒子群优化算法发展综述权重等.目前采用较多的惯性权值是Shi建议的线性递减权值(linearlydecreasingweight),即ω(t)=(ωint-ωend)(Tmax-t)/+ωend(5)这样使得PSO在开始时探索较大的区域,较快地定位最优解的大致位置,随着权重的减小,粒子速度减慢,开始精细的局部搜索.当待解问题很复杂时,该法使得PSO在迭代后期全局搜索能力不足,导致不能找到要求的最优解,这可以用自适应更改权重来克服.2.1.2收缩因子(constrictionfactor)的引入Clerc建议采用收缩因子来保证PSO算法收敛[9].这种方法的速度更新方程为velid(t+1)=χ・(γelid(t)+acc1*diag[e1,e2,…,eR]id1*(gbest-pid(t))+acc2*diag[e1,e2,…,eR]id2*(pbest-pid(t))(6)其中,χ=2/|2-#-#(#2-4#)1/2为压缩因子,#=acc1+acc2,且#>4.收缩因子法可使粒子轨迹最终收敛,且可以有效搜索不同的区域,能得到高质量的解,若与此同时将每维的最大速度设置为一维搜索空间的大小,则可得到更好效果.2.2复合PSO与其他进化算法类似,PSO算法也有一些控制自身特性的参数,它们与被优化的问题相关,其设置将严重影响算法的寻优和收敛特性[10].这些参数的确定需由用户选定,但尚无成熟规则可循,只能凭借研究经验做出选择,十分困难.复合PSO将PSO控制参数的选取也作为一个优化问题,在搜索过程中逐代优选.文献[7]中提出的引入简单遗传算法,组合为复合粒子群优化算法.实验结果表明这种复合PSO的搜索精度有明显提高,但计算时间有所增加,收敛速度有所下降.2.3自适应PSOPSO算法在应用当中碰到的其中一个主要问题就是种群多样性的损失过快.对这个问题,提出的策略有:空间邻域法[11],邻域拓扑法[12],社会趋同法[13]等.这些不同的方法可归结为两类思路,前馈和反馈.直接控制PSO算法的参数来保持种群多样性为前馈策略,根据种群进化过程多样性测度函数来保持种群多样性为反馈策略.由于反馈策略可以随时监控进化信息,对复杂的系统通过引入反馈来保持种群多样性更为有效.2.3.1权重的自适应调节寻优初期,为了增加算法的全局搜索能力,惯性权重应随种群多样性的增加而递增K 寻优后期,为了增加算法的局部搜索能力,惯性权重则应随种群多样性的减少而递减.按上述原则设计的方法具有自动适应粒子在搜索过程中不同分布情况而调整搜索方向的功能.基于上述理念,取惯性权重为平均粒距的线性函数[7]:ω(t)=A・D(t)+B(7)通过与平均粒距的函数关系,自适应地调节惯性权重,使之动态地适应进化过程.提高了计算精度和收敛速度.2.3.2序列生境技术Beasley等提出的最初是用在遗传算法中的序列生境技术可以系统地访问每一个全局极[14].其思想是在找到每一个极值后,都用下降函数来自适应地改变适应值函数,如此算法就不会再回到该极值.虽然将序列生境技术引入到PSO会引起参数选择,更多局部极值等问题,但该方法能够枚举所以全局极值,在多目标优化问题具有一定意义.2.3.3自适应改变目标函数为了减小定位所有全局极值的花费,Parsopoulos等将自适应改变目标函数方法应用到了PSO中[6].提出一个两步的转化过程来改变目标函数,以防止PSO返回已经找到的局部极值.该法虽然增加了计算量,但能跳出局部最优,有效定位全局最优点,有助于PSO稳定收敛.但该方法不能枚举全部最优.2.3.4自适应比例项为原始PSO算法的速度限制中添加一比例项来控制最大速度限制.若,则K 若vid>(1-(t/T)h)Vmax,则vid=(1-(t/T)h)Vmax.若vid<-(1-(t/T)h)Vmax,则vid=-(1-(t/T)h)Vmax.比例项的存在使算法搜索范围逐渐减小.2006年12月商洛学院学报30这种方法,不仅加快了收敛速度,而且提高了最优解的可靠性,但算法陷入局部最优的可能性也增加了.2.4混合PSO借鉴遗传算法的思想,研究者们提出了混合PSO算法(HybridPSO)的概念.由于PSO搜索过程很大程度上依赖Pbest和Gbest,它的搜索区域这两个极值的限制,选择机制的引入将会减弱其影响.混合PSO算法就是将基本PSO算法和选择机制相结合而得到的.Angeline提出的混合PSO主要应用PSO的基本机制以及演化计算所采用的自然选择机制[15],该法提高了PSO的局部搜索能力,但同时削弱了全局搜索能力.Noel等人提出的一个利用梯度信息的混合PSO算法[16],其主要思想是利用梯度信息使算法搜索到局部最优点,该方法的最大特点是不需要邻居结构,可节省标准PSO算法需要比较的计算量,加快了收敛速度.Wachowiak等人提出的将Powell方法嵌入PSO算法中[17],以提高解的精度.Parsopoulos等人提出采用非线性单纯形方法(NSM)来初始化PSO[18].Juang提出将GA与PSO混合的算法[19],在文献[20]中,Shi等人也介绍了两种混合GA和PSO的方法:PSO-GA并行混合进化算法(PGPHEA)和PSO-GA串行混合进化算法(PGSHE).混合PSO算法由于局部搜索能力增强,可找到最优点,且可克服早熟收敛问题,但是以计算时间的增加为代价的.2.5异步PSO对PSO的改进,上述算法的实现基本上都集中在同步处理上,即各个粒子的每一次搜索行为都处在同一个迭代步中进行的.粒子在很大程度上失去了独立性,以至于最优粒子的信息不能及时的共享.文献[7]中提出PSO的异步模式,采用Java的多线程技术实现,把每个粒子的行为看成为一个独立的线程或进程,运行中的粒子充分表现出高度的独立性,而在种群层次上表现为异步性.实验表明,这种异步模式的收敛速度较同步模式有显著的提高.2.6其它PSO2.6.1协同PSO文献[21]提出了一种协同PSO,其基本思想是用K个相互独立的粒子群分别在D维目标搜索空间中的不同维度方向上进行搜索.在每一步迭代中,这K个粒子群相互独立地进行状态更新,粒子群之间不共享信息.计算适应值时,将每个粒子群中最优粒子的位置向量拼接起来,组成D维向量并代入适应函数计算适应值.这种协同PSO算法有明显的“启动延迟”现象,在迭代初期,适应值下降缓慢,收敛速度慢,但比基本PSO易于调出局部极小店,达到较高的收敛精度.2.6.2分层PSO分层PSO(H-PSO)中,粒子位置和速度的改变仅受到其自身当前最好位置和自身直接上层粒子的影响.所有粒子都被安排成树形,并且树的每个节点只有一个粒子,粒子在自己节点和父节点可以互相调换,更好位置的粒子向上移动.这种比较首先从最高层开始,然后按照宽度优先原则直到底层.其性能要优于标准PSO[22].2.6.3保收敛PSO若粒子当前位置恰是全局最好位置,将导致早熟,文献[23]提出对全局最好粒子用一个新的更新方程,方程将该粒子的位置复位到全局极值点,并且使其在全局最好位置附近产生一个随机搜索,其它粒子仍用原方程更新.该方法确保PSO收敛到局部最优,较基本PSO在收敛速度上有很大提高,但不能保证算法收敛到全局最优.3PSO的应用粒子群优化算法具有很强的通用性,且无需问题的特殊信息,因此其应用领域非常广泛.目前主要的应用领域包括:训练人工神经网络,跟踪动态系统,多目标优化问题,求解约束满足问题,与控制工程问题的结合,动力系统方面应用,数据挖掘,参数估计等.PSO是非线性连续优化问题、组合优化问题和混合整数非线性优化问题的有效优化工具.其在训练神经网络方面的应用已初具规模,现在已扩展到参数估计问题,多用户检测[24]和离散问题[25]等领域.总的来说,其它进化算法能够求解的问题或者能够转化为优化的问题,PSO算法均能够求解.第4期31董元,王勇,易克初:粒子群优化算法发展综述4结语PSO算法是一个新的基于群体智能的进化算法,其研究刚刚开始,远没有像遗传算法和模拟退火算法那样形成系统的分析方法和一定的数学基础,有许多问题还需要进一步研究.⑴PSO具有相对鲜明的生物社会特性,在实际应用中被证明是有效的,但是它的数学基础显得相当薄弱,缺乏深刻且具有普遍意义的理论分析.虽然已经有了一些关于其收敛性的分析[7],但目前其理论基础的研究仍然是个艰巨的课题.⑵利用不同问题的特点设计相应有效的算法,但PSO算法中的参数选择却依赖于具体问题.研究如何选择和设计参数,使其减少对具体问题的依赖,也将大大促进PSO算法的发展和应用.⑶PSO算法中粒子分布的拓扑结构的改进,不仅可以提高寻优解的精度,而且可加快收敛速度.拓扑结构的研究对其发展也具有重大意义.除了对算法本身研究外,还可针对目标函数进行变形、变换等策略,来减小PSO算法搜索全局最优的困难,完成寻优.⑷如何准确进行适应值判别,最大程度减少算法收敛前系统损耗,有效避免陷入局部极小,也是PSO算法值得研究的一个方面.⑸PSO算法的应用领域尚待进一步拓宽.目前PSO算法应用得最成功的是在进化神经网络方面,其它的一些应用还停留在研究阶段.补充和扩展PSO与其它算法或技术结合,将其应用在并行计算,动态问题等领域具有重大的现实意义.可以预言,随着PSO算法的深入研究和应用领域的拓展,PSO不仅可以为优化研究工作带来更多的方便,而且给更多实际应用带来新思路、新前景.参考文献:[1]FukuyamaY.Fundamentalsofparticleswarmtechniques[M]//LeeKY,El-SharkawiMA.ModernHeuristicOptimizationTechniquesWithApplicationstoPowerSystems.IEEEPowerEngineeringSociety,2002:45-51.[2]EberhartRC,ShiY.Particleswarmoptimization:developments,applicationsandresources[M]//ProceedingsoftheIEEECongressonEvolutionaryComputation.Piscataway,NJ:IEEEServiceCenter,2001:81-86.[3]vandenBerghF.Ananalysisofparticleswarmoptimizers[D].SouthAfrica:DepartmentofComputerScience,UniversityofPretoria,2002.[4]KennedyJ,EberhartRC.Adiscretebinaryversionoftheparticleswarmalgorithm[M]//ProceedingoftheWorldMulti-conferenceonSystemic,CyberneticsandInformatics.Piscataway,NJ:IEEEServiceCenter,1997:4104-4109.[5]ShiY,EberhartRC.Amodifiedparticleswarmoptimizer[R].IEEEInternationalConferenceofEvolutionaryComputation,Anchorage,Alaska,1998.[6]ParsopoulosKE,PlagianakosVP,MagoulasGD,etal.Improvingparticleswarmoptimizerbyfunction″stretching″[M]//HadjisavvasN,PardalosP.AdvancesinConvexAnalysisandGlobalOptimization.TheNetherlands:KluwerAcademicPublishers,2001:445-457.[7]张丽平.粒子群优化算法的理论及实践[D].浙江大学博士学位论文,2005.[8]ShiY,EberhartRC.Fuzzyadaptiveparticleswarmoptimization[M]//ProceedingoftheCongressonEvolutionaryComputation.Seoul,Korea,2001.[9]ClercM.Theswarmandqueen:towardsadeterministicandadaptiveparticleswarmoptimization[M]//ProceedingsoftheIEEECongressonEvolutionaryComputation,1999:1951-1957.[10]ParsopoulosKE,VrahatisMN.Recentapproachestoglobaloptimizationproblemsthroughparticleswarmoptimization[J].NaturalComputing,2002,1(2/3):235-306.[11]SuganthanPN.Particleswarmoptimizerwithneighborhoodoperator[M]//ProceedingsoftheCongressonEvolutionaryComputation.Piscataway,NJ:IEEEServiceCenter,1999:1958-1961.[12]杨维,李歧强.粒子群优化算法综述[J].中国工程科学,2004,6(5):87-94.[13]KennedyJ.Stereotyping:Improvingparticleswarmperformancewithclusteranalysis[M]//ProceedingsoftheCongressonEvolutionaryComputing.Piscataway,NJ:IEEEServiceCenter,2000:1507-1512.[14]BeasleyD,BullD,MartinR.Asequentialnichetechniqueformultimodalfunctionoptimization[J].EvolutionaryComputation,2006年12月商洛学院学报32AnoverviewofthedevelopmentofparticleswarmoptimizationDONGYuan,WANGYong,YIKe-chu(StateKeyLab.ofIntegratedServiceNetworks,XidianUniversity,Xi’an,Shaanxi710071)Abstract:Particleswarmoptimization(PSO)algorithmasoneofoptimizationtechniquescomesfromartificiallifeandtheoryofevolutionaryalgorithms.Itcanbegatheredfromtheupdateequationsthatthetrajectoryofeachparticleisinfluencedinadirectiondeterminedbythepreviousvelocityandthelocationofeachparticle’spreviouspositionandtheswarm’soverallbestposition.Withitssimpleprinciple,limitedparameteranditseasyimplementation,ithasbeenusedwidelynowinmanyareas.ThispaperillustratesthefoundationaltheoryofPSO,enumeratesvariousevolutionarytechnologiesandpreviewsthedevelopmentofPSO.KeyWords:evolutionaryalgorithmW particleswarmoptimizationW hybridalgorithmW adaptiveW asynchronousmodel(责任编辑:张国春)1993,1(2):101-125.[15]AngelineP.Usingselectiontoimproveparticleswarmoptimization[M]//ProceedingofIJCNN’99.Washington,USA,1999:84-89.[16]NoelMM,JeannetteTC.Simulationofanewhybridparticleswarmoptimizationalgorithm[M]//ProceedingsoftheThirty-SixthSoutheasternSymposiumonSystemTheory,2004:150-153.[17]WachowiakMP,SmolfkovaR,ZhengY,etal.AnapproachtoMultimodalBiomedicalImageRegistrationUtilizingParticleSwarmOptimization[J].IEEETransactionsonEvolutionaryComputation,2004,8(3):289-301.[18]VictoireTAA,JeyakumarAE.HybridPSO-SQPforeconomicdispatchwithvalve-pointeffect[J].ElectricPowerSystemsResearch,2004,71(1):51-59.[19]JuangCF.Ahybridofgeneticalgorithmandparticleswarmoptimizationforrecurrentnetworkdesign[J].IEEETransactionsonSystems,Man,andCybernetics-PartB:Cybernetics,2004,34(2):997-1006.[20]ShiX,LuY,ZhouC,etal.HybridevolutionaryalgorithmsbasedonPSOandGA[C].ProceedingsofIEEECongressonEvolutionaryComputation(CEC),Canbella,Australia,2003:2393-2399.[21]VandenBerghF,EngelbrechtAP.TrainingProductUnitNetworksUsingCooperativeParticleSwarmOptimizers[C].Proc.ofthethirdGeneticandEvolutionaryComputationConference,SanFranciscoUSA,2001,MicroprocessorsandMicrosystems26,2002:363-371.[22]JansonS,MiddendorfM.Ahierarchicalparticleswarmoptimizer[M].ProceedingsofIEEECongressonEvolutionaryComputation,Canbella,Australia,2003:770-776.[23]vandenBerghF,EngelbrechtAP.Anewlocallyconvergentparticleswarmoptimizer[M].ProceedingsofIEEEConferenceonSystems,Man,andCybernetics,Hammamet,Tunisia,2002:96-101.[24]高洪元.仿真智能计算在CDMA多用户检测中的应用研究[D].哈尔滨工程大学工学硕士学位论文,2005.[25]高蕊.改进的粒子群算法及其在离散问题中的应用[D].吉林大学硕士学位论文,2005.第4期33董元,王勇,易克初:粒子群优化算法发展综述。
基于粒子群优化算法的车辆调度优化研究车辆调度问题在物流领域中具有重要的意义。
随着物流业的发展和技术的进步,对车辆调度的要求越来越高。
粒子群优化算法作为一种基于群体智能的优化算法,已被广泛应用于车辆调度优化问题中。
本文旨在研究基于粒子群优化算法的车辆调度优化方法,并对其进行探讨。
首先,我们对车辆调度问题进行形式化描述。
车辆调度问题可以简单地定义为在给定的时间段内,将若干车辆分配到若干任务上,并满足一定的约束条件,使得车辆的总成本最小化。
其中,任务之间可能存在时间窗口约束、车辆容量约束以及任务执行顺序约束等。
车辆调度问题通常是一个NP-hard问题,在实际应用中,往往需要采用启发式算法进行求解。
粒子群优化算法是模拟鸟群觅食行为的一种群体智能优化算法。
其基本思想是通过模拟鸟群中个体之间的信息交流和合作,以寻找最优解。
粒子群优化算法的核心是将解空间中的潜在解看作粒子,通过不断更新粒子的速度和位置,使得粒子向全局最优解逼近。
在基于粒子群优化算法的车辆调度优化方法中,首先需要将车辆调度问题转化为一个数学模型。
常用的数学模型包括路径表示法、时间窗表示法和随机Google地图表示法等。
其中,路径表示法将车辆和任务集合之间的关系表示为一条路径,时间窗表示法将任务的时间窗口和服务时间等因素纳入考虑,而随机Google地图表示法则通过获取实时路况数据进行车辆调度。
接下来,我们将车辆调度问题转化为粒子群优化算法的优化问题。
粒子群优化算法的目标是寻找最小化或最大化目标函数的最优解。
在车辆调度问题中,我们可以将总成本作为目标函数,考虑车辆的行驶里程、时间窗口约束、车辆容量约束以及任务执行顺序等因素。
通过不断更新粒子的速度和位置,使得粒子向全局最优解逼近,从而得到最优的车辆调度方案。
在实际应用中,还需要考虑一些改进和优化的方法。
一方面,可以引入局部搜索机制,加快粒子的收敛速度。
局部搜索机制使得粒子在搜索过程中更容易找到局部最优解,并以此为基础进一步探索全局最优解。
粒子群优化算法及其相关研究综述 摘要:粒子群优化是一种新兴的基于群体智能的启发式全局搜索算法,通过粒子间的竞争和协作以实现在复杂搜索空间中寻找全局最优点。它具有易理解、易实现、全局搜索能力强等特点,倍受科学与工程领域的广泛关注,已经成为发展最快的智能优化算法之一。本文围绕粒子群优化算法的原理、特点、改进与应用等方面进行全面综述,侧重于粒子群的改进算法,简短介绍了粒子群算法在典型理论问题中的应用,最后对其未来的研究提出了一些建议及研究方向的展望。 关键词:粒子群优化;PSO;群智能优化;智能算法
Abstract: Particle swarm optimization is a new swarm intelligence-based heuristic global search algorithm, through competition and collaboration between the particles in order to achieve the advantages of looking at complex global search space. It has easy to understand, easy to implement, strong global search ability and other characteristics, much attention in the field of science and engineering, has become one of the fastest growing intelligent optimization algorithms. This paper focuses on aspects of the principle of particle swarm optimization, characteristics, improvement and application of a comprehensive review, focusing on improved PSO algorithm, a brief description of the particle swarm algorithm in a typical problem in the theory, and finally presented its future research Looking for some advice and research directions.
Key Words: Particle Swarm optimization; PSO; Swarm intelligence optimization;Intelligent algorithm
1 引言 粒子群算法(Particle Swarm optimization,PSO)的基本概念源于对于鸟群捕食行为的简化社会模型的模拟,由Kenndy和Eberhart等人提出[1-2],1995年IEEE国际神经网络学术会议发表了题为“Particle Swarm Optimization”的论文,标志着PSO算法诞生。它同遗传算法类似,通过个体间的协作和竞争实现全局搜索系统初始化为一组随机解,称之为粒子。通过粒子在搜索空间的飞行完成寻优,在数学公式中即为迭代,它没有遗传算法的交叉及变异算子,而是粒子在解空间追随最优的粒子进行搜索。目前,粒子群优化算法应用于神经网络的训练、函数优化、多目标优化等领域并取得了较好的效果,有着广阔的应用前景。 粒子群算法本质上是一种随机搜索算法,并能以较大的概率收敛于全局最优解。实践证明,它适合在动态、多目标优化环境中寻优,与传统的优化算法相比较具有更快的计算速度和更好的全局搜索能力。但是,PSO的发展历史尚短,在理论和实践方面还存在一些不足。粒子群优化算法根据全体粒子和自身粒子的搜索经验向着最优解的方向发展,在进化后期收敛速度变慢,同时,算法收敛精度不高,尤其是对于高维度极值的复杂优化问题。 1.1 粒子群算法原理 PSO从鸟群聚集模型[3]中得到启示并用于解决优化问题。PSO 中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为粒子。所有的粒子都有一个由被优化的函数决定的适值( fitness value) ,每个粒子还有一个速度决定它们飞翔的方向和距离,然后粒子们就追随当前的最优粒子在解空间中搜索[1]。 PSO初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己;第一个就是粒子本身所找到的最优解,这个解称为个体极值;另一个极值是整个种群目前找到的最优解,这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。 设在一个D维空间中,由m个粒子组成的种群1(,...,,...,)iDXxxx,其中第i个粒子位置为12(,,...,)TiiiiDxxxx,其速度为12(,,...,,...,)TiiiidiDVvvvv。它的个体极值为12(,,...,)TiiiiDpppp,种群的全局极值为12(,,...,)TggggDpppp,按照追随当前最优例子的原理,粒子ix将按(1)式、(2)式改变自己的速度和位置[4]。 ))()()(())()()(()()1(2211txtptrctxtptrctvtvijgjijijijij (1) )1()()1(tvtxtxijijij (2) 式中j=1,2,„,D,i=1,2,„m,m为种群规模,t为当前进化代数,12,rr为分布于[0,1]之间的随机数[5];12,cc为加速常数。从式(1)中可知,每个粒子的速度由三部分组成:第一部分是粒子在上一次迭代中的速度,反映了粒子的运动“习惯(habit)”,代表粒子有维持自己先前速度的趋势;第二部分为“认知(cognition)”部分,反映了粒子对自身历史经验的记忆(memory)或回忆(remembrance),代表粒子有向自身历史最佳位置逼近的趋势;第三部分为“社会(social)”部分,反映了粒子间协同合作与知识共享的群体历史经验,代表粒子有向群体或邻域历史最佳位置逼近的趋势。 1.2 粒子群算法流程 PSO的算法流程如下所述,图1为PSO算法的流程图: (1)初始化所有的个体(粒子),初始化它们的速度和位置,并且将个体的历史最优gBest设为当前位置,而群体中最优的个体作为当前的gBest。 (2)在当代的进化中,计算各个粒子的适应度函数值。 (3) 如果该粒子当前的适应度函数值比其历史最优值要好,那么历史最优将会被当前位置所替代。 (4)如果该粒子的历史最优比全局最优要好,那么全局最优将会被该粒子的历史最优所替代。 (5)对每个粒子按照公式(1)和公式(2)对速度和位置进行更新。 (6)迭代次数增加1,如果还没有到达结束条件,转到步骤(2),否则输出gBest并结束。 图1 PSO算法流程
2 粒子群算法的特点
开始 初始化种子数值r、最大迭代次数max_d、种群数M
初始化x变量和初始粒子位置与速度、权重值
是否达到最大迭代次数?
粒子速度更新vk 粒子位置更新xk
判断粒子速度是否超出约束区间?
对粒子群进行优化评价,并取最优值
目标函数值p(num-1,1)>p(num,1)?
ln=num;
输出最优解值 结束
是 是 否
否
否 是 随机产生加速权重系数值人r1,r2
重新更新粒子速度和位置
输出最优数值 目前,粒子群算法已在许多领域得到了广泛的应用, 作为一种新兴的智能优化技术,它具有不同于其它优化算法的一些特性,实践证明,粒子群算适合在动态、多目标优化环境中寻优,与传统的优化算法相比较具有更快的计算速度和更好的全局搜索能力,其优点具体表现如下: (1)没有交叉和变异操作,依靠粒子速度完成搜索,收敛速度较快; (2)具备有效地全局和局部搜索的平衡能力,能够有效避免早熟; (3)采用同时处理粒子群中多个粒子的方法,可以同时搜索设计空间中的某个区域,具有本质的并行性; (4)采用实数编码,直接在问题域上进行求解,且需设置的参数较少,调整方便,因此算法简单,易于工程实现。 虽然粒子群优化算法具有收敛速度快、全局搜索能力强等特点,但因其发展历史尚短,因而也存在很多问题,传统PSO算法的不足表现如下: (1)局部搜索能力较差,搜索精度不高; (2)容易落入局部最优; (3)搜索性能对参数具有依赖性; (4)算法后期易震荡等缺点。 3 粒子群算法的改进 自提出以来,很多研究者从参数设置、收敛性、拓扑结构、与其它算法融合等角度对传统PSO进行研究, 并针对其不足提出了各种改进, 以提高算法性能。 3.1 参数设置 PSO中的可调参数有、c1和c2、Vmax、种群规模等,这些参数的设置对PSO的性能有重要影响,对其设置原则进行研究将是一个广阔而富有挑战的领域。 (1)惯性权重 Shi等人首次将惯性权重引入到PSO的速度更新公式中[6],如公式(3)所示。保持粒子的运动惯性,使其有扩展搜索空间的趋势,获得较好的求解效果,其后的研究一般都以该模型为基础。Shi等还指出,较大的有利于群体在更大的范围内进行搜索,而较小的能够保证群体最终收敛到最优位置,因此提出了一个随着进化代数线性递减的模型,如公式(4)所示。 ))()()(())()()(()()1(2211txtptrctxtptrctvtvijgjijijijij (3)
max_*)(minmaxmaxIteri (4) Chatterjee等则提出了非线性变化惯性权重的PSO算法[7],提高算法的收敛速度。而使用模糊系统来动态调节的值和随机的值(设为=0.5+rand(0,1)/2)也分别被使用。王俊伟等综合分析了常数和可变对算法性能的影响并提出了的设置原则[8]。Zhan等通过对PSO的进化状态进行判定和划分,提出了一种
基于进化因子的自适应控制的惯量权重。由于自适应的惯量权重能够根据算法的