0

我正在使用 ORTools 来解决优化问题。因为我的约束数量太多而且需要很多时间,所以我决定使用多处理来创建和定义它们。这是我的代码的一部分:

def constraint_saz(constraints,i):
    constraints[i] = solver.Constraint(1,10)
    "creating constraints[i].SetCoefficient"


if __name__ == '__main__':

    manager = Manager()
    constraints = manager.list(range(N))

    for i in range(N):
        p = Process(target=constraint_saz, args=(constraints,i))
        p.start()
        p.join() 

但我得到了这个错误:

TypeError: can't pickle SwigPyObject objects

出了什么问题,我该如何解决?

4

1 回答 1

1

这取决于:

  • 线性求解器:应该是可能的,但目前没有 API。
  • 原始 CP 求解器路由库:不可用
  • CP-SAT:一个参数指定使用多少线程(num_search_workers)。
于 2019-03-23T10:59:21.167 回答