首页 > 解决方案 > 手动终止 Scipy Minimize()

问题描述

我制作了一个使用 Scipyminimize()函数(使用 SLSQP 求解器)执行多元约束优化的应用程序。

某些场景可能需要相当长的时间来优化,有时用户可能会无意中触发一个“漫长”的优化过程,并且可能想要一种方法来终止该过程,修复一些输入,然后再试一次。

优化本身是在“后台进程”脚本中完成的,该脚本访问优化请求排队的“任务”数据库表。我还使用minimize()'scallback()函数来更新数据库的优化过程。

文档说,对于“trust-constr”,如果callback()返回True,则该过程将终止。这个功能对我来说是理想的,但是我使用的是 SLSQP 求解器(不是 trust-constr),不幸的是它不会在我callback()返回时终止求解器True

还有其他方法可以编写代码以便用户终止优化吗?

我相当确定它需要使用该callback()功能,以便每次迭代都可以检查用户是否单击了“终止”。我也试过raise SystemExit(0),但这会杀死整个后台进程。也许有办法停止并重新启动我的后台进程?

标签: pythonnumpyoptimizationscipyminimize

解决方案


推荐阅读