Использование Python Pulp с матрицами

Я все еще новичок в 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])

и для ограничений, действительно ли у меня есть чтобы сделать эту строку за строкой? Кажется, мне чего-то не хватает. Я был бы признателен за некоторую помощь. В документации обсуждается небольшой пример. Количество переменных в моем случае составляет несколько тысяч.

13
задан David Nehme 9 June 2019 в 17:29
поделиться