在docplex CpoCallback中设置CpoParameters不生效

问题描述 投票:0回答:1

使用cplex进行建模求解时,需要在cplex的callBack函数中重置求解参数TimeLimit。 Java中使用cplex建模可以生效,但Python中使用docpelx建模CpoCallback,参数修改成功,但是求解时不生效。为什么会出现这种情况?是不是因为Python在求解之前已经将求解的参数传递给了底层C++,导致后续的修改不起作用?有什么解决办法吗?python cpoCallback代码 java cpoCallback代码

按照逻辑,在Java中的CpoCallback中设置TimeLimit是可行的。如果用Python实现的话应该也可以工作,但是现在不行了

callback cplex cp docplex
1个回答
0
投票

这是 Python API 的当前限制。 作为解决方法,您可以在满足条件时在回调中停止搜索,并使用更新的限制启动另一个搜索。

例如,您可以在 invoke() 函数中使用类似以下内容:

if event == docplex.cp.solver.cpo_callback.EVENT_SOLUTION: solver.abort_search() 

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.