我想了解Gurobi是如何运作的,并提出以下问题。
假设我从一个ILP模型开始' m'并获得解决方案' S'使用m.optimize()。现在,我向模型添加另一个约束并重新优化。 Gurobi是从头开始解决整个问题,还是从找到的解决方案中使用?' S'作为起点然后继续?
谢谢。
答案 0 :(得分:1)
如果合适的话,Gurobi以及每个好的解决方案都会尝试使用可用的解决方案作为修改问题的起点。您要问的是warm start。
具体而言,Gurobi的文档here中的这一段与您的问题相关:
对于线性模型,先前计算的解可以用作 修改模型的高效热启动。 Gurobi求解器保留 以前的解决方案,所以下一个优化调用会自动启动 从以前的解决方案。
所以,是的,它将使用先前的解决方案S,并将从那里继续进行重新优化,包括您添加的新约束。