Оптимизация PuLP Транспорт с временными рядами

Я пытаюсь оптимизировать транспортировку одного продукта в течение нескольких периодов времени с помощью PuLP на Python. Я столкнулся с проблемой формирования с его помощью целевой функции:

routes =[(t,i,j) for t in TIME for i in ORIGIN for j in DESTINATION]
amount_var = LpVariable.dicts('Volume', (TIME, ORIGIN, DESTINATION), lowBound=0, cat='Integer')
route_usage = LpVariable.dicts('route_usage', routes, cat='Binary')

Объектив ф-н:

model += LpProblem("Minimize costs", LpMinimize)
model+=lpSum(amount_[t][i][j]*price[t][i] for (t,i,j) in routes for t in TIME  for i in ORIGIN)

цена - это словарь пар кортеж: целые числа, например {(период1, происхождение1): цена1, (период2, происхождение1): цена2 и т. д.}.

У вас есть идеи, как это решить?


person Hellisa    schedule 24.09.2019    source источник


Ответы (1)


Если price - словарь с кортежами в качестве ключей, вы должны написать свою цель как:

model = LpProblem("Minimize costs", LpMinimize)
model += lpSum(amount_var[t][i][j] * price[(t, i)] for (t, i, j) in routes)
person abc    schedule 25.09.2019