Python 纸浆包装LP模型中的枚举约束
我正在使用python和palp包创建一个线性优化模型。我想知道是否有一种简单的方法可以将约束添加到模型中,而无需对每个变量进行许多硬编码。例如…我目前正在使用For循环创建以下一组分区约束:Python 纸浆包装LP模型中的枚举约束,python,loops,constraints,pulp,Python,Loops,Constraints,Pulp,我正在使用python和palp包创建一个线性优化模型。我想知道是否有一种简单的方法可以将约束添加到模型中,而无需对每个变量进行许多硬编码。例如…我目前正在使用For循环创建以下一组分区约束: for j in range(0,(len(excel_data_df))) : i = j * 3 OptModel += x[i] + x[i + 1] + x[i + 2] == 1 这适用于较小的问题。然而,随着变量i变大,在约束中添加所有索引变得非常耗时 是否可以循环使用我可以
for j in range(0,(len(excel_data_df))) :
i = j * 3
OptModel += x[i] + x[i + 1] + x[i + 2] == 1
这适用于较小的问题。然而,随着变量i变大,在约束中添加所有索引变得非常耗时
是否可以循环使用我可以获取的所有值,然后自动生成OptModel+=代码行?例如,如果变量i为100,我希望代码生成以下内容,而不必手动添加每个x[i]变量
for j in range(0,(len(excel_data_df))) :
for i in range(0,100)
OptModel += x[0] + x[1] + x[2] + ......+ x[100] == 1
您可以使用
lpSum
方法,该方法允许您对变量列表进行求和-因此您需要做的就是找到一种生成要求和的索引的方法。在第二次exmaple中,您可以:
OptModel += lpSum([x[i] for i in range(0, 100)]) == 1
这正是我要找的。非常感谢!