我正在使用此库-https://pythonhosted.org/pyswarm/来查找凸函数的全局最小值。这只是开始并朝着非凸函数的方向努力。我使用线性回归发现了全局最小值,但问题在于,PSO似乎在不同点收敛,具体取决于我设置的Ω和phi的值。通过将成本与线性回归给出的最小值进行比较,可以确定这些点不是全局最小值。
在PSO中是否有可能收敛(值在10次迭代后值不会改变)还是我在某个地方犯了一些错误?
答案 0 :(得分:2)
PSO完全有可能收敛到错误的位置。关于元启发法的事情是,它们可能需要很多时间才能运行。在错误的位置进行十次迭代很可能。此外,收敛到绝对全局最小值将花费很长时间,并且该算法将永远无法证明已收敛到全局最小值,仅能达到终止标准。您对元启发式技术的期望应该是,它最终会给您一个很好的答案,而不是总是收敛于全局最小值。
为了弥补这些缺点(运行时间长,无法保证全局最小化),您会获得一种可以处理任何功能评估或适应状况的优化算法。