Задача з планування логістики 2
Ви знову консультуєте виробника кухонних духовок і допомагаєте планувати логістику. Цього разу ви формуєте план на наступні шість місяців (січ.–черв.). Як і раніше, є два склади (Нью-Йорк і Атланта) та чотири регіональні локації клієнтів (Схід, Південь, Середній Захід, Захід). Вартість доставки з кожного складу до кожного регіону наведена в таблиці нижче. Ваша мета — визначити кількість відправлень зі складів до клієнтів, яка забезпечить найнижчу вартість.
| Клієнт | New York | Atlanta |
|---|---|---|
| East | $211 | $232 |
| South | $232 | $212 |
| Midwest | $240 | $230 |
| West | $300 | $280 |
Для вас підготовлено словник Python під назвою costs із витратами моделі та три списки: months, warehouse і customers. costs уже виведено, а списки ви можете переглянути в консолі. Крім того, модель уже ініціалізовано.
Ця вправа є частиною курсу
Аналітика ланцюга постачань у Python
Інструкції до вправи
- Визначте змінні рішень у моделі: спочатку за допомогою спискового включення пройдіться по списках
months,warehouseіcustomers, щоб створити список ключів. Використайте цей список ключів ізLpVariable.dicts()для оголошення потрібних змінних. - Задайте цільову функцію, підсумувавши всі витрати на доставку з певного складу до певного клієнта протягом шести місяців.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Define decision variables
key = [(m, w, ____) for m in months for w in warehouse for c in customers]
var_dict = LpVariable.dicts('num_of_shipments',
key,
lowBound=____, cat=____)
# Use the LpVariable dictionary variable to define objective
model += lpSum([costs[(w, c)] * ____[(____, ____, ____)]
for m in months for w in warehouse for c in customers])