标题：pso
简介
PSO
一是指工艺认证(Process Sign-Off)，此为客户对供应商/代工厂进行的生产工艺流程的审核；
二是指微粒群优化算法。
PSO--工艺流程认证
英文是：Process Sign-Off
此为客户对供应商/代工厂进行的生产工艺流程的审核， 旨在确定客户对供应商/代工商的要求，细化为证实和保证满足客户的质量系统要求所应具备的能力。
在产品或系统的有效期内任何产品或工艺需要更改，必须通过客户产品团队的评审以确定在风险值的基础上是否需要重新进行PSO认证
了解工艺认证（PSO）
PSO目的在于验证供应商工艺能力，是验证供应商质量策划过程是否成功及在批量生产中是否具备批量生产合格产品的生产工艺的一种方法。
PSO是什么：PSO是系统和连贯地对供应商策划和实际实施的最高标定生产节拍下的生产工艺进行审核，包括人员、设施、设备、材料、方法、程序、软件水平和工装。客户的验证方法能确保供应商系统可接收并能生产出高质量的产品。
首先，文件需确保操作的方法都已记录并可供所有的员工参考。在培训新员工时，还可帮助有经验的员工解决一些不寻常的情况或变化。
其次，应亲临现场获得第一手资料。所以，作为PSO工作的一部分就是审核者亲临生产现场，至少目睹使用生产正式工装进行一批产品的生产。生产的节拍和质量必须满足客户的要求。
第三，对生产的产品进行测量和分析，亲临现场能看到生产过程中出现的特殊问题和生产效率的情况，收集数据并进行分析和归纳是获取真实质量和生产效率情况的手段。通过测量可以得出生产节拍，FTC，单位产品所需净生产时间及其它统计数据，从而证实供应商是否有能力生产出满足客户要求的产品。
最后，通过对产品的试验来证实供应商的体系是否有效，并且通过数据来表明产品满足了性能、工艺及材料技术条件中所包含的工程，质量，寿命和可靠性要求。
总而言之，PSO工作程序确保了供应商显示其满足PPAP要求的能力。
是谁：产品工作组（至少由供应商质量专家、工程师、供应商及其他合适的人员组成）。
在何地：工艺认证的文件审核的预备会议最好是在供应商生产所在现场进行。如果产品工作组认为有必要时，现场工艺认证也可以在一级分供应商的生产现场进行。
何时：当产品工作组在预备会议中确认如下条件都已满足后，方可决定进行现场工艺认证的时间：
l 对供应商的文件已全部审核完毕并接受。
l 生产工装完成、定案并已在供应商现场安装和调试完毕，并且供应商自己的生产准备评估已经全部完成并有文件记录。
l 生产工序已确定并调试完毕，前期操作情况已经确定，并准备好按预先确定的抽样大小和生产节拍进行生产演示。
l 生产操作者已经培训并能在标定最大和持续的生产节拍下进行生产。
粒子群优化算法
（PSO——Particle Swarm Optimization）　　粒子群优化算法（PSO）是一种基于种群的随机优化技术，由Eberhart和Kennedy于1995年提出。粒子群算法模仿昆虫、兽群、鸟群和鱼群等的群集行为，这些群体按照一种合作的方式寻找食物，群体中的每个成员通过学习它自身的经验和其他成员的经验来不断改变其搜索模式。
Kennedy和Eberhart提出粒子群算法的主要设计思想与两个方面的研究密切相关：
一是进化算法，粒子群算法和进化算法一样采用种群的方式进行搜索，这使得它可以同时搜索待优化目标函数解空间中的较多区域。
二是人工生命，即研究具有生命特征的人工系统，它采用的主要工具是计算机，主要方法是利用计算机编程模拟。 
Millonas在用人工生命理论来研究群居动物的行为时，对于如何采用计算机构建具有合作行为的群集人工生命系统，提出了五条基本原则：
（1）邻近原则（ProximityPrinciple）：群体应该能够执行简单的空间和时间运算。 
（2）质量原则（Quality Principle）：群体应该能感受到周围环境中质量因素的变化，并对其产生响应。 
（3）反应多样性原则（Principle ofDiverse Response）：群体不应将自己获取资源的途径限制在狭窄的范围之内。 
（4）稳定性原则（Principle ofStability）：群体不应随着环境的每一次变化而改变自己的行为模式。 
（5）适应性原则（Principle ofAdaptability）：当改变行为模式带来的回报是值得的时候，群体应该改变其行为模式。 
其中4、5两条原则是同一个问题的两面。微粒群系统满足以上五条原则。 
近十余年来，针对粒子群算法展开的研究很多。目前国内外已有多人从多个方面对微粒群算法进行过综述；并出现了多本关于粒子群算法的专著和以粒子群算法为主要研究内容的博士论文。
来源和背景
为了说明粒子群优化算法的发展和形成背景，首先介绍一下早期的简单模型，即Boid（Bird-oid）模型。这个模型是为了模拟鸟群的行为而设计的，它也是粒子群优化算法的直接来源。
一个最简单的模型是这样的：每一个鸟的个体用直角坐标系上的点表示，随机地给它们赋一个初速度和初位置，程序运行的每一步都按照“最近邻速度匹配”规则，使某个个体的最近邻点的速度变得与它一样，如此迭代计算下去，很快就会使得所有点的速度变得一样。因为这个模拟太简单而且远离真实情况，于是在速度项中增加了一个随机变量，即在迭代的每一步，除了满足“最近邻速度匹配”之外，每一步速度还要添加一个随机变化的量，这样使得整个模拟看起来更为真实。
Heppner设计了一个“谷地模型”来模拟鸟群的觅食行为。假设在平面上存在一个“谷地”，即食物所在地，鸟群开始时随机地分散在平面上，为了寻觅食物所在地，它们按照如下规则运动：
首先假设谷地的位置坐标为，单个鸟的位置和速度坐标分别为和，用当前位置到谷地的距离：  来衡量当前位置和速度的“好坏程度”，离谷地的距离越近，则越“好”，反之越“坏”。假设每一个鸟具有记忆能力，能够记住曾经达到的最好位置，记作pBest，并记a为系统规定的速度调节常数，rand为一个[0,1]间的随机数，设定速度项按照下述规则变化：
然后假设群体之间可以以某种方式通讯，每个个体能够知道并记住到当前为止整个群体的最好位置，记为gBest，记b为系统规定的速度调节常数，Rand为一个[0,1]间的随机数，则速度项在经过以上调整后，还必须按照下述规则变化：
  在计算机上模拟的结果显示：当a/b较大时，所有的个体很快地聚集到“谷地”上；反之，粒子缓慢地摇摆着聚集到“谷地”的四周。通过这个简单的模拟，发现群体能很快地找到一个简单函数（2-1）的最优点。受该模型启发，Kennedy和Eberhart设计出了一种演化优化算法，并通过不断的试验和试错，最后将此算法的基本型固定为：
  其中符号的意义同上。研究者认为每个个体被抽象为没有质量和体积，而仅仅具有速度和位置的微粒，故将此方法称为“粒子群”优化算法。
