python - gurobipy 中的回调函数会产生错误消息
问题描述
在处理我的项目时,我需要使用回调函数更改我的 MIP 模型。我密切关注文档,但总是收到错误消息。
我相信,错误来自 cbGet 函数,没有这个,我得到一个输出,虽然我不知道它是否正确。
没有回调函数,我的模型工作得很好。
这是我的代码:
import gurobipy as gb
...
some code with the model
...
def cb(mod, where):
if where == gb.GRB.Callback.MIP:
print(mod.cbGet(gb.GRB.Callback.MIP_NODCNT))
def cb2(mod, where):
if where == gb.GRB.Callback.MIP:
print(gb.GRB.Callback.MIP_NODCNT)
m.optimize(cb(m, gb.GRB.Callback.MIP))
请注意,如果我cb2
用作回调函数,我会得到退出代码 0 和输出。我不确定这个输出是否正确。
但是当我cb
用作回调函数时,我收到错误消息
Traceback (most recent call last):
File "C:/Users/dbigb/PycharmProjects/MA/MIP_model.py", line 39, in <module> m.optimize(cb(m, gb.GRB.Callback.MIP))
File "C:/Users/dbigb/PycharmProjects/MA/MIP_model.py", line 32, in cb print(mod.cbGet(gb.GRB.Callback.MIP_NODCNT))
File "model.pxi", line 4136, in gurobipy.Model.cbGet
AttributeError: 'NoneType' object has no attribute '_cbdata'
我不明白哪个属性是无,既不知道这_cbdata
是什么,也不知道在哪里可以找到并检查它。任何帮助,将不胜感激。
我没有包括整个模型,因为它工作正常。如果这对解决方案很重要,我将编辑问题并添加代码。
解决方案
推荐阅读
- javascript - 导入 Socket.IO 客户端库时 Svelte 中出现“未定义导出”错误
- angular - cucumberjs + playwright 测试执行前的 ng 服务
- kotlin - 如何在改造中管理具有空数据的数据类?
- xamarin - 错误 MSB3073:xamarin ios 应用程序上的命令“chmod +x IntuneMAMConfigurator”
- .net - 如何在 Console.ReadLine 期间避免在 Ctrl-C 之后使用 Console.Write?
- c# - 针对组合/复合属性的 UWP C# 引发通知
- node.js - 从 Mocha 迁移到 Jest “连接管理器关闭后调用了 ConnectionManager.getConnection”
- r - 计算从函数生成的图数
- vue-component - 在服务上使用 Vue 3 响应式是否有意义?
- c++ - 无法编译 ftpupload.c