Мне нужно проанализировать много проблем с размерами при линейном программировании, но мой код целлюлозы не работает должным образом.
from pulp import *
prob = LpProblem("Lot_Sizing_Problem", LpMinimize)
period = []
for i in range(H):
period.append(i)
order = LpVariable.dicts('order', period, lowBound = 0, upBound = 1, cat='integer'),
orderamount = LpVariable.dicts('orderamount', period, lowBound = 0, cat='integer'),
inventory = LpVariable.dicts('orderamount', period, lowBound = 0, cat='integer'),
prob += lpSum([A*period[i]+h*(inventory[i]+orderamount[i]-D[i]) for i in period])
prob += (inventory[i+1] for i in period) == inventory[i]+orderamount[i]-D[i]
prob += (orderamount[i] for i in period) <= M*order[i]
prob += (orderamount[i] for i in period) == D[i] - inventory[i]
prob.solve()
Я получаю эту ошибку: TypeError: неподдерживаемые типы операндов для +: 'dict' и 'dict'
Это некоторые примеры значений, которые нужно вставить, результат должен быть 102,0: Это значения значений: (Временной горизонт: H, стоимость удержания : h, фиксированная стоимость установки: A, производственная мощность: C, список спроса: D и большой M: M)
H=10
h=0.5
A=10
C=18
D=[12,10,13,14,13,15,17,20,19,14]
M=C
Спасибо!