[编程训练][软件] 粒子群优化算法求解无约束最优化问题 [Particle Swarm Optimization Algorithm for Solving Unconstrained Optimization Problems]

实干、实践、积累、思考,创新。


  • 程序图标 ( Program Icon )

  • 程序介绍 ( Program Introduction)

假期花了几天研究粒子群优化算法,顺便写了这个小工具,简单测试无约束最优化问题,也顺便训练一下编程。

软件自带几个经典的PSO粒子群优化算法测试函数,具体包括:

0: Sphere

1: Eggcrate

2: Rosenbrock

3: Ackley

4: Schaffer

5: Rastrigrin

6: Cigar

7: Griewangk

8: Schwefel

几个函数的图像可以在这个博文查看:[笔记][智能算法]几个经典的PSO粒子群优化算法测试函数 (Benchmark function for PSO)

程序可以观察曲面的3D图及等高线图,另外可以看到粒子在迭代过程中的运动过程、查看全局最优位置。

另外体会是,对于不太复杂的问题,约束条件不多,变量不多,或者变量多的无约束优化问题,PSO算法还是不错。

但是当约束条件苛刻,变量多的时候,就很容易陷入局部最优。对于一些实际工程应用问题,往往是复杂的,想着依靠一个算法解决所有问题是不现实的。

  • 程序界面 ( Program Interface )

  • 操作演示 ( Program Interface )
  • 测试算例 (Test Examples )

看看几个测算例子

Sphere曲面:

全局最优点(0,0),最优值0

 

Eggcrate曲面:

全局最优点(0,0),最优值0

 

Rosenbrock曲面:

全局最优点(1,1),最优值0

 

Schwefel曲面:

全局最优点(1,1),最优值0

 

  • 相关博文 ( Related Topics)

[01] [编程][算法][几何] 编程训练: 凸包问题 [Convex-Hull Problem]

[02] [编程][算法][几何] 编程训练: 离散点的闭合路径 [Closed Path for points]

[03] [编程][算法][几何] 编程训练: 3次B样条曲线 [Cubic BSpline]

[04] [编程][算法][几何] 编程训练: 旅行商问题

[05] [编程][算法][几何] 编程训练: 3次Bezier曲线 [Cubic Bezier Curve]

[06] [编程][游戏][开发] 编程训练:数独游戏 ( Sudoku )

[07] [编程][软件][Programming] 编程训练:模拟退火算法(Simulated annealing algorithm)

[08] [编程][算法][优化] 编程训练:函数的CONLIN线性化

[09] [编程][算法][优化] 编程训练:函数的移动渐进线(MMA)近似

[09] [编程训练][Programming Training] URL Encode and Decode

[10] [游戏][编程][挑战] Programming challenge: Tetris Game [编程挑战: 俄罗斯方块游戏]

[11] [编程][软件][Tool] 幸运大抽奖程序 Lucky Draw

[12] Buffon’s Needle problem [蒲丰投针问题]

[13] [Game][游戏]CJD Core Ball[见缝插针游戏]

[14] Sierpinski Triangle by 1D Cellular Automata [1D元包自动机实现Sierpinski三角形]

[15] Cellular Automata Forest Fire Model [元包自动机森林火灾模型]

[16] Conway’s Game of Life [生命游戏]

[17] Mandelbrot Set & Julia Set [分形]

[18] Morley’s Theorem [莫利定理]

[19] Pascal’s Theorem [帕斯卡定理]

[20] [编程训练][Programming Training] Gaussian Distribution (高斯分布)

[21] [编程训练]Programming Training: Get Host

[22] [编程训练]Programming Training: Rotate Text

[23] [编程训练] 离散点的Delaunay三角形剖分( Delaunay triangulation of a point set)

[24] [编程训练] 图像分割 (Image segmentation)

[25] [编程训练] 拼图游戏 (Jigsaw Puzzle Game)

[26] [编程训练][Programming Training] Random number generator – Uniform Distribution (随机数生成器-均匀分布)

[27] [抽奖][软件][编程][年会] 2020公司年会抽奖 (图片抽奖) (RBS16周年纪念版) (Run by souls)

[28] [编程训练][游戏][数学] 红酒杯与白酒杯里到底有多少红酒和白酒?

[29] [数学][算法] 最小二乘法曲线拟合( Least square curve fitting )

[30] [编程][数学][编程训练] |x|^n+|y|^n=1小米logo轮廓曲线

[31] [数学][编程] 蒙特卡洛模拟法求圆周率π (Monte Carlo method to find PI)

[32] [编程训练] BMP图像缩放 (BMP Image scaling)

[33] [编程训练] 粒子群优化算法 [PSO: Particle Swarm Optimization]

[34] [编程][笔记] 如何将n^m个可能枚举出来?

[35] [数学][编程][混沌] 虫口模型的数值模拟 [Numerical simulation of insect population model]


You already voted!

  • 微信公众号 ( Wechat Subscription)

WeChat_QRCode欢迎关注 “结构之旅” 微信公众号

1 thought on “[编程训练][软件] 粒子群优化算法求解无约束最优化问题 [Particle Swarm Optimization Algorithm for Solving Unconstrained Optimization Problems]

  1. 苏键 Reply

    您好,崔博士。这个小软件可以发一下学习一下吗

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.