Я все еще новичок в Python после многих лет работы с Matlab. I Я пытаюсь использовать Pulp для создания целочисленной линейной программы.
Учитывая массив чисел:
{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])
и для ограничений, действительно ли у меня есть чтобы сделать эту строку за строкой? Кажется, мне чего-то не хватает. Я был бы признателен за некоторую помощь. В документации обсуждается небольшой пример. Количество переменных в моем случае составляет несколько тысяч.