Python纸浆约束
我试图使用Python纸浆约束,python,pandas,mathematical-optimization,linear-programming,pulp,Python,Pandas,Mathematical Optimization,Linear Programming,Pulp,我试图使用pill库为python中的线性规划问题添加一个约束。我尝试了下面的代码 for week in range(14,52), i in I.index: k = week model += sum(x[(i, j, week, B)] for week in range(k, k+13), j in J.index) <= 1 我得到的错误是SyntaxError:Generato
pill
库为python中的线性规划问题添加一个约束。我尝试了下面的代码
for week in range(14,52), i in I.index:
k = week
model += sum(x[(i, j, week, B)] for week in range(k, k+13),
j in J.index) <= 1
我得到的错误是SyntaxError:Generator表达式如果不是唯一的参数,则必须用括号括起来。我已经研究过这个链接
然而,这似乎并没有解决我的问题。非常感谢您的帮助。或Duan的评论看起来正确,使用的语法应该是
for week in range(14,52), i in I.index:
k = week
model += sum(x[(i, j, week, B)] for week in range(k, k+13)
for j in J.index) <= 1
对于范围(14,52)内的一周,i在i.索引中:
k=周
模型+=范围(k,k+13)内一周的总和(x[(i,j,week,B)]
对于j.index中的j,我认为即使您的第一行也是错误的,因为它被编译为:for week in(range(14,52),I in I.index)
,所以您的for循环只是迭代2个元素,第一个是range
生成器(可能这就是问题所在),第二个是bool语句(如[1,2,3]中的1)==真)
for week in range(14,52), i in I.index:
k = week
model += sum(x[(i, j, week, B)] for week in range(k, k+13)
for j in J.index) <= 1
for week in range(14,52), i in I.index:
k = week
model += lpSum(x[(i, j, week, B)] for week in range(k, k+13)
for j in J.index) <= 1