首先,检查模型解的状态:
model.status
如果model.status等于4,意味着模型不可行或者无界,还需进一步判断:
model.setParam('DualReductions', 0)
此时再输出model.status,就会变为3或者5。若为5,则说明模型无界。
当模型无界时,Gurobi会提供无界射线(仅适用于无界线性模型)。无界射线是一个向量,当添加到任何可行的解时,会产生一个同样可行但改善目标的新解。具体操作如下:首先,设置参数
model.setParam('InfUnbdInfo', 1)
然后,我们可以获取无界射线
model.getAttr(gr.GRB.Attr.UnbdRay)