据此，可对粒子群算法小结如下：粒子群算法是一种基于种群的搜索过程，其中每个个体称作微粒，定义为在D维搜索空间中待优化问题的潜在解，保存有其历史最优位置和所有粒子的最优位置的记忆，以及速度。在每一演化代，微粒的信息被组合起来调整速度关于每一维上的分量，继而被用来计算新的微粒位置。微粒在多维搜索空间中不断改变它们的状态，直到到达平衡或最优状态，或者超过了计算限制为止。问题空间的不同维度之间唯一的联系是通过目标函数引入的。很多经验证据已经显示该算法是一个非常有效的优化工具。微粒群优化算法的流程图见图2-1。
以下给出微粒群算法的比较完整的形式化表述。在连续空间坐标系中，微粒群算法的数学描述如下：设微粒群体规模为N，其中每个微粒在D维空间中的坐标位置向量表示为，速度向量表示为，微粒个体最优位置（即该微粒经历过的最优位置）记为，群体最优位置（即该微粒群中任意个体经历过的最优位置）记为。不失一般性，以最小化问题为例，在最初版本的微粒群算法中，个体最优位置的迭代公式为：
  群体最优位置为个体最优位置中最好的位置。速度和位置迭代公式分别为：
  由于初始版本在优化问题中应用时效果并不太好，所以初始算法提出不久之后就出现了一种改进算法，在速度迭代公式中引入了惯性权重ω，速度迭代公式变为：
  虽然该改进算法与初始版本相比复杂程度并没有太大的增加，但是性能却有了很大的提升，因而被广泛使用。一般的，将该改进算法称为标准微粒群算法，而将初始版本的算法称为原始微粒群算法。
通过分析PSO算法的收敛行为，Clerc介绍了一种带收缩因子的PSO算法变种，收缩因子保证了收敛性并提高了收敛速度。此时的速度迭代公式为：
  显然，迭代公式（2-7）和（2-8）并无本质区别，只要适当选取参数，二者完全相同。
微粒群算法有两种版本，分别称为全局版本和局部版本。在全局版本中，微粒跟踪的两个极值为自身最优位置pBest和种群最优位置gBest。对应的，在局部版本中，微粒除了追随自身最优位置pBest之外，不跟踪种群最优位置gBest，而是跟踪拓扑邻域中的所有微粒的最优位置nBest。对于局部版本，速度更新公式（2-7）变为：
  其中为局部邻域中的最优位置。
  每一代中任意微粒迭代的过程见图2-2所示。从社会学的角度来看速度迭代公式，其中第一部分为微粒先前速度的影响，表示微粒对当前自身运动状态的信任，依据自身的速度进行惯性运动，因此参数ω称为惯性权重（Inertia Weight）；第二部分取决于微粒当前位置与自身最优位置之间的距离，为“认知（Cognition）”部分，表示微粒本身的思考，即微粒的运动来源于自己经验的部分，因此参数c1称为认知学习因子（也可称为认知加速因子）；第三部分取决于微粒当前位置与群体中全局（或局部）最优位置之间的距离，为“社会（Social）”部分，表示微粒间的信息共享与相互合作，即微粒的运动来源于群体中其他微粒经验的部分，它通过认知模拟了较好同伴的运动，因此参数c2称为社会学习因子（也可称为社会加速因子）。
