图像缩略图

约束粒子群优化

version 1.31.4 (40.6 KB) by 山姆
与遗传算法工具箱语法相同的PSO算法的实现。

34.6 k下载

更新2018年11月05

从GitHub

在GitHub上查看许可证

以前的标题是“另一个粒子群工具箱”

介绍
粒子群算法是一种无导数的全局最优解。它的灵感来自于大群简单动物惊人的有组织行为,如鸟群、鱼群或蝗虫群。该算法中的个体生物或“粒子”是原始的,只知道四件简单的事情:1和2)它们自己当前在搜索空间中的位置和适应度值,3)它们以前的个人最佳位置,4)“群”中所有粒子找到的整体最佳位置。不需要计算梯度或Hessians。每个粒子根据这个信息在搜索空间中不断调整自己的速度和轨迹,每次迭代都更接近全局最优。就像在自然界中看到的那样,尽管单个粒子很简单,但这个计算群显示出了显著的一致性和协调水平。

易用性
如果您已经在使用MATLAB的全局优化工具箱中包含的遗传算法(GA),那么这个PSO工具箱将为您节省大量时间。可以使用与GA相同的语法从MATLAB命令行调用它,并使用一些特定于PSO的附加选项。这将允许PSO工具箱和GA工具箱之间高度的代码可重用性。某些特定于ga的参数,如交叉和变异函数,显然不适用于PSO算法。然而,遗传算法工具箱的许多常用选项可以与粒子群算法互换使用,因为它们都是基于迭代种群的求解器。更多细节请参阅>> help pso(来自./ popt目录)。

特性
*支万博1manbetx持使用MATLAB的并行计算工具箱进行分布式计算。
*完全支持有界万博1manbetx、线性和非线性约束。
*模块化和可定制。
*二进制优化。详见PSO二进制函数。
*向量化适应度函数。
*求解器参数控制使用'options'结构类似于现有的MATLAB优化求解器。
*用户自定义绘图可以使用与GA绘图函数相同的模板编写。
*另一种优化求解器可称为“混合函数”,以改进PSO结果。

包括一个演示函数和一个小的测试函数库。要运行演示,请从psopt目录调用>>psodemo,无需输入或输出。

欢迎错误报告和功能请求。

特别感谢以下人员提供的代码和错误修复:
*香港大学康本新教授
*汉诺威大学的克里斯汀·汉森
来自MATLAB中心社区的Erik Schreurs
*杨百翰大学J.奥利弗
* IRIS工具箱的Michael Johnston
*陈自强

参考书目
* J Kennedy, RC Eberhart, Shi YH群体智慧。学术出版社,2001年。
*粒子群优化。http://en.wikipedia.org/wiki/Particle_swarm_optimization
*RE Perez,K Behdinan.结构设计优化的粒子群方法.计算机与结构85(2007)1579–1588。
*SM Mikki,AA Kishk。粒子群优化:一种基于物理的方法。摩根和克莱普,2008年。

附录A
c(x)≤0的非线性不等式约束和ceq(x) = 0的非线性等式约束现在已经完全实现了。“惩罚”约束边界执行方法现在是默认的。它经过了重新设计和广泛测试,应该能够处理所有类型的约束。

有关定义非线性约束函数的正确语法,请参见以下文档://www.tianjin-qmedu.com/help/optim/ug/writing-constraints.html#brhkghv-16
为了看到非线性不等式约束的演示,使用覆盖在Rosenbrock函数上的四叶结构,运行PSODEMO并选择“非线性构造demo”作为测试函数。

附录B
请参阅GA工具箱文档中的以下指南,以开始使用并行计算工具箱。
//www.tianjin-qmedu.com/help/gads/genetic-algorithm-options.html#f17234

附录C
如果你刚开始学习,希望在工作或学校中使用这个工具箱,这里有一些必要的阅读材料:
* MATLAB优化工具箱://www.tianjin-qmedu.com/help/optim/index.html
* MATLAB全局优化工具箱://www.tianjin-qmedu.com/help/gads/index.html
*MATLAB的遗传算法://www.tianjin-qmedu.com/help/gads/genetic-algorithm.html

附录D
现在在全局优化工具箱中包含了一个粒子群优化器。如果您安装了全局优化工具箱的最新版本,则需要在代码中适当设置路径以使用此工具箱。

引用为

陈胜胜。约束粒子群优化(2009-2018)。MATLAB文件交换。//www.tianjin-qmedu.com/matlabcentral/fileexchange/25986.

MATLAB版本兼容性
使用R2017a创建
与任何版本兼容
平台的兼容性
窗户 马科斯 Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!
要查看或报告这个GitHub插件中的问题,请访问GitHub存储库
要查看或报告这个GitHub插件中的问题,请访问GitHub存储库