簡體   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