2016-07-31 38 views
0

我想一個簡單的庫存最大化收入與gurobi MILP 模型,但我一直在獲取有關如何編寫淨現值最大化的目標函數的麻煩。gurobi MILP模型,以最大限度地提高NPV

陣列A = np.random.randint(100,1500,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) 

每100個項目的值,如果這是這種類型的問題進行建模以正確的方式下一步是添加約束條件以僅在一段時間內使用某個項目。

回答

0

quicksum()計算一個線性表達;您需要將嵌套表達式轉換爲單個線性表達式。您可以通過計算係數值來完成此操作。

相關問題