Python 手动终止Scipy最小化()

Python 手动终止Scipy最小化(),python,numpy,optimization,scipy,minimize,Python,Numpy,Optimization,Scipy,Minimize,我制作了一个应用程序,使用Scipy的minimize()函数(使用SLSQP解算器)执行多变量约束优化 有些场景可能需要相当长的时间来优化,有时用户可能会无意中触发一个“漫长”的优化过程,并可能需要一种方法来终止该过程,修复一些输入,然后重试 优化本身在“后台进程”脚本中完成,该脚本访问优化请求排队的“任务”数据库表。我还使用minimize()的callback()函数来随着优化过程的进展更新数据库 文档说明,对于“trust constr”,如果callback()返回True,则进程将终

我制作了一个应用程序,使用Scipy的
minimize()
函数(使用SLSQP解算器)执行多变量约束优化

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

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

文档说明,对于“trust constr”,如果
callback()
返回
True
,则进程将终止。 此功能对我来说非常理想,但是我使用的是SLSQP解算器(而不是trust constr),不幸的是,当我的
callback()
返回
True
时,它不会终止解算器

是否有其他方法可以编写代码,以便用户可以终止优化

我很确定它需要使用
callback()
函数,这样每次迭代都可以检查用户是否单击了“终止”。 我还尝试了
提升SystemExit(0)
,但这会扼杀整个后台进程。也许有办法停止并重新启动我的后台进程?

请参阅:请参阅: