11
經過多年和多年的Matlab,我對Python仍然很陌生。我正在嘗試使用Pulp來設置一個整數線性程序。使用矩陣的Python紙漿
鑑於數的數組:
{P[i]:i=1...N}
我希望最大化:
sum(x_i P_i)
受約束
A x <= b
A_eq x = b_eq
並與邊界(基於矢量邊界)
LB <= x <= UB
然而,在紙漿中,我沒有看到如何正確地做矢量聲明。我正在使用:
RANGE = range(numpy.size(P))
x = pulp.LpVariable.dicts("x", LB_ind, UB_ind, "Integer")
其中我只能輸入個別界限(因此只有1個數字)。
prob = pulp.LpProblem("Test", pulp.LpMaximize)
prob += pulp.lpSum([Prices[i]*Dispatch[i] for i in RANGE])
並且爲了約束,我真的必須每行都做這行嗎?看來我失去了一些東西。我希望得到一些幫助。文檔討論了一個簡短的例子。在我的情況下,變量的數量是幾千。
正如我在PuLP中記得的那樣,您必須逐個添加每個約束(逐行)。 – arboc7
我有同樣的問題。我知道這是舊的。我會非常感激滿意的答案! –