微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何与 Gurobi 同时求解多个 Pyomo 模型?

如何解决如何与 Gurobi 同时求解多个 Pyomo 模型?

我已将一个优化模型分解为三个独立的模型,我想同时解决它们。在我尝试之前,我想看看我是否可以通过使用 multiprocessing 并将两个 ConcreteModel() 对象传递给目标函数来同时解决两个简单的 pyomo 模型,这些对象基本上具有解决(模型)命令来使用 { {1}}。这是概念:

Gurobi

当我运行这个时,我收到以下错误

model = ConcreteModel()  
model2= ConcreteModel()

...
etc
...

opt = SolverFactory('gurobi')

def solveit(x):
    opt.solve(x)


if __name__ == '__main__':
    p1 = Process(target=solveit,args=(model,))
    p2 = Process(target=solveit,args=(model2,))
    p1.start()
    p2.start()
    p1.join()
    p2.join()

我对 Pyomo/multiprocessing 的理解很肤浅,我无法弄清楚错误意味着什么。请注意,我使用函数来创建这样的目标和约束:

PicklingError: Can't pickle <function obj_rule at 0x00000177FA7E7310>: it's not the same object as 
__main__.obj_rule

那个错误是什么意思?你建议我做什么来实现我的目标?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。