НачатьНачать бесплатно

Задача планирования логистики 2

Вы снова выступаете консультантом производителя кухонных плит и помогаете спланировать логистику. На этот раз нужно составить план на следующие шесть месяцев (янв.–июн.). По-прежнему доступны два склада (Нью-Йорк и Атланта) и четыре региональных клиента (Восток, Юг, Средний Запад, Запад). Стоимость доставки со каждого склада каждому региональному клиенту указана в таблице ниже. Ваша цель — определить количество отгрузок с каждого склада каждому клиенту, обеспечивающее минимальные затраты.

Клиент Нью-Йорк Атланта
Восток $211 $232
Юг $232 $212
Средний Запад $240 $230
Запад $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])
Редактировать и запускать код