Оптимальное распределение материалов с применением PuLP в Python

Средство моделирования линейного программирования на языке Python. Классы, которые можно использовать в PuLP. Линейная программа-математическая модель задачи, которая удовлетворяет условиям. Задача по распределению материалов — проблема оптимизации.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 26.03.2023
Размер файла 24,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Оптимальное распределение материалов с применением PuLP в Python

Бийбосунов Болотбек Ильясович д. ф-м. н., д.т.н.

профессор кафедры прикладной информатики

Барганалиева Жылдыз Калыбековна старший преподаватель

кафедры прикладной информатики

Султанбаева Гульмира Салымбаевна к. п. н., и.о. доцента

кафедры прикладной информатики

Кыргызский государственный университет

имени И. Арабаева Республика Кыргызстан, г. Бишкек

Шаршеева Жанаркул Тюлоналыевна учитель информатики

Кашка-Сууйская средняя образовательная школа

им. Т. Актанова Республика Кыргызстан, Чуйская область

Аннотация

линейный программирование математический модель

В данной статье рассматривается библиотека PuLP. PuLP -- это средство моделирования линейного программирования (ЛП) на языке Python. Для реализации необходим Python 3.4 для автоматизации задач, или более продвинутые версии. Рассмотрим постоянно применяемые классы, которые можно использовать в PuLP:

LpProblem -- используем при определении задачи.

LpVariable -- используем для создания новых переменных.

LpConstraint -- используем для создания ограничения. lpSum -- используем для создания линейного выражения.

Value -- используем для того, чтобы получить значения переменной или выражения. Линейная программа-математическая модель задачи, которая удовлетворяет следующим трём условиям:

переменные, используемые при решении, должны быть реальными;

целевая функция, используемая при решении, должна быть линейной;

ограничения, используемые при решении, должны быть линейными.

ЛП используется для нахождения максимума или минимума числового значения и является одним из часто используемых методов для нахождения оптимального использования материалов. Различными факторами ЛП бывают переменные решения, ограничения, данные и целевая функция. ЛП применяется в обрабатывающей промышленности, транспортной отрасли, машиностроении, энергетике и т. д.

Этапы оптимизации:

определение задачи;

формирование уравнения;

решение уравнения;

анализ решения;

презентация решения.

Задача по распределению материалов

Задача по распределению материалов -- это проблема оптимизации. Она ставит своей целью нахождение оптимального распределения материалов по местам и задачам. Каждый материал имеет стоимость, связанную с ним, но число материалов фиксировано. В нашем случае в коде мы учитывали число материалов для каждой работы, как целое число. Оптимизацию распределения материалов можно использовать при планировании производства, организации очередей, распределении нагрузки и т.д. Целью является нахождение минимальных общих затрат и максимизация производства.

Терминология:

целевая функция - это линейное уравнение, решение которого должно быть максимальным или минимальным;

переменная -- это величина, которая используется в уравнении;

ограничения - это условия допустимых возможностей производства и потребления, материалов и т.д.;

правило неотрицательности: значения переменных должны быть

положительными.

Ключевые слова: производство, бутилированная минеральная вода, задача линейного программирования, оптимизация, методы решения, программа, транспортная задача.

Optimal distribution of materials using PuLP in Python

Biybosunov Bolotbek Ilyasovich

Doctor of Physical and Mathematical Sciences, Doctor of Technical Sciences, Professor of the

Department of Applied Informatics

Barganalieva Zhyldyz Kalybekovna Senior Lecturer, Department of Applied Informatics Sultanbaeva Gulmira Salymbaevna

Ph.D, Acting Associate Professor of the Department of Applied Informatics Kyrgyz State University named after I. Arabaev Republic of Kyrgyzstan, Bishkek

Sharsheeva Zhanarkul Tyulonalievna

IT-teacher

Kashka-Suuy Secondary Educational School. T.Aktanova Republic of Kyrgyzstan, Chui region

