Учебник по Python: основы моделирования PuLP
Автор: DataCamp
Загружено: 2020-03-13
Просмотров: 20542
Хотите узнать больше? Пройдите полный курс по ссылке https://learn.datacamp.com/courses/su... в удобном для вас темпе. Это больше, чем просто видео, вы научитесь практическому программированию и быстро примените полученные навыки в повседневной работе.
---
В этом уроке мы обсудим моделирование IP и LP в PuLP.
Этот курс будет посвящен использованию библиотеки PuLP для Python. Это фреймворк для решения задач линейного и целочисленного программирования. Библиотека поддерживается фондом COIN-OR Foundation. PuLP моделирует задачу на Python, но использует решатель для вычисления решения. Библиотека работает со многими различными решателями.
Перейдем сразу к примеру, посвященному планированию ресурсов.
Представьте, что вы консультант кондитерской, которая продает только два вида тортов. Вы пытаетесь составить план ресурсов кондитерской на следующие 30 дней. У нас есть печь, два пекаря и упаковщик тортов. В этом случае мы предполагаем, что упаковщик будет работать только 22 из следующих 30 дней из-за отпуска.
Время, необходимое для каждого вида торта, различно. Кроме того, прибыль от тортов различна.
Мы хотим знать, сколько тортов каждого вида нам нужно сделать, чтобы максимизировать прибыль. Помните, что на нашу прибыль накладываются различные ограничения.
Во-первых, количество произведенных тортов должно быть больше нуля.
Количество произведенных тортов каждого типа, умноженное на время, необходимое для выпечки в печи, дает общее количество дней, которое не может превышать 30 дней.
Аналогичная ситуация складывается и для пекарей. Однако, поскольку пекарей двое, общее количество дней не должно превышать 60 дней.
И наконец, упаковщик работает только 22 дня в этом месяце.
Чтобы решить наш пример, мы смоделируем его в PuLP. Стандартный процесс моделирования включает инициализацию модели, определение переменных решения, определение целевой функции, определение ограничений модели и, наконец, её решение. Эти шаги должны быть вам знакомы по уроку по моделированию LP и IP.
Инициализация модели — первый шаг в процессе моделирования, и для этого вы будете использовать функцию LpProblem. У неё два входных параметра. Первый — текстовый параметр, указывающий тип моделируемой задачи. Второй параметр определяет, должна ли модель стремиться к максимизации или минимизации целевой функции. Например, при моделировании сроков доставки вы, скорее всего, выберете минимизацию.
После импорта пакета мы инициализируем модель с помощью LpProblem в нашем скрипте Python и выбираем максимизацию.
Далее мы рассмотрим определение переменных решения. Для этого вы будете использовать класс LpVariable. У этого класса 5 входных параметров.
Первый параметр — имя переменной.
Следующие два параметра задают нижнюю и верхнюю границы переменной. Их значение по умолчанию — None, что устанавливает границы как отрицательную бесконечность для нижней границы или положительную бесконечность для верхней границы.
Входной параметр cat классифицирует переменную как целочисленную, двоичную или непрерывную.
Последний входной параметр относится к моделированию на основе столбцов, что выходит за рамки данного курса.
В нашем примере переменные — это количество произведенных тортов A и B. Мы устанавливаем только нижние границы и задаём их как целочисленные переменные.
Далее мы определяем целевую функцию, используя наши переменные.
Затем мы определяем ограничения. PuLP может определить, какие уравнения являются ограничениями, благодаря неравенствам.
Наконец, решаем модель. Оптимизированные значения сохраняются в varValue.
Вот полный скрипт.
В этом уроке мы обсудили, что PuLP — это фреймворк для моделирования LP и IP.
Мы рассмотрели 5 основных этапов процесса моделирования PuLP.
Наконец, мы рассмотрели пример планирования ресурсов.
Хорошо! Давайте попрактикуемся. Что такое PuLP?
#DataCamp #PythonTutorial #SupplyChainAnalyticsinPython
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: