GRBCallback
GRBCallback
Gurobi回调类。这是一个抽象类。要实现回调,您应该创建该类的子类并实现回调()
方法。如果您将此子类的对象传递给方法GRBModel。SetCallback在调用之前GRBModel。优化,回调()
类的方法将定期调用。根据从哪里调用回调函数,您将能够获得关于优化进度的各种信息。
注意,这个类包含一个受保护的类int成员变量:在哪里
.您可以从回调()
方法确定从何处调用回调。
Gurobi回调可以用来监视优化的进度,也可以用来修改Gurobi优化器的行为。一个简单的用户回调函数可以调用GRBCallback。GetIntInfo或GRBCallback。GetDoubleInfo方法来生成自定义显示,或者提前终止优化(使用GRBCallback。中止).可能会使用更复杂的MIP回调GRBCallback。GetNodeRel或GRBCallback。GetSolution检索从解决方案到当前节点的值,然后使用GRBCallback。AddCut或GRBCallback。AddLazy添加一个约束以截断该解,或GRBCallback。SetSolution导入从该解决方案构建的启发式解决方案。对于多目标问题,您可能会使用GRBCallback。StopOneMultiObj在一个多目标MIP问题中,中断其中一个优化步骤的优化过程,而不停止层次优化过程。
当使用多个线程解决模型时,用户回调只会从单个线程调用,所以您不需要担心回调的线程安全性。
注意,不支持从回调函数中更改参数,这样做可能会导致未定义的行为。
你可以看看callback_cs.cs
例如如何使用Gurobi回调的细节。
部分
- GRBCallback ()
- GRBCallback.Abort ()
- GRBCallback.AddCut ()
- GRBCallback.AddLazy ()
- GRBCallback.GetDoubleInfo ()
- GRBCallback.GetIntInfo ()
- GRBCallback.GetNodeRel ()
- GRBCallback.GetSolution ()
- GRBCallback.GetStringInfo ()
- GRBCallback.SetSolution ()
- GRBCallback.StopOneMultiObj ()
- GRBCallback.UseSolution ()