过滤内容,
版本
文本搜索
GRBCallback
Gurobi回调类。这是一个抽象类。要实现回调,你应该创建这个类的一个子类和实现回调()
方法。如果你将这个子类的对象传递给方法GRBModel.SetCallback在调用之前GRBModel.Optimize或GRBModel.ComputeIIS,回调()
定期将调用类的方法。根据调用回调,你将能够获得各种信息的进度优化。
请注意,这个类包含一个保护int成员变量:在哪里
。你可以查询这个变量回调()
确定的回调被称为方法。
Gurobi回调函数可以用来监控优化和修改的进度Gurobi优化器的行为。一个简单的用户可能调用回调函数GRBCallback.GetIntInfo或GRBCallback.GetDoubleInfo生成一个自定义的显示方法,或者提前终止优化(使用GRBCallback.Abort)或进入下一阶段的计算(使用GRBCallback.Proceed)。更复杂的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.Proceed ()
- GRBCallback.SetSolution ()
- GRBCallback.StopOneMultiObj ()
- GRBCallback.UseSolution ()