Abstract

This article discusses the PuLP library. PuLP is a linear programming (LP) simulation tool in Python. Implementation requires Python 3.4 for task automation, or higher. Consider the commonly used classes that can be used in PuLP:

LpProblem - used when defining a problem.

LpVariable - used to create new variables.

LpConstraint - use to create a constraint. lpSum - used to create a linear expression.

Value - used to get the values of a variable or expression.

A linear program is a mathematical model of a problem that satisfies the following three conditions:

the variables used in the solution must be real;

the objective function used in the solution must be linear;

the constraints used in the solution must be linear.

A linear program is a mathematical model of a problem that satisfies the following three conditions:

the variables used in the solution must be real;

the objective function used in the solution must be linear;

the constraints used in the solution must be linear.

LP is used to find the maximum or minimum of a numerical value and is one of the commonly used methods for finding the optimal use of materials. Various LP factors are decision variables, constraints, data, and objective function. LP is used in the manufacturing industry, transport industry, mechanical engineering, energy, etc.

manufacturing industry, transport industry, mechanical engineering, energy, etc.

Optimization steps:

task definition;

formation of the equation;

solution of the equation;

solution analysis;

presentation of the solution.

Material distribution task

The problem of material distribution is an optimization problem. It aims to find the optimal distribution of materials in places and tasks. Each material has a cost associated with it, but the number of materials is fixed. In our case, in the code we took into account the number of materials for each job, as an integer. Material distribution optimization can be used in production planning, queuing, load balancing, and more. The goal is to find the minimum total cost and maximize production.

Terminology:

objective function is a linear equation, the solution of which should be maximum or minimum;

variable is the value that is used in the equation;

restrictions - these are the conditions of acceptable possibilities of production and consumption, materials, etc.;

the rule of non-negativity: the values of variables must be positive.

Key words: production, bottled mineral water, linear programming problem, optimization, solution methods, program, transport problem.

Введение

В данной статье рассматривается библиотека PuLP. PuLP -- это средство моделирования линейного программирования (ЛП) на языке Python. Для реализации необходим Python 3.4 для автоматизации задач, или более продвинутые версии. Рассмотрим постоянно применяемые классы, которые можно использовать в PuLP:

LpProblem -- используем при определении задачи.

LpVariable -- используем для создания новых переменных.

LpConstraint -- используем для создания ограничения.

lpSum -- используем для создания линейного выражения.

Value -- используем для того, чтобы получить значения переменной или выражения.

Материалы и методы исследования

Линейная программа-математическая модель задачи, которая удовлетворяет следующим трём условиям:

переменные, используемые при решении, должны быть реальными;

целевая функция, используемая при решении, должна быть линейной;

ограничения, используемые при решении, должны быть линейными.

ЛП используется для нахождения максимума или минимума числового значения и является одним из часто используемых методов для нахождения оптимального использования материалов. Различными факторами ЛП бывают переменные решения, ограничения, данные и целевая функция. ЛП применяется в обрабатывающей промышленности, транспортной отрасли, машиностроении, энергетике и т. д.

Этапы оптимизации :

определение задачи;

формирование уравнения;

решение уравнения;

анализ решения;

презентация решения.

Задача по распределению материалов

Задача по распределению материалов -- это проблема оптимизации. Она ставит своей целью нахождение оптимального распределения материалов по местам и задачам. Каждый материал имеет стоимость, связанную с ним, но число материалов фиксировано. В нашем случае в коде мы учитывали число материалов для каждой работы, как целое число. Оптимизацию распределения материалов можно использовать при планировании производства, организации очередей, распределении нагрузки и т.д. Целью является нахождение минимальных общих затрат и максимизация производства.

Терминология:

целевая функция - это линейное уравнение, решение которого должно быть максимальным или минимальным;

переменная -- это величина, которая используется в уравнении;

ограничения - это условия допустимых возможностей производства и потребления, материалов и т.д.;

