为Gurobi提供一个初始可行的解决方案可以帮助减少总体解决时间(但不能保证)。MIP启动可以通过使用开始变量属性或加载MIP启动(.mst)或解决方案(.sol)文件。
可以只定义二进制和整数变量的(子集)值,让Gurobi尝试计算其余变量的可行值。如果一个完整的开始向量违反了少量的约束,因此不被接受,那么这将非常有用。
一个相关的选项是变量的暗示.这些值指导求解器在整个求解过程中。手机万博登录如果您知道某个变量在解决方案中可能有某个值,那么可以设置变量提示来帮助Gurobi找到解决方案。
使用多个MIP启动
可以为古罗比提供多种可行的启动方案。这可以通过我们的api或命令行工具完成。
从api中,您可以使用NumStart属性和StartNumber参数。例如,在我们的Python API中,这可以实现如下:
模型。NumStart = 2
#迭代所有MIP开始
for s in range(model.NumStart):
#设置StartNumber
model.params.StartNumber =年代
#现在使用start属性设置MIP的起始值,例如:
for v in model.getVars():
v.Start = <值>
当使用命令行工具时,gurobi_cl,你可以使用InputFile多次争论,例如,
gurobi_cl InputFile = mipstart1。mst InputFile = mipstart2。mst model.mps
对于这两种方法,Gurobi将调查所有提供的MIP启动,并使用最好的一个。
完成Partial MIP启动
的StartNodeLimit参数可用于在尝试完成部分MIP启动时控制探索的分支和绑定节点的数量。默认情况下,它将使用与SubMIPNodes.