2017-08-04 23 views
1

我想知道是否有一種方法,當使用Python PuLP時,兩個變量有兩個不同的約束。我有一種方法來爲線性程序使用Puthon PuLP時爲同一變量指定兩個約束

prob += lpSum([evaptwohundredF[i] * component_vars[i] for i in name]) >= 30.0000, "evaptwohundredFrequirement" 
prob += lpSum([evaptwohundredF[i] * component_vars[i] for i in name]) <=70.0000, "evaptwohundredFrequirement" 

這是FO我希望什麼地方相同的變量有兩個約束等等> = 30和< = 70,但問題是,我得到它說「pulp.constants.PulpError一個錯誤的例子:重疊約束名稱:evaptwohundredrequirement',那麼如何讓它允許兩個約束?

回答

1

我不是一個很大的紙漿用戶,但是你要求的是線性編程(因此可能在所有的建模工具中)顯然是允許的。

在你的情況的問題:紙漿期望每個約束(和你的是相等的)的唯一標識符/ str。

做類似(只是改變了約束的名稱):

prob += lpSum([evaptwohundredF[i] * component_vars[i] for i in name]) >= 30.0000, "evaptwohundredFrequirement_a" 
prob += lpSum([evaptwohundredF[i] * component_vars[i] for i in name]) <=70.0000, "evaptwohundredFrequirement_b" 
相關問題