правило неотрицательности: значения переменных должны быть

положительными.

Постановка задачи

В данный момент в Кыргызской Республике рынок по изготовлению бутилированных минеральных вод изобилует своим разнообразием. Этот рынок представлен большим ассортиментом бутилированных минеральных вод, таких как, национальные минеральные воды, а также продукция из дальнего и ближнего зарубежья [1].

Согласно законам экономической теории, с улучшением качества бутилированных минеральных вод, повышается спрос на этот продукт. В соответствии с этим происходит появление новых конкурентов на рынке по выпуску данного продукта.

Рассмотрим задачу упрощенного типа перевозки. У нас есть определенное количество заказчиков бутилированных минеральных вод I = {1,2,3,4,5} и какое-то количество предприятий по их выпуску J = {1,2,3}. У любого покупателя есть фиксированный спрос на бутилированную минеральную воду р^ и у любого предприятия имеется фиксированная производственная мощность М^ Также есть фиксированные транспортные расходы на поставку одной единицы товара с производства j покупателю й

Математическим способом, эту задачу оптимизации можно представить следующим

образом [2,3,4]:

Находим минимум:

Кх) = 1ІЄІ1]Є]СІ]Хі] (1)

при условиях:

ї]е]хі] =РІ,ІЄІ, (2)

Теперь, условие задачи (1)-(4) можно записать в виде следующей таблицы (Таблица

1).

ЪиХ1}<М),] Є], (3)

хи >0,ІЄ І,] Є ] (4)

Таблица 1. Условие задачи

покупатель г

транспортные расходы Сц

1

2

3

4

5

Производственная мощность Мі

бутилированная минеральная вода Ц

1

4

5

6

8

10

500

2

6

4

3

5

8

500

3

9

7

4

2

4

500

спрос Рг

80

270

250

160

180

Реализация программы на языке Python[5].

Импорт библиотек:

Мы будем использовать библиотеки NumPy и PuLP. import numpy as np p = {1:80, 2:270, 3:250, 4:160, 5:180}

M = {1:500, 2:500, 3:500}

I = [1, 2, 3, 4, 5]

J = [1, 2, 3]

st_per = {(1, 1):4, (1, 2):6, (1, 3):9,

(2.1):5, (2,2):4, (2,3):7,

(3.1):6, (3,2):3, (3,3):3,

(4.1):8, (4,2):5, (4,3):3,

(5.1):10, (5,2):8, (5,3):4

}

import pulp

x = pulp.LpVariable.dicts("amount of goods", ((i, j) for i in I for j in J), lowBound = 0, cat = 'Continuous')

ob = pulp.LpAffineExpression(e = [(x[i,j],st_per[i,j]) for i,j in x], name = 'selevaia funcsia')

model = pulp.LpProblem(name = "minimizasia transportnih rashodov", sense = pulp.LpMinimize) model += pulp.lpSum(ob) for i in I:

vrExpression = pulp.LpAffineExpression(e = [(x[i,j], 1) for j in J if (i,j) in x]) vrConstraint = pulp.LpConstraint(e = pulp.lpSum(vrExpression), sense = pulp.LpConstraintEQ,

rhs = p[i])

model.addConstraint(vrConstraint) for j in J:

vrExpression = pulp.LpAffineExpression(e = [(x[i,j], 1) for j in J if (i,j) in x]) vrConstraint = pulp.LpConstraint(e = pulp.lpSum(vrExpression), sense = pulp.LpConstraintLE, rhs = M[j])

model.addConstraint(vrConstraint)

#solver = pulp.solvers.GLPK_CMD(msg=1) results = model.solve() if model.status == 1:

print('optimalnoe reshenie : %s' %pulp.LpStatus[model.status]) else:

print('Failed to find solution: %s' %pulp.LpStatus[model.status]) print('znachenie selevoi funcsii =', pulp.value(model.objective))

EPS = 1.e-06

