Sono ancora molto nuovo a Python, dopo anni e anni di Matlab. Sto cercando di usare Pulp per impostare un programma lineare intero.Polpa di pitone usando con le matrici
Dato un array di numeri:
{P[i]:i=1...N}
voglio massimizzare:
sum(x_i P_i)
soggetta ai vincoli
A x <= b
A_eq x = b_eq
e con limiti (bounds a base vettoriale)
LB <= x <= UB
In Pulp, tuttavia, non vedo come eseguire correttamente le dichiarazioni vettoriali. Stavo usando:
RANGE = range(numpy.size(P))
x = pulp.LpVariable.dicts("x", LB_ind, UB_ind, "Integer")
dove posso entrare solo i singoli limiti (in modo che solo 1 numero).
prob = pulp.LpProblem("Test", pulp.LpMaximize)
prob += pulp.lpSum([Prices[i]*Dispatch[i] for i in RANGE])
e per i vincoli, devo davvero fare questa linea per linea? Sembra che mi manchi qualcosa. Gradirei un aiuto. La documentazione tratta di un breve esempio. Il numero di variabili nel mio caso è di poche migliaia.
Come ricordo in PuLP, è necessario aggiungere ogni vincolo singolarmente (riga per riga). – arboc7
Ho la stessa domanda. So che questo è vecchio. Apprezzerei molto una risposta soddisfacente! –