模拟退火与跳盆算法

机器算法验证 优化 算法 模拟退火
2022-03-13 18:44:38

我打算使用模拟退火算法(scipy.optimize 实现)来优化我的黑盒目标函数,但文档中提到该方法是

在 scipy 0.14.0 中已弃用,请改用盆地跳跃

并建议改用Basin-hopping算法。这是否意味着该算法在所有情况下都优于模拟退火?为什么它声称比 SA性能更高?

1个回答

不推荐使用模拟退火的原因并不是因为流域跳跃在理论上优于它。是因为库中对模拟退火所做的具体实现是第二种的特例。

如果您想使用模拟退火算法,我建议您改用 scipy.optimize.dual_annealing,但使用(这恢复经典模拟退火,即温度对数减少)。其他参数选择导致更复杂的退火过程,例如(恢复快速模拟退火,即温度降低到逆)。visit=qv=1,acept=qa=1visit=qv=2,acept=qa=1

观察:正如@JamesBowery 在他的评论中指出的那样,您应该关闭本地优化器。