粒子群算法(PSO)是一种无导数的全局优化求解器。
Particle swarm optimization (PSO) is a derivative-free global optimum solver.
它的灵感来自于一大群简单动物的令人惊讶的有组织的行为,例如成群的鸟、成群的鱼或成群的蝗虫。
It is inspired by the surprisingly organized behaviour of large groups of simple animals, such as flocks of birds, schools of fish, or swarms of locusts.
这种算法中的个体生物,或“粒子”,是最原始的,只知道四个简单的信息:1&2)它们自己在搜索空间中的当前位置和适应值,3)它们以前的个体最佳位置,4)所有粒子在“群”中找到的总体最佳位置。
The individual creatures, or “particles”, in this algorithm are primitive, knowing only four simple things: 1 & 2) their own current location in the search space and fitness value, 3) their previous personal best location, and 4) the overall best location found by all the particles in the “swarm”.
算法中无法计算梯度或Hessian。
There are no gradients or Hessians to calculate.
每个粒子基于这些信息在搜索空间中不断地调整其速度和轨迹,随着每次迭代向全局最优方向移动。
Each particle continually adjusts its speed and trajectory in the search space based on this information, moving closer towards the global optimum with each iteration.
从本质上看,尽管单个粒子非常简单,但是计算群表现出了显著的一致性和协调性。
As seen in nature, this computational swarm displays a remarkable level of coherence and coordination despite the simplicity of its individual particles.
主要特征:
*支持使用MATLAB的并行计算工具箱的分布式计算。
*完全支持有界、线性和非线性约束。
*模块化和可定制。
*二进制优化。有关详细信息,请参阅PSOBINARY函数。
*向量化适应度函数。
*使用类似于现有MATLAB优化求解器的“选项”结构来控制求解器参数。
*用户自定义绘图可以使用与GA绘图函数相同的模板编写。
*称为“混合函数”的另一个优化求解器可以精炼PSO结果。
-
Support for distributed computing using MATLAB’s parallel computing toolbox.
-
Full support for bounded, linear, and nonlinear constraints.
-
Modular and customizable.
-
Binary optimization. See PSOBINARY function for details.
-
Vectorized fitness functions.
-
Solver parameters controlled using ‘options’ structure similar to existing MATLAB optimization solvers.
-
User-defined custom plots may be written using same template as GA plotting functions.
-
Another optimization solver may be called as a “hybrid function” to refine PSO results.
代码中包括了一个演示函数,以及一个小型测试函数库。要运行演示DEMO,请从psopt目录调用>> psodemo。
参考文献:
- J Kennedy, RC Eberhart, YH Shi. Swarm Intelligence. Academic Press, 2001.
- Particle Swarm Optimization. http://en.wikipedia.org/wiki/Particle_swarm_optimization
- RE Perez, K Behdinan. Particle swarm approach for structural design optimization. Computers and Structures 85 (2007) 1579–1588.
- SM Mikki, AA Kishk. Particle Swarm Optimization: A Physics-Based Approach. Morgan & Claypool, 2008.
源码下载地址:
http://page5.dfpan.com/fs/7leccjf20291c2b9166/
更多精彩文章请关注微信号: