Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python и исследование операций

Python и исследование операций

Сергей Сундуков @ Moscow Python Meetup 44

"Хочу рассказать об успешном опыте применения питона и опен-сорсных библиотек при решении реальных бизнес-задач планирования и оптимизации".

Видео: http://www.moscowpython.ru/meetup/44/python-i-issledovanie-operacij/

Moscow Python Meetup

April 20, 2017
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. Введение • Исследование операций (Operations Research) – теория о применении

    математических методов для принятия оптимальных решений
  2. Введение • Исследование операций (Operations Research) – теория о применении

    математических методов для принятия оптимальных решений • В современном виде начала формироваться во время WWII
  3. Введение • Исследование операций (Operations Research) – теория о применении

    математических методов для принятия оптимальных решений • В современном виде начала формироваться во время WWII • Используемые методы: математическая оптимизация, математическое моделирование, статистический анализ
  4. Примеры • Планирование производства • Составления расписания игр и тренировок

    для детской спортивной лиги • Распределение персонала промоушен-агентства
  5. Примеры • Планирование производства • Составления расписания игр и тренировок

    для детской спортивной лиги • Распределение персонала промоушен-агентства • Распределение товаров в торговой сети
  6. Примеры • Планирование производства • Составления расписания игр и тренировок

    для детской спортивной лиги • Распределение персонала промоушен-агентства • Распределение товаров в торговой сети • Планирование посевных площадей агрохолдинга
  7. Готовые решения • APO • MOPZ SAP • Demand-Driven Planning

    and Optimization SAS • ASCP • SNO Oracle • Operational Decision Manager IBM
  8. Построение кастомных приложений Входные данные • Спрос на товары или

    услуги • Доступные ресурсы и мощности • Затраты, спецификации, технологии • Операционные ограничения, предпочтения клиентов • Бизнес-цели Преобразование данных в математическую модель Поиск оптимального решения математической модели Выходные данные • Интерпретация полученного решения • Построение отчетов • Формулировани е рекомендаций
  9. Математическая оптимизация • Задача линейного программирования (LP) • Переменные ,

    , … , • Целевая функция • Ограничения = ෍ = = + + … + ෍ = ≥ = , , … ,
  10. Математическая оптимизация 2 • Задача смешанно-целочисленного линейного программирования (MILP) •

    Нелинейное программирование (NLP) • Квадратичное программирование (QP)
  11. Математическая оптимизация 2 • Задача смешанно-целочисленного линейного программирования (MILP) •

    Нелинейное программирование (NLP) • Квадратичное программирование (QP) • Смешанно-целочисленное квадратичное программирование (MIQP)
  12. Математическая оптимизация 3 • Опенсорсные солверы: COIN-OR, GLOP, GLPK, lp_solve,

    APOPT • Коммерческие солверы: CPLEX, Gurobi, SCIP, LINDO, XPRESS, Matlab solver
  13. Математическая оптимизация 3 • Опенсорсные солверы: COIN-OR, GLOP, GLPK, lp_solve,

    APOPT • Коммерческие солверы: CPLEX, Gurobi, SCIP, LINDO, XPRESS, Matlab solver • Фреймворки для разработки оптимизационных моделей: • GMPL, lp_solve IDE, opensolver • AMPL, AIMMS, CPLEX Optimization Studio, MATLAB, LINDO
  14. Математическая оптимизация в python • Все основные солверы имеют API

    • Библиотеки, позволяющие разрабатывать оптимизационные модели.
  15. Математическая оптимизация в python • Все основные солверы имеют API

    • Библиотеки, позволяющие разрабатывать оптимизационные модели. • Основные библиотеки: openopt, PuLP, google ortools, pyomo, scipy.optimize
  16. Преимущества python для разработки ОМ • Почему я рекомендую кастомные

    оптимизационные приложения? - Скорость разработки
  17. Преимущества python для разработки ОМ • Почему я рекомендую кастомные

    оптимизационные приложения? - Скорость разработки - Эффективность
  18. Преимущества python для разработки ОМ • Почему я рекомендую кастомные

    оптимизационные приложения? - Скорость разработки - Эффективность. - Низкая стоимость
  19. Преимущества python для разработки ОМ • Почему я рекомендую кастомные

    оптимизационные приложения? - Скорость разработки - Эффективность. - Низкая стоимость • Почему я рекомендую python для разработки?
  20. Преимущества python для разработки ОМ • Почему я рекомендую кастомные

    оптимизационные приложения? - Скорость разработки - Эффективность. - Низкая стоимость • Почему я рекомендую python для разработки? • Почему я рекомендую мультисолверные библиотеки?
  21. Преимущества python для разработки ОМ 2 • Огромное количество возможностей

    для загрузки/выгрузки, преобразования, анализа данных
  22. Преимущества python для разработки ОМ 2 • Огромное количество возможностей

    для загрузки/выгрузки, преобразования, анализа данных • Возможность использовать ML
  23. Преимущества python для разработки ОМ 2 • Огромное количество возможностей

    для загрузки/выгрузки, преобразования, анализа данных • Возможность использовать ML • Возможность быстрого прототипирования