设置时间后停止Scipy最小化

设置时间后停止Scipy最小化,第1张

设置时间后停止Scipy最小化

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

from multiprocessing import Process, Queueimport timeimport randomfrom __future__ import print_functiondef 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 = 3t0 = time.time()p.start()while time.time() - t0 < max_time:    p.join(timeout=1)    if not p.is_alive():        breakif p.is_alive():    #process didn't finish in time so we terminate it    p.terminate()    result = Noneelse:    result = q.get()print(result)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5639665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存