GRBCallback: stopOneMultiObj ()

中断的优化过程的优化步骤之一在一个没有停止分层优化的多目标MIP问题的过程。只有当用于多目标MIP模型在哪里成员变量不等于GRB_CB_MULTIOBJ(见回调代码部分获取更多信息)。

你通常会停止一个多目标优化的步骤通过查询目标序列的最后完成数量的步骤,并使用这个数字来停止当前步骤,继续下一个层次目标(如果有的话)下面的例子所示:

使用示例:

# include < ctime >类mycallback:公共GDBCallback{公众:int objcnt = 0;time_t开始时间= ();保护:空回调(){如果(= = GRB_CB_MULTIOBJ){/ *得到当前目标个数* / objcnt = getIntInfo (GRB_CB_MULTIOBJ_OBJCNT);/ *开始时间重置为当前时间* /开始时间= ();}else if(时间()——startime >大| | / *时间太长或好* /){/ *仅仅停止这种优化一步* / stopOneMultiObj (objcnt);}}}

你应该参考部分多个目标信息如何指定多个目标函数和控制它们之间的权衡。

无效 stopOneMultiObj( int objcnt)

参数:

objnum:多目标优化步骤中断的数量。在本地运行的进程,这个参数可以有一个特殊的值1,这意味着停止当前步骤。