PuLP Оптимизация Транспортировка с временными рядами - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь оптимизировать транспортировку одного продукта в течение нескольких периодов времени с 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')

Цель fn:

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)

price - словарь кортежей: целочисленные пары, такие как {(period1, origin1): цена1, (period2, origin1): цена2 и т. д.}.

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

1 Ответ

0 голосов
/ 25 сентября 2019

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

model = LpProblem("Minimize costs", LpMinimize)
model += lpSum(amount_var[t][i][j] * price[(t, i)] for (t, i, j) in routes)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...