GRBsetcallbackfunc


GRBsetcallbackfunc

int GRBsetcallbackfunc GRBmodel *模型,
int (*cb)(GRBmodel *model, void *cbdata, int where, void *usrdata),
无效 * usrdata)

设置用户回调函数。注意,一个模型只能有一个回调函数,所以这个调用将替换现有的回调函数。

注意,一个模型只能有一个回调方法,所以这个调用将替换现有的回调方法。要禁用先前设置的回调函数,请使用cb的观点

当使用多个线程解决模型时,请注意用户回调只会从单个线程调用,所以您不需要担心回调的线程安全。

返回值:

非零返回值表明在设置用户回调时发生了问题。指的是错误代码表中可能的返回值列表。关于错误的详细信息可以通过调用GRBgeterrormsg

参数:

模型:应该安装回调的模型。

cb:指向用户回调函数的函数指针。将从Gurobi优化器定期调用回调。的在哪里参数将指示在优化过程中调用回调函数的位置。可能的值在回调代码部分。然后,用户回调可以调用许多例程来检索关于优化状态的额外细节(例如,GRBcbget),或注入新的信息(例如,GRBcbcutGRBcbsolution).如果没有遇到错误,用户回调函数应该返回0,或者它可以返回一个Gurobi错误代码如果用户回调希望停止优化并返回错误结果。

usrdata:一个可选的指向用户数据的指针,它将在每次调用时传递回用户回调函数(在usrdata参数)。

使用示例:

int mycallback(GRBmodel *model, void *cbdata, int where, void *usrdata);错误= GRBsetcallbackfunc(model, mycallback, NULL);