gurobipy 中的回调函数产生错误消息
Callback function in gurobipy yields error messages
在处理我的项目时,我需要使用回调函数更改我的 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'
我不明白哪个属性是 none,也不明白这个 _cbdata
是什么,也不知道在哪里可以找到并检查它。任何帮助将不胜感激。
我没有包括整个模型,因为它工作正常。如果它对解决方案很重要,我将编辑问题并添加代码。
在处理我的项目时,我需要使用回调函数更改我的 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'
我不明白哪个属性是 none,也不明白这个 _cbdata
是什么,也不知道在哪里可以找到并检查它。任何帮助将不胜感激。
我没有包括整个模型,因为它工作正常。如果它对解决方案很重要,我将编辑问题并添加代码。