for (i,j) in x:

if x[i,j].varValue > EPS:

print("kolichestvo otpravlennix tovarov %10s s proizvodstva %3s k zakazchiku %3s" % (x[i,j].varValue,j,i))

Получим следующий ответ: optimalnoe reshenie: Optimal znachenie selevoi funcsii = 3350.0

kolichestvo otpravlennix tovarov 80.0 s proizvodstva 1 k zakazchiku 1

kolichestvo otpravlennix tovarov 270.0 s proizvodstva 2 k zakazchiku 2

kolichestvo otpravlennix tovarov 250.0 s proizvodstva 2 k zakazchiku 3

kolichestvo otpravlennix tovarov 160.0 s proizvodstva 3 k zakazchiku 4

kolichestvo otpravlennix tovarov 180.0 s proizvodstva 3 k zakazchiku 5

Заключение

Итак, из оптимального решения следует вывод: при заданных условиях задачи (2) - (4), мы нашли значение целевой функции L(x) = 3350.

В этой статье обсуждалась задача линейной оптимизации, которую можно решить с помощью библиотеки PuLP. Соответственно, можно протестировать вышеуказанный код на других задачах оптимизации и проверить результаты.

Использованная литература

1. Жусупбаев А., Барганалиева Ж.К., Анализ состояния и перспектива развития рынка натуральных безалкогольных напитков Кыргызской республики// Наука, новые технологии и инновации Кыргызстана. Бишкек. -№ 5, 2019. - 63 с.

2. Эшенкулов П., Жусупбаев А., Култаев Т.Ч., Методика решения задач линейного программирования на компьютере. - Ош, 2004. - 61 с.

3. Жусупбаева Г.А., Жусупбаева Н.А., Задача оптимального прикрепления перерабатывающих предприятий за источником минеральных вод//ИЗВЕСТИЯ ВУЗОВ КЫРГЫЗСТАНА. Бишкек. -№ 5, 2016. - 83 с.

4. Жусупбаев А., Асанкулова М., Чороев К., Математическая модель и методы соотношений экспорта и импорта продукции// ИЗВЕСТИЯ ВУЗОВ КЫРГЫЗСТАНА. Бишкек. - № 5, 2016. - 81 с.

5. Н.А. Прохоренок, В.А. Дронов, //Python 3 САМОЕ НЕОБХОДИМОЕ. Санкт-Петербург, 2016. - 223 с.

Размещено на Allbest.ru

...

