Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 纸浆包装LP模型中的枚举约束_Python_Loops_Constraints_Pulp - Fatal编程技术网

Python 纸浆包装LP模型中的枚举约束

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变大,在约束中添加所有索引变得非常耗时 是否可以循环使用我可以

我正在使用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变大,在约束中添加所有索引变得非常耗时

是否可以循环使用我可以获取的所有值,然后自动生成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

这正是我要找的。非常感谢!