我正在尝试使用 Python PuLP 对以下方程进行建模
我编写了以下 Python 代码
prob = LpProblem('Resource', LpMaximize)
# x variables
xs = [LpVariable("x{0}{1}{2}".format(i + 1, j + 1, k + 1), cat = "Binary")
for i in range(0, 3)
for j in range(0, 5)
for k in range(0, 2)
]
print("\nX Variable\n")
for i in range(0, len(xs)):
print(xs[i])
# y variables
ys = [LpVariable("y{0}{1}".format(i + 1, j + 1), cat = "Binary")
for i in range(0, 3)
for j in range(0, 5)
]
print("\nY Variable\n")
for i in range(0, len(ys)):
print(ys[i])
for j in range(0, 5):
for k in range(0, 2):
for i in range(0, 3):
con = "x{0}{1}{2} <= y{3}{4}".format(i + 1, j + 1, k + 1, i + 1, j + 1)
prob += LpAffineExpression(LpElement(con))
print(con)
status = prob.solve()
这给出了以下纸浆错误:
回溯(最后一次调用):文件“C:\Python34\Cloud 3.py”,第 446 行,在资源(请求,pmachine,l,q)文件“C:\Python34\Cloud 3.py”,第 136 行,在资源状态 = prob.solve() 文件“C:\Python34\lib\site-packages\pulp-1.6.1-py3.4.egg\pulp\pulp.py”,第 1643 行,在求解状态 = 求解器.actualSolve(self, **kwargs) 文件“C:\Python34\lib\site-packages\pulp-1.6.1-py3.4.egg\pulp\solvers.py”,第 1303 行,在 actualSolve 中返回 self.solve_CBC (lp, **kwargs) 文件“C:\Python34\lib\site-packages\pulp-1.6.1-py3.4.egg\pulp\solvers.py”,第 1325 行,在 solve_CBC tmpMps 中,重命名 = 1)文件“C:\Python34\lib\site-packages\pulp-1.6.1-py3.4.egg\pulp\pulp.py”,第 1431 行,在 writeMPS 中如果 mip 和 v.cat == LpInteger: AttributeError: 'LpElement' 对象没有属性 'cat'
什么AttributeError: 'LpElement' object has no attribute 'cat'
以及为什么会产生这个错误?