# GRBCallback::stopOneMultiObj()

Filter Content By
Version
Languages

### GRBCallback::stopOneMultiObj()

Interrupt the optimization process of one of the optimization steps in a multi-objective MIP problem without stopping the hierarchical optimization process. Only available for multi-objective MIP models and when the where member variable is not equal to GRB_CB_MULTIOBJ (see the Callback Codes section for more information).

You would typically stop a multi-objective optimization step by querying the last finished number of multi-objectives steps, and using that number to stop the current step and move on to the next hierarchical objective (if any) as shown in the following example:

Example usage:

#include <ctime>

class mycallback: public GDBCallback
{
public:
int    objcnt    = 0;
time_t starttime = time();

protected:
void callback () {
if (where == GRB_CB_MULTIOBJ) {
/* get current objective number */
objcnt = getIntInfo(GRB_CB_MULTIOBJ_OBJCNT);

/* reset start time to current time */
starttime = time();
} else if (time() - startime > BIG ||
/* takes too long or good enough  */) {
/* stop only this optimization step */
stopOneMultiObj(objcnt);
}
}
}


You should refer to the section on Multiple Objectives for information on how to specify multiple objective functions and control the trade-off between them.

 void stopOneMultiObj ( int objcnt )

Arguments:

objnum: The number of the multi-objective optimization step to interrupt. For processes running locally, this argument can have the special value -1, meaning to stop the current step.