GRBCallback

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

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

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

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

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

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



部分