Подобные документы

  • Отличительные особенности языка программирования Python: низкий порог вхождения, минималистичный язык, краткий код, поддержка математических вычислений, большое количество развитых web-фреймворков. Традиционная модель выполнения программ на языке Python.

    реферат [51,9 K], добавлен 18.01.2015

  • Программное обеспечение Python и ее основные характеристики, как программной среды. Общие сведения о языке программирования Python. Особенности применения ППП Python (x,y) с использованием его различных вычислительных модулей в учебном процессе.

    дипломная работа [2,9 M], добавлен 07.04.2019

  • Понятие и характеристики облачных технологий, модели их развертывания, технологические процессы, аспекты экономики и критика. Язык программирования Python, оценка функциональности, сравнение с аналогами. Управление облаком в Python на примере libcloud.

    курсовая работа [43,0 K], добавлен 08.06.2014

  • Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.

    курсовая работа [3,1 M], добавлен 27.02.2015

  • Исторические аспекты развития линии "Алгоритмизация и программирование" в старшей школе. Изучение языка программирования Python с применением дистанционных курсов Coursera. Методическая система обучения программированию с использованием Coursera.

    дипломная работа [808,8 K], добавлен 13.12.2017

  • Концептуальная модель задачи на основе триады "Задача–Данные–Решатель" и работа генератора вспомогательных концептуальных моделей. Разработка программы на языке Python, позволяющая решать любые задачи по заданным действительным математическим формулам.

    курсовая работа [1,9 M], добавлен 27.11.2011

  • Разработка программ средствами библиотеки tkinter на языке Python. Изучение основы работы в текстовом редакторе Word. Описание авторской идеи анимации. Использование базовых команд и конструкций. Процесс проектирования и алгоритм разработанной программы.

    контрольная работа [125,3 K], добавлен 11.11.2014

  • Особенности программирования аркадных игр в среде Python. Краткая характеристика языка программирования Python, его особенности и синтаксис. Описание компьютерной игры "Танчики" - правила игры, пояснение ключевых строк кода. Демонстрация работы программы.

    курсовая работа [160,3 K], добавлен 03.12.2014

  • Об'єктно-орієнтована мова Python - сучасна мова програмування, проста у вивченні та використанні. Наявність повної стандартної бібліотеки. Середовища програмування на Python. Механізм функціонування інтерпретатора. Колекції даних, комбіновані оператори.

    презентация [753,2 K], добавлен 06.02.2014

  • Методы решения задач линейного программирования: планирования производства, составления рациона, задачи о раскрое материалов и транспортной. Разработка экономико-математической модели и решение задачи с использованием компьютерного моделирования.

    курсовая работа [607,2 K], добавлен 13.03.2015

  • Представление полиномов в виде кольцевых списков и выполнение базовых арифметических действий над ними. Реализация алгоритмов сложения, умножения и вычитания полиномов класса List на языке программирования Python 2.7. в интегрированной среде Python IDLE.

    курсовая работа [228,1 K], добавлен 11.01.2012

  • Анализ основ ООП, изучение языка программирования Python, применение полученных знаний на практике для реализации предметной области. Понятие и механизм инкапсуляции. Фиксирование информационной работы отеля. Диаграмма классов. Реализация на языке Python.

    курсовая работа [227,6 K], добавлен 14.05.2017

  • Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.

    реферат [79,0 K], добавлен 23.06.2012

  • Общее понятие и характеристика задачи линейного программирования. Решение транспортной задачи с помощью программы MS Excel. Рекомендации по решению задач оптимизации с помощью надстройки "Поиск решения". Двойственная задача линейного программирования.

    дипломная работа [2,4 M], добавлен 20.11.2010

  • Метод имитационного моделирования, построение программа на языке GPSS\PS. Укрупненная схема моделирующего алгоритма. Математическая модель и ее описание. Возможные улучшения в работе системы. Результаты моделирования оптимизации работы поликлиники.

    курсовая работа [148,6 K], добавлен 29.06.2011

  • Решение задачи на составление компромиссного списка. Построение математической модели. Цена перемещения элементов. Вывод программы. Закреплении элемента а1 на первом месте, а а4 на пятом. Матрица оценок для задачи. Оптимальное решение в виде списка.

    курсовая работа [37,5 K], добавлен 30.01.2016

  • Оптимизационная задача линейного программирования. Виды задач линейного программирования. Принятие решений на основе количественной информации об относительной важности критериев. Выбор средств разработки. Программный комплекс векторной оптимизации.

    дипломная работа [1,3 M], добавлен 27.03.2013

  • Разработка программы типа клиент-сервер на языке программирования Python, являющейся автоматическим сервисом поиска контактной информации о пользователях. Применение дейтаграммных и потоковых сокетов. Блок-схема работы программы, руководство пользователя.

    курсовая работа [222,0 K], добавлен 24.04.2015

  • Математическое программирование. Линейное программирование. Задачи линейного программирования. Графический метод решения задачи линейного программирования. Экономическая постановка задачи линейного программирования. Построение математической модели.

    курсовая работа [581,5 K], добавлен 13.10.2008

  • Понятие арифметического точечного пространства. Различные виды плоскостей в пространстве. Общая задача оптимизации. Геометрия задачи линейного программирования. Графический метод решения задачи линейного программирования при малом количестве переменных.

    курсовая работа [756,9 K], добавлен 29.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.