Я все еще очень новичок в Python, после многих лет Matlab.Я пытаюсь использовать Pulp для настройки целочисленной линейной программы.
Учитывая массив чисел:
{P[i]:i=1...N}
Я хочу увеличить:
sum( x_i P_i )
subjectс ограничениями
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])
и для ограничений, действительно ли я должен делать эту строку для каждой строки?Кажется, мне чего-то не хватает.Буду признателен за помощь.В документации обсуждается короткий пример.Количество переменных в моем случае составляет несколько тысяч.