繁体   English   中英

纸浆:设置不是基于 lpSum 而是在一个范围内的约束?

[英]Pulp: Setting Constraints that are not lpSum based but rather in a range?

我试图了解 python 中的纸浆库,特别是在定义不涉及 lpSum 并且只是变量之一的直接界限的约束方面。

orders_dict_test = {"Orders": [11, 22, 33, 44, 55, 66, 77],
                    "Num_Days": [1, 2, 2, 3, 3, 5, 6]}

如何使用“Num_Days”创建纸浆约束,我们只想包含“Num_Days”>= 1 且 <= 4 的“订单”?

我只是很难理解不涉及 lpSum 的约束,因为我看到的许多示例都集中在这一点上。

任何资源或帮助都会很棒。

谢谢你。

我不完全理解这个问题,或者你想要达到的目标。 一般来说,尽管在创建约束时,您可以使用“集合”变量做两件事(集合只是变量的集合,您可以以任何您喜欢的方式定义)。

您可以对该组变量求和,也可以对该组中的每个变量应用约束。

因此,对于您的示例,创建满足orders_dict_test['Num_Days'] >= 1 and <= 4的变量子集非常简单,然后您可以对该子集求和或对该子集中的每个变量应用约束。

下面的代码将创建一个满足该约束的 ('orders', 'ndays') 元组列表。 提取实际变量将取决于您如何定义它们。 我建议您可能需要一些描述的唯一键。

orders_dict_test = {"Orders": [11, 22, 33, 44, 55, 66, 77],
                    "Num_Days": [1, 2, 2, 3, 3, 5, 6]}

print([(o, nd) for o, nd in zip(orders_dict_test['Orders'], orders_dict_test['Num_Days']) if nd >= 1 and nd<= 4])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM