Wciąż jestem nowy w Pythonie, po latach Matlaba. Próbuję użyć Pulp, aby ustawić program liniowy integer.Python Pulp using with Matrices
Biorąc pod tablicą liczb:
{P[i]:i=1...N}
chcę maksymalizować:
sum(x_i P_i)
zastrzeżeniem ograniczeń
A x <= b
A_eq x = b_eq
iz granicach (granice oparte wektor)
LB <= x <= UB
W pulpy nie widzę jednak sposobu prawidłowego tworzenia deklaracji wektorowych. Używałem:
RANGE = range(numpy.size(P))
x = pulp.LpVariable.dicts("x", LB_ind, UB_ind, "Integer")
gdzie mogę wpisać tylko pojedyncze granice (czyli tylko 1 cyfrę).
prob = pulp.LpProblem("Test", pulp.LpMaximize)
prob += pulp.lpSum([Prices[i]*Dispatch[i] for i in RANGE])
i dla ograniczeń, czy naprawdę muszę to zrobić w linii? Wygląda na to, że czegoś mi brakuje. Byłbym wdzięczny za pomoc. Dokumentacja omawia krótki przykład. Liczba zmiennych w moim przypadku to kilka tysięcy.
Jak pamiętam w PuLP, musisz dodać każde ograniczenie indywidualnie (linia po linii). – arboc7
Mam to samo pytanie. Wiem, że to jest stare. Byłbym wdzięczny za satysfakcjonującą odpowiedź! –