前一:教程:构建和运行的例子
另一种类型的定制我们想触及可通过Gurobi短暂回调。回调函数允许您跟踪优化过程的进展。为了我们的例子中,假设你想让MIP优化器运行10秒钟在辞职之前,但你不想让它终止之前找到一个可行的解决方案。下面的回调方法将实现这个条件:
从gurobipy进口* def mycallback(模型):如果= = GRB.Callback的地方。MIP:时间= model.cbGet (GRB.Callback.RUNTIME)最好= model.cbGet (GRB.Callback.MIP_OBJBST)如果时间> 10和最佳<伽马线暴。无穷:model.terminate ()
一旦你导入这个功能(从自定义导入*),然后说m.optimize (mycallback)获得所需的终止行为。另外,你可以定义自己的自定义优化方法,总是调用回调:
def myopt(模型):model.optimize (mycallback)
这将允许你说myopt (m)。
你可以传递任意数据通过模型到你的回调对象。例如,如果您设置m._mydata= 1在调用之前优化(),你可以查询m._mydata在你的回调函数。注意,用户数据字段的名称必须与下划线开始。
这个回调包含在示例< installdir > / / python / custom.py例子。将文件复制到您的当前目录,类型从自定义导入*进口和回调myopt ()函数。
在交互式shell,您可以输入帮助(GRB.Callback)回调函数的更多信息。
进一步的信息
- 回调类的文档manbet体育手机客户端Gurobi参考手册
- 我如何使用回调函数来终止解算器?手机万博登录
- 我怎么注入一个解决方案在一个单独的计算过程?
- 如何设置多个终止标准模型?
评论
0评论
文章是关闭了评论。