自从PSO算法被提出以来，由于它直观的背景，简单而容易实现的特点，以及对于不同类型函数广泛的适应性，逐渐得到研究者的注意。十余年来，PSO算法的理论与应用研究都取得了很大的进展，对于算法的原理已经有了初步的了解，算法的应用也已经在不同学科中得以实现。
PSO算法是一种随机的、并行的优化算法。它的优点是：不要求被优化函数具有可微、可导、连续等性质，收敛速度较快，算法简单，容易编程实现。然而，PSO算法的缺点在于：（1）对于有多个局部极值点的函数，容易陷入到局部极值点中，得不到正确的结果。造成这种现象的原因有两种，其一是由于待优化函数的性质；其二是由于微粒群算法中微粒的多样性迅速消失，造成早熟收敛。这两个因素通常密不可分地纠缠在一起。（2）由于缺乏精密搜索方法的配合，PSO算法往往不能得到精确的结果。造成这种问题的原因是PSO算法并没有很充分地利用计算过程中获得的信息，在每一步迭代中，仅仅利用了群体最优和个体最优的信息。（3）PSO算法虽然提供了全局搜索的可能，但是并不能保证收敛到全局最优点上。（4）PSO算法是一种启发式的仿生优化算法，目前还没有严格的理论基础，仅仅是通过对某种群体搜索现象的简化模拟而设计的，但并没有从原理上说明这种算法为什么有效，以及它适用的范围。因此，PSO算法一般适用于一类高维的、存在多个局部极值点而并不需要得到很高精度解的优化问题。
目前针对PSO算法开展的研究工作种类繁多，经归纳整理分为如下八个大类：（1）对PSO算法进行理论分析，试图理解其工作机理；（2）改变PSO算法的结构，试图获得性能更好的算法；（3）研究各种参数配置对PSO算法的影响；（4）研究各种拓扑结构对PSO算法的影响；（5）研究离散版本的PSO算法；（6）研究PSO算法的并行算法；（7）利用PSO算法对多种情况下的优化问题进行求解；（8）将PSO算法应用到各个不同的工程领域。以下从这八大类别着手，对PSO算法的研究现状作一梳理。由于文献太多，无法面面俱到，仅捡有代表性的加以综述。
理论分析
目前对微粒群算法开展的理论研究主要集中在微粒群算法的原理方面，即微粒之间是如何相互作用的，为什么微粒群算法对于很多优化问题是有效的，而对于有些问题则效果不是很明显。具体来说，这个问题的研究又分为三个方面，其一是单个微粒的运动轨迹；其二是收敛性问题；其三是整个微粒系统随时间的演化和分布。
对简化微粒行为的第一个分析由Kennedy给出，通过仿真给出了一系列设计选择的情况下不同的微粒轨迹。对简化微粒群算法的第一个理论分析由Ozcan给出，作者在文中指出，在一个简化的一维PSO系统中，微粒沿着一条由正弦波定义的路径前进，随机确定其幅度和频率。但是，他们的分析仅限于没有惯性权重的简单PSO模型，并且假定Pid和Pgd保持不变。事实上，Pid和Pgd会频繁变化，于是微粒轨迹由很多不同幅度和频率的正弦波合成，整个轨迹看起来仍然是无序的。这使得他们的结论的有效性大打折扣。
对算法稳定性质的第一个形式化分析由Clerc给出，但是该分析需要将随机系数视作常数，从而将标准随机PSO算法简化为一个确定型动态系统。这样得到的系统是一个二阶线性动态系统，其稳定性依赖于系统的极点或状态矩阵的特征根。van den Bergh对基于确定型版本的PSO算法进行了类似的分析，并确定了在参数空间中保证稳定性的区域。在文献[5]和[42]中也提出了关于收敛性和参数选择的内容，但是作者承认他们并没有考虑算法的随机特性，因此其结果有局限性。类似的还有对连续时间版本的PSO算法所作的分析。
Blackwell针对球形对称局部邻域的函数，对PSO算法中多样性缺失的速度进行了理论分析和实验验证。Kennedy系统地研究了速度对PSO算法的影响，有助于理解速度对算法性能的贡献。
Kadirkamanathan等采用李雅普诺夫稳定性分析和被动系统（Passive System）的概念，对微粒动力学的稳定性进行了分析。该分析中没有假定所有参数均为非随机的限制，得出了稳定的充分条件，并给出示例。仿真结果验证了理论的预期，微粒动力学的稳定需要在惯性权重减小时，增大随机参数的最大值。该分析是基于随机微粒动力学的，将微粒动力学表达为一个非线性反馈控制系统。该系统有一个确定型线性部分和一个非线性部分，以及/或在反馈路径上的时变增益。该文虽然考虑了随机分量的影响，但是其稳定性分析是针对最优位置所进行的（群体最优和个体最优相同），其结论不能直接应用到非最优的微粒。
Clerc研究了处于停滞阶段的微粒群算法的迭代过程，对迭代过程中的各随机系数进行了详细的研究，给出了各随机系数的概率密度函数。
Jiang将微粒群算法中每一演化步骤时的微粒位置量视作一个随机向量，考查了微粒群算法中惯性权重ω和学习因子c1、c2等参数对算法收敛性的影响，并采用随机过程理论分析了标准微粒群算法的随机收敛性。
原始PSO算法即使能够收敛，也只能收敛到群体所搜索到的最好解，而不能保证该收敛解是最优解，甚至不能保证它是局部最优解。van den Bergh提出一种保证收敛的PSO算法，其策略是对全局最优微粒采用一个新的更新方程，使其在全局最好位置附近产生一个随机搜索，而其他微粒仍用原方程更新。该算法能够保证微粒群算法收敛到局部最优解，其代价为收敛速度加快，在多模问题中性能不如标准PSO算法。
算法结构
对微粒群算法结构的改进方案有很多种，对其可分类为：采用多个子种群；改进微粒学习对象的选取策略；修改微粒更新迭代公式；修改速度更新策略；修改速度限制方法、位置限制方法和动态确定搜索空间；与其他搜索技术相结合；以及针对多模问题所作的改进。
第一类方案是采用多个子种群。柯晶考虑优化问题对收敛速度和寻优精度的双重要求并借鉴多群体进化算法的思想，将寻优微粒分成两组，一组微粒采用压缩因子的局部模式PSO算法，另一组微粒采用惯性权重的全局模式PSO算法，两组微粒之间采用环形拓扑结构。对于高维优化问题，PSO算法需要的微粒个数很多，导致计算复杂度常常很高，并且很难得到好的解。因此近来，出现了一种协作微粒群算法（Cooperative ParticleSwarm Optimizer, CPSO-H），将输入向量拆分成多个子向量，并对每个子向量使用一个微粒群来进行优化。虽然CPSO-H算法使用一维群体来分别搜索每一维，但是这些搜索结果被一个全局群体集成起来之后，在多模问题上的性能与原始PSO算法相比有很大的改进。Chow使用多个互相交互的子群，并引入相邻群参考速度。冯奇峰提出将搜索区域分区，使用多个子群并通过微粒间的距离来保持多样性。陈国初将微粒分成飞行方向不同的两个分群，其中一分群朝最优微粒飞行，另一分群微粒朝相反方向飞行；飞行时，每一微粒不仅受到微粒本身飞行经验和本分群最优微粒的影响，还受到全群最优微粒的影响。Niu在PSO算法中引入主—从子群模式，提出一种多种群协作PSO算法。Seo提出一种多组PSO算法（Multigrouped PSO），使用N组微粒来同时搜索多模问题的N个峰。Selleri使用多个独立的子群，在微粒速度的更新方程中添加了一些新项，分别使得微粒向子群历史最优位置运动，或者远离其他子群的重心。王俊年借鉴递阶编码的思想，构造出一种多种群协同进化PSO算法。高鹰借鉴生态学中环境和种群竞争的关系，提出一种基于种群密度的多种群PSO算法。
第二类方案是改进微粒学习对象的选取策略。Al-kazemi提出多阶段PSO算法，将微粒按不同阶段的临时搜索目标分组，这些临时目标允许微粒向着或背着它自己或全局最好位置移动。Ting对每个微粒的pBest进行操作，每一维从其他随机确定的维度学习，之后如果新的pBest更好则替换原pBest；该文还比较了多种不同学习方式对应的PSO算法的性能。Liang提出一种新颖的学习策略CLPSO，利用所有其他微粒的历史最优信息来更新微粒的速度；每个微粒可以向不同的微粒学习，并且微粒的每一维可以向不同的微粒学习。该策略能够保持群体的多样性，防止早熟收敛，可以提高PSO算法在多模问题上的性能；通过实验将该算法与其它几种PSO算法的变种进行比较，实验结果表明该算法在解决多模复杂问题时效果很好。Zhao在PSO算法中使用适应值最好的n个值来代替速度更新公式中的gBest。Abdelbar提出一种模糊度量，从而使得每个邻域中有多个适应值最好的微粒可以影响其它微粒。Wang也采用多个适应值最好的微粒信息来更新微粒速度，并提出一种模糊规则来自适应地确定参数。崔志华提出一种动态调整的改进PSO算法，在运行过程中动态调整极限位置，使得每个微粒的极限位置在其所经历的最好位置与整体最好位置所形成的动态圆中分布。与原始PSO算法相反，有一类方法是远离最差位置而非飞向最优位置。Yang提出在算法中记录最差位置而非最优位置，所有微粒都远离这些最差位置。与此类似，Leontitsis在微粒群算法中引入排斥子的概念，在使用个体最优位置和群体最优位置信息的同时，在算法中记录当前的个体最差位置和群体最差位置，并利用它们将微粒排斥到最优位置，从而让微粒群更快地到达最优位置。孟建良提出一种改进的PSO算法，在进化的初期，微粒以较大的概率向种群中其他微粒的个体最优学习；在进化后期，微粒以较大的概率向当前全局最优个体学习。Yang在PSO算法中引入轮盘选择技术来确定gBest，使得所有个体在进化早期都有机会引领搜索方向，从而避免早熟。
第三类方案是修改微粒更新公式。Hendtlass在速度更新方程中给每个微粒添加了记忆能力。He在速度更新方程中引入被动聚集机制。曾建潮通过对PSO算法的速度进化迭代方程进行修正，提出一种保证全局收敛的随机PSO算法。Zeng在PSO算法中引入加速度项，使得PSO算法从一个二阶随机系统变为一个三阶随机系统，并使用PID控制器来控制算法的演化。为了改进PSO算法的全局搜索能力，Ho提出一种新的微粒速度和位置更新公式，并引入寿命（Age）变量。
第四类方案是修改速度更新策略。Liu认为过于频繁的速度更新会弱化微粒的局部开采能力并减慢收敛，因此提出一种松弛速度更新（RVU）策略，仅当微粒使用原速度不能进一步提高适应值时才更新速度，并通过试验证明该策略可以大大减小计算量并加速收敛。罗建宏对同步模式和异步模式的PSO算法进行了对比研究，试验结果表明异步模式收敛速度显著提高，同时寻优效果更好。Yang在微粒的更新规则中引入感情心理模型。Liu采用一个最小速度阈值来控制微粒的速度，并使用一个模糊逻辑控制器来自适应地调节该最小速度阈值。张利彪提出了对PSO算法增加更新概率，对一定比例的微粒并不按照原更新公式更新，而是再次随机初始化。Dioan利用遗传算法（GA）来演化PSO算法的结构，即微粒群中各微粒更新的顺序和频率。
第五类方案是修改速度限制方法、位置限制方法和动态确定搜索空间。Stacey提出一种重新随机化速度的速度限制和一种重新随机化位置的位置限制。Liu在[76]的基础上，在PSO算法中引入动量因子，来将微粒位置限制在可行范围内。陈炳瑞提出一种根据微粒群的最佳适应值动态压缩微粒群的搜索空间与微粒群飞行速度范围的改进PSO算法。
第六类方案是通过将PSO算法与一些其他的搜索技术进行结合来提高PSO算法的性能，主要目的有二，其一是提高种群多样性，避免早熟；其二是提高算法局部搜索能力。这些混合算法包括将各种遗传算子如选择、交叉、变异引入PSO算法，来增加种群的多样性并提高逃离局部最小的能力。Krink通过解决微粒间的冲突和聚集来增强种群多样性，提出一种空间扩展PSO算法（Spatial ExtensionPSO，SEPSO）；但是SEPSO算法的参数比较难以调节，为此Monson提出一种自适应调节参数的方法。用以提高种群多样性的其他方法或模型还包括“吸引—排斥”、捕食—被捕食模型、耗散模型、自组织模型、生命周期模型（LifeCycle model）、贝叶斯优化模型、避免冲突机制、拥挤回避（Crowd Avoidance）、层次化公平竞争（HFC）、外部记忆、梯度下降技术、线性搜索、单纯形法算子、爬山法、劳动分工、主成分分析技术、卡尔曼滤波、遗传算法、随机搜索算法、模拟退火、禁忌搜索、蚁群算法（ACO）、人工免疫算法、混沌算法、微分演化、遗传规划等。还有人将PSO算法在量子空间进行了扩展。Zhao将多主体系统（MAS）与PSO算法集成起来，提出MAPSO算法。Medasani借鉴概率C均值和概率论中的思想对PSO算法进行扩展，提出一种概率PSO算法，让算法分勘探和开发两个阶段运行。
第七类方案专门针对多模问题，希望能够找到多个较优解。为了能使PSO算法一次获得待优化问题的多个较优解，Parsopoulos使用了偏转（Deflection）、拉伸（Stretching）和排斥（Repulsion）等技术，通过防止微粒运动到之前已经发现的最小区域，来找到尽可能多的最小点。但是这种方法会在检测到的局部最优点两端产生一些新的局部最优点，可能会导致优化算法陷入这些局部最小点。为此，Jin提出一种新的函数变换形式，可以避免该缺点。基于类似思想，熊勇提出一种旋转曲面变换方法。
保持种群多样性最简单的方法，是在多样性过小的时候，重置某些微粒或整个微粒群。Lvbjerg在PSO算法中采用自组织临界性作为一种度量，来描述微粒群中微粒相互之间的接近程度，来确定是否需要重新初始化微粒的位置。Clerc提出了一种“Re-Hope”方法，当搜索空间变得相当小但是仍未找到解时（No-Hope），重置微粒群。Fu提出一种带C-Pg变异的PSO算法，微粒按照一定概率飞向扰动点而非Pg。赫然提出了一种自适应逃逸微粒群算法，限制微粒在搜索空间内的飞行速度并给出速度的自适应策略。
另一种变种是小生境PSO算法，同时使用多个子种群来定位和跟踪多个最优解。Brits还研究了一种通过调整适应值计算方式的方法来同时找到多个最优解。Li在PSO算法中引入适应值共享技术来求解多模问题。Zhang在PSO算法中采用顺序生境（SequentialNiching）技术。在小生境PSO算法的基础上，还可以使用向量点积运算来确定各个小生境中的候选解及其边界，并使该过程并行化，以获得更好的结果。但是，各种小生境PSO算法存在一个共同的问题，即需要确定一个小生境半径，且算法性能对该参数很敏感。为解决该问题，Bird提出一种自适应确定niching参数的方法。
Hendtlass在PSO算法中引入短程力的概念，并基于此提出一种WoSP算法，可以同时确定多个最优点。刘宇提出一种多模态PSO算法，用聚类算法对微粒进行聚类，动态地将种群划分成几个类，并且使用微粒所属类的最优微粒而非整个种群的最好微粒来更新微粒的速度，从而可以同时得到多个近似最优解。Li在PSO算法中引入物种的概念，但是由于其使用的物种间距是固定的，该方法只适用于均匀分布的多模问题；为此，Yuan对该算法进行扩展，采用多尺度搜索方法对物种间距加以自适应的调整。
此外，也有研究者将PSO算法的思想引入其他算法中，如将PSO算法中微粒的运动规则嵌入到进化规划中，用PSO算法中的运动规则来替代演化算法中交叉算子的功能。
参数选择
微粒群算法中比较重要的几个参数为：惯性权重ω（或压缩因子χ）、学习因子c1和c2、速度限制Vmax、位置限制Xmax、种群大小和初始种群。有研究者固定其他参数，研究单个参数对算法的影响；也有研究者同时研究多个参数对算法的影响。Shi对PSO算法中的参数选择进行了最早的讨论。
目前的研究普遍认为惯性权重对微粒群算法性能的影响最大，因此这方面的研究最多。王俊伟对PSO算法中的惯性权重进行了系统的实验，分析了固定权重与时变权重的选择问题，并从问题依赖性、种群大小和拓扑结构等方面详细分析了惯性权重对于算法性能的影响。结果表明，惯性权重的问题依赖性较小，随着种群的增大，其取值应适当减小，局部版本下惯性权重的选择具有更大的自由度。陈贵敏提出了开口向下抛物线、开口向上抛物线和指数曲线等非线性惯性权重递减策略并与线性递减策略进行比较，试验结果表明，凹函数递减策略优于线性策略，而线性策略优于凸函数策略。
一般认为，在微粒群算法中，惯性权重用于平衡全局和局部搜索能力，较大的惯性权重更倾向于全局搜索，而较小的惯性权重适于局部搜索。因此惯性权重的取值应随时间逐渐减小，而Zheng声称递增的惯性权重性能更好，但是在该文中使用了一组不同于标准PSO算法的学习因子，并且在该文中没有说明这对性能的影响。
由于固定的惯性权重往往无法获得好的效果，因此出现了惯性权重在搜索过程中随迭代代数线性下降、模糊自适应变化、按非线性函数下降、按余弦规律下降、按双曲线规律下降、按Sugeno函数规律下降的PSO算法。与此同时，还有很多种惯性权重随某种评价指标自适应变化的方法，如根据搜索的成功历史、微粒平均速度、种群多样性、目标函数平整性的变化、微粒群进化速度和聚集程度、个体搜索能力（ISA）来动态调整惯性权重。Liu根据Metropolis准则来确定是否接受惯性权重的变化。
也有人使用随机惯性权重，如将其设定为[0.5+(Rnd/2.0)]、取为在[0,1]区间均匀分布的随机数。Jiang在惯性权重的选取过程中引入混沌机制，使得惯性权重的取值能够遍历[0, 1]区间。
学习因子c1和c2代表了将每个微粒拉向pBest和gBest（或nBest）位置的随机加速项的权重。从心理学的角度而言，认知项（Cognition term）代表了个体复制已被证明是成功的过去行为的趋势，而社会项（Social term）代表了追从他人成功经验的趋势。c1和c2很多时候被设定为2.0，显而易见的原因是它将使得搜索覆盖以pBest和gBest为中心的区域。另一个常用的值为1.49445，它可以确保PSO算法的收敛。Carlisle通过大量实验，提出一套比较好的参数设置为将c1和c2分别设定为2.8和1.3，且该参数设置的性能在[182]中得到进一步肯定。受时变惯性权重的思想启发，出现了多种学习因子随时间变化的PSO算法变种，如学习因子随时间线性下降、根据微粒的演化状态动态调整、根据适应值持续变差的次数和种群的分散程度来动态调整。高鹰建立了学习因子和微粒群中所有微粒的平均适应度与整体最优位置适应度之差的一种非线性函数关系，通过非线性时变的学习因子自适应地调整“认知”部分和“社会”部分对微粒的影响，从而提高算法的收敛速度和精度。
在大多数情况下，两个学习因子的取值相同，从而使得社会搜索和认知搜索有相同的权重。Kennedy研究了两个极端情况：只有社会项的模型和只有认知项的模型，结论是这两个部分对微粒群搜索的成功而言都很关键，对非对称的学习因子尚无确定的结论报告。Depuy等分析了最大速度、社会学习因子和认知学习因子对微粒群算法在搜索空间中找到最优点的能力的影响，但是分析过于简单。
还有的研究同时确定惯性权重和学习因子。有很多研究者采用各种优化技术来动态确定惯性权重和学习因子，如遗传算法、混沌寻优方法、演化算法、微分演化算法、自适应校正设计（Adaptive CriticDesign）技术。Silva基于共生机制，使用另外一个PSO算法来动态确定原算法的参数。Krohling将惯性权重设置为零，同时用两个服从分布的随机变量来取代c1r1和c2r2，其中为期望为0、方差为1的高斯分布。Arumugam根据一个由pBest和gBest确定的函数来动态地确定惯性权重和学习因子。Breaban将速度更新公式中的各项解释为算子的操作，并引入了一些新的算子，据此来同时自适应地确定惯性权重和学习因子。Ueno对微粒采用多组参数值，并利用微粒速度的平均值来动态确定惯性权重和学习因子。Khosla使用Taguchi方法来确定算法参数。Kuo采用十七个低维函数优化问题，针对单个极小和多个极小的情况研究了惯性权重和学习因子的取值范围。
微粒的速度可以受一个最大速度Vmax的限制，由此作为一种约束来控制微粒群的全局探索能力。在最初的原始PSO算法中，采用的参数为，，微粒的速度经常会快速地增长到非常大的值，这样会影响算法的性能，所以需要对微粒速度进行限制。后来，Clerc指出速度限制并非必须的，引入收缩因子同样可以实现限制微粒速度的目的。不过，即便采用收缩因子，试验表明如果同时加以速度限制能够获得更好的结果，因此速度限制一直被保留下来。一般而言，Vmax被设置为每个变量的动态范围的值，一般为固定值，但也可以随时间线性递减或者根据搜索的成功历史来动态减小。
微粒的位置可以受最大位置Xmax的限制，避免微粒飞出有物理意义的解空间之外。Zhang提出一种周期性模式的边界处理方法。Robinson提出了三种控制技术，分别为吸引墙、反射墙和不可见墙。一旦微粒的某一维碰到解空间的边界，则吸引墙方法将速度设为零，反射墙方法改变速度方向，由此这两种方法最终都可以将微粒拉回到允许的解空间范围内。而不可见墙方法对飞出边界的微粒不计算适应值，以节约计算时间并避免影响其它微粒的运动。但是，这三种边界条件下PSO算法的性能受问题的维度以及全局最优点与搜索空间边界的相对位置影响很大。为解决这一问题，Huang综合吸收墙和反射墙的特点，在其基础上提出一种混合的阻尼边界，以获得鲁棒且一贯的性能。而Mikki将硬位置限制和吸引墙、反射墙技术结合起来，试验表明能够获得更好的效果。
种群大小的选择与问题相关，但是对问题并不十分敏感。20-50是比较常见的选择。在某些情况下，可能会使用较大的种群来适应特殊需要。
种群的初始化也是一个很重要的问题。一般情况下初始种群都是随机产生，但是也有多种智能化的种群初始化方法，如使用非线性单纯形法（NSM），重心Voronoi划分、正交设计、均匀设计等方法来确定PSO算法的初始种群，以使得初始种群的分布尽可能均匀，帮助算法更有效地探索搜索空间并找到更好的解。Robinson指出PSO算法和GA算法可以顺序使用，将PSO算法完成优化之后的种群作为GA算法的初始种群，或者反之，将GA算法完成优化之后的种群作为PSO算法的初始种群，都能得到很好的结果。
此外，还有人通过灵敏度分析、回归树、计算统计学等方法来调节PSO算法的参数，以提高算法性能，求解实际问题。
拓扑结构
通过设计不同类型的拓扑来提高PSO算法的性能，也是一个活跃的研究方向。
既然是研究拓扑结构，一定会涉及到邻域的概念。邻域可以是静态的，也可以是动态确定的。邻域的确定有两种方式，一种为根据微粒的标志（或索引）来确定，与距离无关；而另一种为根据微粒之间的拓扑距离来确定。显然，按照拓扑距离动态确定邻域的计算量会比较大。
大多数研究针对静态拓扑来展开。Kennedy分析了各种各样的静态邻域结构以及它们对算法性能的影响，认为星形、环形和Von Neumann拓扑适用性最好，并宣称小邻域的PSO算法在复杂问题上性能较好，但是大邻域的PSO算法在简单问题上性能会更好。Kennedy还基于K均值聚类算法提出混合空间邻域和环形拓扑方法的另一个局部PSO算法版本，称为社会趋同法，不用每个微粒的经验而是用它所属空间聚类的共同经验来更新自己。Engelbrecht研究了基本的PSO算法定位并维持多个最优点的能力，发现全局邻域PSO（gBest PSO）算法对此根本无能为力，而局部邻域PSO（nBest PSO）算法则是效率很低。
Peram发展了一种基于适应值距离比的PSO算法（FDR-PSO），使用近邻的交互。在更新速度的每一维分量时，FDR-PSO算法选择一个其他微粒的nBest，该微粒应具有更高的适应值，并且与待更新的微粒距离更近。该算法在每一维速度更新中选取不同邻域微粒，比在所有速度维只选取一个邻域微粒更有效。Peer用不同的邻域拓扑来研究保证收敛PSO（GCPSO）算法的性能。Parsopoulos将全局版本和局部版本组合在一起，构建了一个统一微粒群算法（Unified ParticleSwarm Optimizer, UPSO）。与此有异曲同工之效的是Xu提出的扩展PSO算法，同时使用个体最优、全局最优以及邻域中的局部最优来更新速度。Mendes介绍了一种完全通知（Fully informed）的PSO算法，使用微粒的所有邻居信息来更新速度，每个微粒对其邻居的影响基于它的适应值大小和邻域大小进行加权。在此基础上，方峻发展出一种基于加权有向拓扑的的改进算法，体现微粒之间影响的不平衡性。
也有少部分研究工作是关于动态拓扑的。Suganthan使用了一个动态调整的邻域，微粒的邻域逐渐增大，直到包含所有的微粒为止。Hu研究了一种动态邻域，在每一代的性能空间中m个最近的微粒被选作新的邻居。Mohais研究了两种随机动态邻域拓扑。Binkley提出一种带影响范围的PSO算法，最优微粒对其余各微粒的影响能力取决于它们之间的距离。分层PSO算法使用基于种群中每个微粒的性能得到的动态树分层概念来定义邻域结构。
上述邻域拓扑均用于确定群体经验gBest，而Jian使用邻域拓扑来确定个体经验pBest。
离散算法版本
很多优化问题涉及到离散或二值的变量，典型的例子包括调度问题或路由问题。而PSO算法的更新公式和过程是面向连续空间并为其设计的，因此需要做一些修改使之适应离散空间的情况。编码的修改可能很简单，难点在于定义速度的意义和确定轨迹的变化。
Kennedy定义了第一个离散二进制版本的PSO算法。微粒使用二进制字符串进行编码。通过使用sigmoid函数，速度被限制在[0, 1]区间之内，并被解释为“概率的变化”。Yang对该方法在量子空间进行了扩展。
Mohan提出了几种二进制方法（直接方法、量子方法、正则方法、偏差向量方法以及混合方法），但是从有限的实验中没有得出什么结论。Clerc对一些专用于某些约束优化问题如TSP问题的PSO算法变种进行了试验，结果显示该方法比较有前途。Pang使用模糊矩阵来表示微粒的位置和速度，对PSO算法的算符进行了重定义，并将其应用到TSP问题的求解。Pampara将PSO算法与信号处理中的角调制技术结合起来，将高维二进制问题降维为一个在连续空间中定义的四维问题，并通过求解该四维问题来获得原问题的解。Afshinmanesh重新定义了离散PSO算法中的加法与乘法，并使用人工免疫系统中的阴性选择来实现速度限制Vmax。
Hu提出了一种改进PSO算法来处理排列问题。微粒被定义为一组特定值的排列，速度基于两个微粒的相似度重新定义，微粒根据由它们的速度所定义的随机率来变换到一个新的排列。引入了一个变异因子来防止当前的pBest陷入局部最小。在n皇后问题上的初步研究显示改进的PSO算法在解决约束满意问题方面很有前途。
Migliore对原始的二进制PSO算法进行了一些改进，提出了可变行为二进制微粒群算法（VB-BPSO）和可变动态特性二进制微粒群算法（VD-BPSO）。VB-BPSO算法按照连续PSO算法的速度更新公式的思想设计了一个新的速度更新公式，用来确定微粒位置向量每一位为1的概率。而VD-BPSO算法则是根据一定规则在两组不同参数确定的VB-BPSO算法之间切换。Migliore应用该算法设计出一种简单鲁棒的自适应无源天线。
Parsopoulos以标准函数为例测试微粒群优化算法解决整数规划问题的能力。Salman将任务分配问题抽象为整数规划模型并提出基于微粒群优化算法的解决方法。两者对迭代产生的连续解均进行舍尾取整后评价其质量。但是PSO算法生成的连续解与整数规划问题的目标函数评价值之间存在多对一的映射，以整型变量表示的目标函数不能准确反映算法中连续解的质量，而由此导致的冗余解空间与相应的冗余搜索降低了算法的收敛效率。
高尚采用交叉策略和变异策略，将PSO算法用来解决集合划分问题。赵传信重新定义了微粒群位置和速度的加法与乘法操作，并将PSO算法应用到0/1背包问题求解中。EL-Gallad在PSO算法中引入探索和勘探两个算子，用于求解排序问题。Firpi提出了BPSO算法的一种保证收敛的版本（但是并未证明其保证收敛性），并将其应用到特征选择问题。
上述离散PSO算法都是间接的优化策略，根据概率而非算法本身确定二进制变量，未能充分利用PSO算法的性能。在处理整数变量时，PSO算法有时候很容易陷入局部最小。原始PSO算法的思想是从个体和同伴的经验进行学习，离散PSO算法也应该借鉴该思想。高海兵基于传统算法的速度—位移更新操作，在分析微粒群优化机理的基础上提出了广义微粒群优化模型（GPSO），使其适用于解决离散及组合优化问题。GPSO 模型本质仍然符合微粒群优化机理，但是其微粒更新策略既可根据优化问题的特点设计，也可实现与已有方法的融合。基于类似的想法，Goldbarg将局部搜索和路径重连过程定义为速度算子，来求解TSP问题。
并行算法
与大多数随机优化算法相似，当适应值评价函数的计算量比较大时，PSO算法的计算量会很大。为了解决该问题，研究者提出了并行PSO算法。与并行遗传算法类似，并行PSO算法也可以有三种并行群体模型：主从并行模型、岛屿群体模型和邻接模型。
Schutte采用同步实现方式，在计算完一代中所有点的适应值之后才进入下一代。这种并行方法虽然实现简单，但常常会导致并行效率很差。故而有人提出异步方式的并行算法，可以在对数值精度影响不大的条件下提高PSO算法的并行性能。这两种方式采用的都是主从并行模型，其中异步方式在求解上耦合性更高，更容易产生通信瓶颈。
Baskar提出一种两个子种群并行演化的并发PSO算法，其中一个子种群采用原始的PSO算法，另一个子种群采用基于适应值距离比的PSO算法（FDR-PSO）；两个子种群之间频繁地进行信息交换。而El-Abd研究了在子种群中采用局部邻域版本的协作PSO算法，并研究了多种信息交换的方式及其对算法性能的影响。黄芳提出一种基于岛屿群体模型的并行PSO算法，并引入一种集中式迁移策略，提高了求解效率，同时改善了早收敛现象。
Li提出延迟交换信息的并行算法属于邻接模型，该算法可以提高速度，但可能使得解的质量变差。
优化问题求解
PSO算法被广泛应用于各种优化问题，并且已经成为优化领域中的一个有效算法。除了普通函数优化之外，还包括如下方面。
混合整数非线性规划很多求解整数规划的算法是在采用实数域的算法进行优化后，再将结果取整作为整数规划的近似解。这种做法常常导致不满足约束或远离最优解。谭瑛提出一种在整数空间中直接进行进化计算的PSO算法。刘钊针对混合整数非线性规划中可行解产生代价较高的问题，建立了保证都是合法解的备用微粒库，并提出微粒迁移策略，帮助微粒跳出局部最优。
噪声和动态环境动态系统的状态会经常改变，甚至可能会连续变化。许多实际系统都会涉及到动态环境。例如，由于顾客的优先级、意外的设备维护等导致的变化，调度系统中大多数计算时间都被用来进行重新调度。在实际应用中，这些系统状态的变化就需要经常进行重新优化。
最初使用微粒群算法跟踪动态系统的工作由Carlisle提出，通过周期性地重置所有微粒的记忆来跟踪动态系统。Eberhart也采用类似想法；之后Hu提出一种自适应PSO算法，能够自动跟踪动态系统中的不同变化，并在抛物线benchmark函数上对不同的环境检测和响应技术进行了实验，其中使用的检测方法是监控种群中最优微粒的行为。后来Carlisle使用搜索空间中的一个随机点来确定环境是否发生变化，但是这需要集中控制，与PSO算法的分布式处理模型不符。为此Cui提出TDPSO算法，让最优历史位置的适应值随着时间减小，从而不再需要集中控制。Blackwell在微粒的更新公式中添加了一项惩罚项，来保持微粒处于一个扩展的群中，以应对快速变化的动态环境，该方法中不需要检测最优点是否发生变化。
Parsopoulos等的试验表明，基本PSO算法就可以有效而稳定地在噪声环境中工作，且在很多情况下，噪声的存在还可以帮助PSO算法避免陷入局部最优。Parsopoulos还通过试验研究了UPSO算法在动态环境中的性能。Pugh提出一种抗噪声的PSO算法。Pan将假设检验和最优计算预算分配（OCBA）技术引入微粒群算法，提出PSOOHT算法，来解决噪声环境下的函数优化问题。
上述工作的研究对象都是简单的动态系统，所采用的实验函数是简单的单模函数，并且所涉及的变化都是简单环境下的均匀变化（即固定步长）。而事实上，实际的动态系统经常是非线性的，并在复杂的多模搜索空间中非均匀变化。Li采用四个PSO模型，对一系列不同的动态环境进行了对比研究。
上述方法均是针对仅跟踪单个最优点的情况，近年来，还出现了一些可以同时跟踪多个最优点的算法。
多目标优化近年来，多目标优化（MO）成为一个活跃的研究领域。在多目标优化问题中，每个目标函数可以分别独立进行优化，然后为每个目标找到最优值。但是，很少能找到对所有目标都是最优的完美解，因为目标之间经常是互相冲突的，只能找到Pareto最优解。
PSO算法中的信息共享机制与其他基于种群的优化工具有很大的不同。在遗传算法（GA）中，染色体通过交叉互相交换信息，是一种双向信息共享机制。但是在PSO算法中，只有gBest（或nBest）给其他微粒提供信息，是一种单向信息共享机制。由于点吸引特性，传统的PSO算法不能同时定位构成Pareto前锋的多个最优点。虽然通过对所有目标函数赋予不同的权重将其组合起来并进行多次运行，可以获得多个最优解，但是还是希望有方法能够一次同时找到一组Pareto最优解。
在PSO算法中，一个微粒是一个独立的智能体，基于其自身和同伴的经验来搜索问题空间。前者为微粒更新公式中的认知部分，后者为社会部分，这二者在引导微粒的搜索方面都有关键的作用。因此，选择适当的社会和认知引导者（gBest和pBest）就是MO-PSO算法的关键点。认知引导者的选择和传统PSO算法应遵循相同的规则，唯一的区别在于引导者应按照Pareto支配性来确定。社会引导者的选择包括两个步骤。第一步是建立一个从中选取引导者的候选池。在传统PSO算法中，引导者从邻居的pBest之中选取。而在MO-PSO算法中更常用的方法是使用一个外部池来存储更多的Pareto最优解。第二步就是选择引导者。gBest的选择应满足如下两个标准：首先，它应该能为微粒提供有效的引导来获得更好的收敛速度；第二，它还需要沿Pareo前锋来提供平衡的搜索，以维持种群的多样性。文献中通常使用两种典型的方法：（1）轮盘选择模式，该方式按照某种标准进行随机选择，其目的是维持种群的多样性；（2）数量标准：按照某种不涉及随机选择的过程来确定社会引导者。
Moore最早研究了PSO算法在多目标优化中的应用，强调了个体和群体搜索二者的重要性，但是没有采用任何维持多样性的方法。Coello在非劣最优概念的基础上应用了一个外部“容器”来记录已找到的非支配向量，并用这些解来指导其它微粒的飞行。Fieldsend采用一种称为支配树的数据结构来对最优微粒进行排序。Parsopoulos应用了权重聚合的方法。Hu应用了动态邻域，并在此基础上利用扩展记忆，按词典顺序依次优化各个目标。Ray使用聚集机制来维持多样性，并用一个多水平筛来处理约束。Lu使用了动态种群策略。Bartz-Beielstein采用归档技术来提高算法性能。Li在PSO算法中采用NSGA-II算法中的主要机制，在局部最优微粒及其后代微粒之间确定局部最优微粒；并此基础上又提出一种新的算法，在适应值函数中使用最大最小策略来确定Pareto支配性。张利彪使用多个目标函数下各最优位置的均值来指导微粒飞行。Pulido使用多个子种群并采用聚类技术来求解多目标规划问题。Mahfouf采用加权聚合方法来计算微粒的适应值，并据此确定引导微粒的搜索。Salazar-Lechuga使用适应值共享技术来引导微粒的搜索。Gong提出微粒角度的概念，并使用最小微粒角度和微粒密度来确定局部最优和全局最优微粒。基于AER模型，Zhang提出一种新的智能PSO模型，来将种群驱向Pareto最优解集。Ho提出一种新的适应值分配机制，并使用寿命（Age）变量来保存和选择最优历史记录。Huang将CLPSO算法应用到多目标规划中。Ho提出另一种基于Pareto的与尺度无关的适应值函数，并使用一种基于正交试验设计的智能运动机制（IMM）来确定微粒的下一步运动。Branke系统研究了多种个体最优微粒的选择方法对MOPSO算法性能的影响。张勇考虑储备集更新策略在多目标PSO算法中的关键作用，提出一种两阶段储备集更新策略。
原萍提出一种分布式PSO算法—分割域多目标PSO算法（DRMPSO），并将其应用到基站优化问题。向量评价PSO算法（VEPSO）是一种受向量评价遗传算法（VEGA）的启发提出的一种算法，在VEPSO算法中，每个种群仅使用多个目标函数之一来进行评价，同时各种群之间互相交互经验。将每个种群分配到一台网络PC上，即可直接使VEPSO算法并行化，以加速收敛。Vlachogiannis应用并行VEPSO算法来确定发电机对输电系统的贡献。熊盛武利用PSO算法的信息传递机制，在PSO算法中引入多目标演化算法常用的归档技术，并采用环境选择和配对选择策略，使得整个群体在保持适当的选择压力的情况下收敛于Pareto最优解集。
由于适应值的计算非常消耗计算资源，为了减少计算量，需要减少适应值评价的次数。Reyes-Sierra采用适应值继承和估计技术来实现该目标，并比较了十五种适应值继承技术和四种估计技术应用于多目标PSO算法时的效果。
保持MOPSO中的多样性的方法主要有两种：sigma方法和ε-支配方法。Villalobos-Arias在目标函数空间中引入条块划分来形成聚类，从而保持多样性。
约束优化约束优化问题的目标是在满足一组线性或非线性约束的条件下，找到使得适应值函数最优的解。对于约束优化问题，需要对原始PSO算法进行改进来处理约束。
一种简单的方法是，所有的微粒初始化时都从可行解开始，在更新过程中，仅需记住在可行空间中的位置，抛弃那些不可行解即可。该方法的缺点是对于某些问题，初始的可行解集很难找到。或者，当微粒位置超出可行范围时，可将微粒位置重置为之前找到的最好位置，这种简单的修正就能成功找到一系列Benchmark问题的最优解。Paquet让微粒在运动过程中保持线性约束，从而得到一种可以解决线性约束优化问题的PSO算法。Pulido引入扰动算子和约束处理机制来处理约束优化问题。Park提出一种改进的PSO算法来处理等式约束和不等式约束。
另一种简单的方法是使用惩罚函数将约束优化问题转变为无约束优化问题，之后再使用PSO算法来进行求解。Shi将约束优化问题转化为最小—最大问题，并使用两个共同进化的微粒群来对其求解。谭瑛提出一种双微粒群的PSO算法，通过在微粒群间引入目标信息与约束信息项来解决在满足约束条件下求解目标函数的最优化问题。Zavala在PSO算法中引入两个扰动算子，用来解决单目标约束优化问题。
第三种方法是采用修复策略，将微粒发现的违反约束的解修复为满足约束的解。
约束满足问题PSO算法设计的初衷是用来求解连续问题，但近年来对于可满足性问题PSO算法的研究也不断得到人们的重视。Schoofs提出用PSO算法求解二元约束满足问题，对微粒的位置和速度计算公式进行了重新定义，使用变量和它的关联变量存在的冲突数作为微粒的适应度函数，并指出该算法在求解约束满足问题上具有一定优势。Lin在Schoofs工作的基础上研究了使用PSO算法来求解通用的n元约束满足问题。杨轻云在Schoofs工作的基础上对适应度函数进行了改进，把最大度静态变量序列引入到适应度函数的计算中。