ortools路由求解器错过了具有更好ObjectiveValue的解决方案,但说“ NoMoreSolutions”

时间:2019-06-12 11:10:36

标签: python constraint-programming or-tools

我使用routing.SolveFromAssignmentWithParameters(initial_solution, pywrapcp.DefaultRoutingSearchParameters())运行了两次相同的模型。

当我使用assignment.ObjectiveValue()=1471713给它一个initial_solution时,它将在几秒钟内将目标提高到1440093,并声称:search.cc:375] ######## NoMoreSolutions()

但是,还有更好的任务!与assignment.ObjectiveValue()=1242107。我检查了它是否与routing.solver().CheckAssignment()有效,并且确实有效。求解器为什么会错过它,为什么它要求NoMoreSolutions? :(我以为CP解算器的整个思路是按照智能启发式顺序广泛搜索所有个可行解,直到我停止为止。

即使是陌生人-我也将更好的分配作为初始解决方案,并在几秒钟内将其改进为具有目标1240146(并再次声明NoMoreSolutions)的更好解决方案,但我不再购买该谎言了:)

我想念什么?我确定我没有给任何time_limitsolution_limit

我正在使用带有ortools==7.0.6546的python。

0 个答案:

没有答案