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