GRBCallback

Gurobi回调类。这是一个抽象类。要实现回调,你应该创建这个类的一个子类和实现回调()方法。如果你将这个子类的对象传递给方法GRBModel: setCallback在调用之前GRBModel:优化GRBModel: computeIIS,回调()定期将调用类的方法。根据调用回调,您可以获得各种信息的进度优化。

请注意,这个类包含一个保护int成员变量:在哪里。你可以查询这个变量回调()确定的回调被称为方法。

Gurobi回调函数可以用来监控优化和修改的进度Gurobi优化器的行为。一个简单的用户可能调用回调函数GRBCallback: getIntInfoGRBCallback: getDoubleInfo生成一个自定义的显示方法,或者提前终止优化(使用GRBCallback:中止)或进入下一阶段的计算(使用GRBCallback:继续)。更复杂的MIP回调可能使用GRBCallback: getNodeRelGRBCallback: getSolution从当前节点的解决方案来检索值,然后使用GRBCallback: addCutGRBCallback: addLazy解决方案添加一个约束切断,或GRBCallback: setSolution导入一个启发式的解决方案构建解决方案。对多目标问题,您可以使用GRBCallback: stopOneMultiObj中断优化过程多目标优化步骤之一的MIP问题不停地分层优化过程。

当解决一个模型使用多个线程,用户回调是只从一个线程,所以你不需要担心你的回调是线程安全的。

注意,从内部改变参数不支持回调,这样做可能导致未定义的行为。

你可以看一下callback_c + + . cpp例子的细节如何使用Gurobi回调。



部分