记录使用python实现PSO求解最大值问题时,最需要注意的事
最近由于参与写一本书,要写一个基本的PSO算法(这里暂不能公开代码),由于之前对PSO算法执行过程了解的并不多,所以遇到了一个问题:算法始终不收敛,也就是始终找不到连续函数的最大值,并且随着不断的迭代,留在解空间【x范围】内的粒子数量逐渐减少。
搞了小半天,最后终于找到问题的原因,那就是在更新完所有粒子位置x时,没有对越界的x值进行处理,导致粒子搜素到解范围以外的地方去了,加上 x 取值越界处理之后,问题解决 😃
最近由于参与写一本书,要写一个基本的PSO算法(这里暂不能公开代码),由于之前对PSO算法执行过程了解的并不多,所以遇到了一个问题:算法始终不收敛,也就是始终找不到连续函数的最大值,并且随着不断的迭代,留在解空间【x范围】内的粒子数量逐渐减少。
搞了小半天,最后终于找到问题的原因,那就是在更新完所有粒子位置x时,没有对越界的x值进行处理,导致粒子搜素到解范围以外的地方去了,加上 x 取值越界处理之后,问题解决 😃