当前位置: 首页 > 面试题库 >

设置时间后停止Scipy最小化

祁渊
2023-03-14
问题内容

我在Python 3.4上的Scipy模块中使用了minimum,具体是:

resultats=minimize(margin_rate, iniprices, method='SLSQP',
jac=margin_rate_deriv, bounds=pricebounds, options={'disp': True,
'maxiter':2000}, callback=iter_report_margin_rate)

可以设置最大迭代次数(如上所述),但是有没有办法告诉最小化在给定的设置时间之后停止搜索解决方案?我查看了最小化的常规选项以及SLSQP求解器的特定选项,但无法解决。

谢谢


问题答案:

否。您可以做的是在一个单独的进程中启动优化器,跟踪其运行时间并在必要时终止它:

from multiprocessing import Process, Queue
import time
import random
from __future__ import print_function

def f(param, queue):
    #do the minimization and add result to queue
    #res = minimize(param)
    #queue.put(res)

    #to make this a working example I'll just sleep a 
    #a random amount of time
    sleep_amount = random.randint(1, 10)
    time.sleep(sleep_amount)
    res = param*sleep_amount
    queue.put(res)

q = Queue()
p = Process(target=f, args=(2.2, q))
max_time = 3
t0 = time.time()

p.start()
while time.time() - t0 < max_time:
    p.join(timeout=1)
    if not p.is_alive():
        break

if p.is_alive():
    #process didn't finish in time so we terminate it
    p.terminate()
    result = None
else:
    result = q.get()
print(result)


 类似资料:
  • 这与以下内容有关: 卡皮坦岛的Safari 9.1 塞拉山的Safari 10 当浏览器或选项卡失去焦点(主要是最小化)时,有人知道Safari在JavaScript引擎中对setTimeout()做了什么吗? 我创建了一个简单的JavaScript web应用程序,我在Safari中加载该应用程序,它调用JavaScript setTimeout(),并在超时值之后传递另一个要执行的函数。该函数

  • Firebase在大约一个小时后停止连接到数据库并停止工作。如果我退出并重新登录,它的工作原理很好。这是使用谷歌和Facebook登录(目前为Facebook)。 我已经登录了,大约一个小时后,出现了这个: W/PersistentConnection:pc_0-提供的身份验证凭据无效。这通常表示FirebaseApp实例未正确初始化。确保你的谷歌服务。json文件具有正确的firebase_ur

  • motioncfp.java:

  • 你可以通过剪辑AnimationClip、操作AnimationAction、混合器AnimationMixer完成一些播放效果。 播放/暂停(.paused属性) <button onclick="pause()" type="button" style="position: absolute;padding: 10px;">暂停/继续</button> <script> // 暂停继续播放

  • 问题内容: 在我的组织中,我们有许多Redis工作人员来完成我们的关键任务。通常,一天一次或两次,我们的工人会停止处理队列。 该代码基本上如下所示: 如果看到的话,就代码而言,发生的事情并不多,但是每隔一段时间,队列就会开始建立,并且工作程序不会从队列中弹出任何项目。为设置超时根本没有用,因为我们假设问题出在Redis客户端连接上。 目前,我们已经建立了一些侦听器,这些侦听器会在队列建立时提醒我们

  • 触发spring boot REST服务后,该服务可以正常运行数小时,所有请求都可以正常工作,没有任何问题。发生的是,一段时间后,它随机地停止了。在查看日志时,我没有发现任何错误,除了应用程序已被销毁的信息。 一段时间后的日志 Maven依赖项 对于为什么spring boot REST API可能会停止有什么想法吗?我的maven依赖关系是根据演示的--而且它正在成功运行--这就是为什么服务在随