Ich versuche eine einfache Bestandsmaximierung Einkommen mit Gurobi MILP zu modellieren, aber ich habe Probleme bekommen, wie die Zielfunktion für Net Present Value Maximizing zu schreiben.gurobi milp modell zu maximieren npv
ein Array A = np.random.randint (100,1500,100) ist der Wert von jeweils 100 Gegenständen im Inventar
from gurobipy import *
val=A
m = Model()
n = len(val) # number of items
# Indicator variable for each item
x = {}
for i in range(n):
x[i] = m.addVar(vtype=GRB.BINARY, name="x%d" % i)
#Indicator variable for each period of operation
prd={}
for u in range(7):
prd[u]=m.addVar(vtype=GRB.BINARY name="prd%d" % u)
m.update()
# Set objective
m.setObjective((quicksum((quicksum((val[i])*x[i] for i in range(n)))/(1+0.1**(u+1)))*prd[u] for u in range(7))), GRB.MAXIMIZE)
, ob dies der richtige Weg ist, diese Art von Problem zu modellieren Der nächste Schritt besteht darin, Einschränkungen hinzuzufügen, um ein Element nur zu einem bestimmten Zeitpunkt zu verwenden.