Model.cbStopOneMultiObj ()
Model.cbStopOneMultiObj ()
cbStopOneMultiObj(objcnt)在一个多目标MIP问题中,中断其中一个优化步骤的优化过程,而不停止层次优化过程。仅适用于多目标MIP模型和当在哪里成员变量不等于GRB.Callback.MULTIOBJ(见回调代码章节以获取更多信息)。
你通常会通过查询最后完成的多目标步骤数来停止多目标优化步骤,并使用该数字来停止当前步骤,并移动到下一个层次目标(如果有),如下例所示:
使用示例:
if where == GRB.Callback.MULTIOBJ: #获取当前目标的数字模型。_objcnt = model. cbget (GRB.Callback.MULTIOBJ_OBJCNT) #重置开始时间到当前时间模型。_starttime = time.time() #看看我们是否想要停止当前的多目标步骤,否则如果time.time() - model. time()。#停止这个优化步骤cbStopOneMultiObj(model._objcnt) model。_objcnt = 0模型。_starttime = time.time() model.optimize(mycallback)
你应该参考上一节多个目标有关如何指定多个目标函数和控制它们之间的权衡的信息。
参数:
objnum:多目标优化步骤中断的次数。对于本地运行的进程,此参数可以具有特殊值-1,表示停止当前步骤。