【发布时间】:2018-12-06 06:04:21
【问题描述】:
我正在使用这个库 - https://pythonhosted.org/pyswarm/ 来查找凸函数的全局最小值。这只是开始并致力于非凸函数。我使用线性回归找到了全局最小值,但问题是 PSO 似乎收敛于不同的点,具体取决于我设置的 omega 和 phi(s) 的值。通过将成本与线性回归给出的最小值进行比较,我可以确认这些点不是全局最小值。
这在 PSO 中是否可能收敛(10 次迭代后值不会改变)还是我在某处犯了一些错误?
【问题讨论】:
-
一般来说,如果您发现自己(使用 PSO)没有取得进一步进展,首先检查您的 swarm 中当前正在使用的其他解决方案(非最佳),然后您可能需要调整拓扑您的群体,例如您的粒子如何相互通信(您是否只存储 1 个最佳解决方案或一小部分以从每一代中提取?)您的群体中有多少粒子?不要忘记您也可以重新开始,通过获取当前状态并注入一些具有随机域位置的粒子来重新优化您的优化。 (只是为了帮助多样性)
标签: python optimization convex-optimization particle-swarm