GRBoptimizeasync


GRBoptimizeasync

int GRBoptimizeasync GRBmodel *模型)

异步优化模型。这个例程立即返回。当优化在后台进行时,你的程序可以执行其他计算。查询异步优化的状态状态属性。的值IN_PROGRESS表示优化尚未完成。当你完成了你的前台任务,你必须调用GRBsync将前台程序与异步优化任务同步。

请注意,当优化在后台运行时,允许您进行的一组Gurobi调用受到了严重的限制。具体地说,您只能执行属性查询,并且只能执行一些属性查询(如下所列)。对运行模型的任何其他调用,或在相同的古罗比环境中构建的任何其他模型,将失败并带有错误代码OPTIMIZATION_IN_PROGRESS

注意,在其他环境中构建的模型没有这样的限制。因此,例如,您可以创建多个环境,然后让一个前台程序在其自己的环境中同时启动多个异步优化。

如前所述,允许查询状态属性,此时正在进行异步优化。其他可以查询的属性有:ObjValObjBoundIterCountNodeCount,BarIterCount.在每种情况下,返回值都反映了优化到该点的进度。任何查询不在此列表中的属性值的尝试都将返回OPTIMIZATION_IN_PROGRESS错误。

返回值:

非零返回值表示在优化模型时发生了问题。指的是错误代码表中可能的返回值列表。关于错误的详细信息可以通过调用来获得GRBgeterrormsg

参数:

模型:要优化的模型。注意,这个例程只报告启动异步作业时是否遇到了错误。查询状态属性确定优化的结果(请参阅属性部分获取关于查询属性的更多信息)。的返回值GRBsync指示后台优化是否出现错误。

使用示例:

错误= GRBoptimizeasync(模型);/ *……执行其他计算密集型任务…*/错误= GRBsync(模型);