gurobi milp模型最大化npv

时间:2016-07-31 07:45:49

标签: python optimization gurobi

我正在尝试使用gurobi MILP模拟一个简单的库存,以最大化收入 但我一直在为如何为净现值最大化编写目标函数而遇到麻烦。

数组A = np.random.randint(100,1500,100) 是清单中每100个项目的值

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)

如果这是建模此类问题的正确方法,则下一步是添加约束以仅在一段时间内使用项目。

1 个答案:

答案 0 :(得分:0)

quicksum()评估线性表达式;您需要将嵌套表达式转换为单个线性表达式。您可以通过计算系数值来完成此操作。