首页 > 解决方案 > 访问具有 .X 属性的变量的当前值时,Gurobi 返回 AttributeError 错误

问题描述

我的 gurobi 优化中有以下代码,其中 M 是二进制变量。我正在使用 .X 属性访问变量的值,但是当我运行我的代码时,它给了我这个错误:

AttributeError: b"Index out of range for attribute 'X'"

如果我删除 .X 属性,代码运行时不会出现任何错误,但即使值不是“1.0”,它也会为 M 变量中所有元素的 if 语句返回 true。我猜它会检查变量 M 中是否存在一个值为 True 的值,即使它是“0.0”。在这种情况下,在运行代码后,我尝试在控制台中运行同一段代码(for 循环)并且没有这样的错误!。

    for s in range(S)
        for t in range(T):
            for f in range(F):
                if M[(a,t,f)].X == 1:
                    print(M[(a,t,f)].X)

标签: pythonattributeerrorgurobi

解决方案


我注意到问题是我在优化模型完成之前尝试访问变量 M 的值。


推荐阅读