Основы оптимизации

Аналитика цепочек поставок на Python

Aaren Stubberfield

Supply Chain Analytics Mgr.

Что такое цепочка поставок

  • Цепочка поставок включает всех участников, прямо или косвенно задействованных в выполнении заказа клиента.¹
  • В её состав входят:
    • Поставщики
    • Собственное производство
    • Сторонние логистические провайдеры (третьи стороны)
1 Chopra, Sunil, and Peter Meindl. _Supply Chain Management: Strategy, Planning, and Operations._ Pearson Prentice-Hall, 2007.
Аналитика цепочек поставок на Python

Что такое оптимизация цепочки поставок

  • Предполагает поиск наилучшего пути к достижению цели с учётом ограничений

диаграмма движения материалов от поставщиков к покупателям

Аналитика цепочек поставок на Python

Краткий курс по ЛП

  • Линейное программирование (ЛП) — мощный инструмент для оптимизации

  • Метод оптимизации на основе математической модели с линейными зависимостями

  • В ЛП есть 3 базовых компонента:

    • Переменные решения — то, чем вы управляете
    • Целевая функция — математическое выражение цели через переменные
    • Ограничения — математические выражения, задающие границы решений
Аналитика цепочек поставок на Python

Вводный пример

Применим ЛП для составления плана тренировок с максимальным сжиганием калорий.

Отжимания Бег
Минуты 0,2 за отжимание 10 за милю
Калории 3 за отжимание 130 за милю

Ограничение — только 10 минут на тренировку

Аналитика цепочек поставок на Python

Базовые компоненты ЛП

Переменные решения — то, чем управляем:

  • Количество отжиманий и количество миль

Целевая функция — математическое выражение цели:

  • Макс (3 * Количество отжиманий + 130 * Количество миль)

Ограничения — математические выражения для границ решений:

  • 0,2 * Количество отжиманий + 10 * Количество миль ≤ 10
  • Количество отжиманий ≥ 0
  • Количество миль ≥ 0
Аналитика цепочек поставок на Python

Пример решения

Оптимальное решение:

  • 50 отжиманий
  • 0 миль бега

Сожжено калорий: 150

график допустимых решений для примера с тренировкой, включая оптимальную точку

Аналитика цепочек поставок на Python

ЛП vs ЦП vs СЦП

Термин Переменные решения
Линейное программирование (ЛП) Только непрерывные
Целочисленное программирование (ЦП) Только дискретные или целые
Смешанное целочисленное программирование (СЦП) Смесь непрерывных и дискретных
Аналитика цепочек поставок на Python

Итоги

  • Определили оптимизацию цепочки поставок
  • Определили линейное программирование и его базовые компоненты
    • Переменные решения
    • Целевая функция
    • Ограничения
  • Сравнили ЛП, ЦП и СЦП
Аналитика цепочек поставок на Python

Давайте потренируемся!

Аналитика цепочек поставок на Python

Preparing Video For Download...