我使用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_limit
或solution_limit
。
我正在使用带有ortools==7.0.6546
的python。