GRBCallback: stopOneMultiObj ()


GRBCallback: stopOneMultiObj ()

在多目标MIP问题中,在不停止分层优化过程的情况下中断其中一个优化步骤的优化过程。仅适用于多目标MIP模型在哪里成员变量不等于GRB_CB_MULTIOBJ(见回调代码部分以获取更多信息)。

通常,您可以通过查询多目标步骤的最后完成数量来停止多目标优化步骤,并使用该数量停止当前步骤,并继续到下一个层次目标(如果有),如下例所示:

使用示例:

#include 类mycallback: public GDBCallback {public: int object = 0;Time_t starttime = time();protected: void callback () {if (where == GRB_CB_MULTIOBJ){/*获取当前目标数*/ object = getIntInfo(GRB_CB_MULTIOBJ_OBJCNT);/*重置起始时间为当前时间*/ starttime = time();} else if (time() - startime > BIG || /*花费太长或足够好*/){/*停止只有这个优化步骤*/ stopOneMultiObj(object);}}}

你应该参考关于多个目标有关如何指定多个目标函数并控制它们之间的权衡的信息。

无效 stopOneMultiObj int objcnt)

    参数:

    objnum:中断的多目标优化步骤数。对于本地运行的进程,该参数可以具有特殊值-1,表示停止当前步骤。



部分