Оптимизация плана производства
1.
Постановка основной задачи линейного программирования
1.1 Линейное
программирование
Линейное программирование - это
направление математического программирования, изучающее методы решения
экстремальных задач, которые характеризуются линейной зависимостью между
переменными и линейным критерием. Такие задачи находят обширные приложения в
различных сферах человеческой деятельности. Систематическое изучение задач
такого типа началось в 1939-1940 гг. в работах Л.В. Канторовича.
К математическим задачам линейного
программирования относят исследования конкретных производственно-хозяйственных
ситуаций, которые в том или ином виде интерпретируются как задачи об
оптимальном использовании ограниченных ресурсов.
Круг задач, решаемых при помощи методов
линейного программирования достаточно широк. Это, например:
· задача об оптимальном
использовании ресурсов при производственном планировании;
· задача о смесях
(планирование состава продукции);
· задача о нахождении
оптимальной комбинации различных видов продукции для хранения на складах
(управление товарно-материальными запасами или);
· транспортные задачи
(анализ размещения предприятия, перемещение грузов).
Линейное программирование - наиболее
разработанный и широко применяемый раздел математического программирования (кроме
того, сюда относят: целочисленное, динамическое, нелинейное, параметрическое
программирование). Это объясняется следующим:
· математические модели
большого числа экономических задач линейны относительно искомых переменных;
· данный тип задач в настоящее
время наиболее изучен. Для него разработаны специальные методы, с помощью
которых эти задачи решаются, и соответствующие программы для ЭВМ;
· многие задачи линейного
программирования, будучи решенными, нашли широкое применение;
· некоторые задачи, которые
в первоначальной формулировке не являются линейными, после ряда дополнительных
ограничений и допущений могут стать линейными или могут быть приведены к такой
форме, что их можно решать методами линейного программирования.
Экономико-математическая модель любой
задачи линейного программирования включает: целевую функцию, оптимальное
значение которой (максимум или минимум) требуется отыскать; ограничения в виде
системы линейных уравнений или неравенств; требование неотрицательности
переменных.
В общем виде модель записывается следующим
образом:
целевая функция
(1.1)
при ограничениях
(1.2)
требования неотрицательности
(1.3)
где xj - переменные (неизвестные);
- коэффициенты задачи линейного программирования.
Задача состоит в нахождении оптимального
значения функции (1.1) при соблюдении ограничений (1.2) и (1.3).
Систему ограничений (1.2) называют
функциональными ограничениями задачи, а ограничения (1.3) - прямыми.
Вектор, удовлетворяющий ограничениям (1.2)
и (1.3), называется допустимым решением (планом) задачи линейного
программирования. План, при котором функция (1.1) достигает своего
максимального (минимального) значения, называется оптимальным.
1.2
Симплекс метод решения задач линейного программирования
Симплекс-метод был разработан и впервые
применен для решения задач в 1947 г. американским математиком Дж. Данцигом.
Двумерные задачи линейного
программирования решаются графически. Для случая N=3 можно рассмотреть
трехмерное пространство и целевая функция будет достигать своё оптимальное
значение в одной из вершин многогранника.
Допустимым решением (допустимым планом)
задачи ЛП, данной в стандартной форме, называется упорядоченное множество чисел
(х1, х2, …, хn), удовлетворяющих ограничениям; это точка в n-мерном
пространстве.
Множество допустимых решений образует
область допустимых решений (ОДР) задачи ЛП. ОДР представляет собой выпуклый
многогранник (многоугольник).
В общем виде, когда в задаче участвуют
N-неизвестных, можно сказать, что область допустимых решений, задаваемая
системой ограничивающих условий, представляется выпуклым многогранником в
n-мерном пространстве и оптимальное значение целевой функции достигается в
одной или нескольких вершинах.
Базисным называется решение, при котором
все свободные переменные равны нулю.
Опорное решение - это базисное
неотрицательное решение. Опорное решение может быть невырожденным и
вырожденным. Опорное решение называется невырожденным, если число его ненулевых
координат равно рангу системы, в противном случае оно является вырожденным.
Допустимое решение, при котором целевая функция достигает своего
экстремального значения, называется оптимальным и обозначается .
Решить данные задачи графически, когда количество переменных более
3 весьма затруднительно. Существует универсальный способ решения задач
линейного программирования, называемый симплекс-методом.
Симплекс-метод - это универсальный метод решения задач ЛП,
представляющий собой итерационный процесс, который начинается с одного решения
и в поисках лучшего варианта движется по угловым точкам области допустимых
решений до тех пор, пока не достигнет оптимального значения.
С его помощью можно решить любую задачу линейного
программирования.
В основу симплексного метода положена идея последовательного
улучшения получаемого решения.
Геометрический смысл симплексного метода состоит в
последовательном переходе от одной вершины многогранника ограничений к
соседней, в которой целевая функция принимает лучшее (или, по крайней мере, не
худшее) значение до тех пор, пока не будет найдено оптимальное решение -
вершина, где достигается оптимальное значение функции цели (если задача имеет
конечный оптимум).
Таким образом, имея систему ограничений, приведенную к
канонической форме (все функциональные ограничения имеют вид равенств), находят
любое базисное решение этой системы, заботясь только о том, чтобы найти его как
можно проще. Если первое же найденное базисное решение оказалось допустимым, то
проверяют его на оптимальность. Если оно не оптимально, то осуществляется
переход к другому, обязательно допустимому базисному решению. Симплексный метод
гарантирует, что при этом новом решении целевая функция, если и не достигнет
оптимума, то приблизится к нему (или, по крайней мере, не удалится от него). С
новым допустимым базисным решением поступают так же, пока не отыщется решение,
которое является оптимальным.
Процесс применения симплексного метода предполагает реализацию
трех его основных элементов:
1. способ определения какого-либо
первоначального допустимого базисного решения задачи;
2. правило перехода к лучшему
(точнее, не худшему) решению;
. критерий проверки оптимальности
найденного решения.
Симплексный метод включает в себя ряд
этапов и может быть сформулирован в виде четкого алгоритма (четкого предписания
о выполнении последовательных операций). Это позволяет успешно программировать
и реализовывать его на ЭВМ. Задачи с небольшим числом переменных и ограничений
могут быть решены симплексным методом вручную.
1.3.
Двойственная задача линейного программирования
С каждой задачей линейного
программирования можно некоторым образом сопоставить другую задачу ЛП,
называемую двойственной по отношению к исходной (прямой).
Под двойственной задачей понимается
вспомогательная задача линейного программирования, формулируемая с помощью
определённых правил непосредственно из условий прямой задачи.
Заинтересованность в определении оптимального решения прямой задачи путём
решения двойственной к ней задачи обусловлена тем, что вычисления при решении
ДЗ могут оказаться менее сложными. Трудоёмкость вычислений при решении ЗЛП в
большей степени зависит от числа ограничений, а не от количества переменных.
Дадим определение двойственной задачи по
отношению к прямой задаче линейного программирования, состоящей, в нахождении
максимального значения функции
функции
f =c1x1 + c2x2
+ … + cnxn→max (1.4)
при условиях:
a11x1 + a12x2
+ … + a1nxn ≤ b121x1 + a22x2
+ … + a2nxn ≤ b2
… (1.5)m1x1
+ am2x2 + … + amnxn ≤ bmj
≥ 0 (j = 1, 2,… m, m ≤ n).
Задача, состоящая в нахождении минимального значения функции
f*=b1y1 + b2y2
+ … + bmym→min (1.6)
при условиях:
a11y1 + a12y2
+ … + am1ym ≥ c112y1 + a22y2
+ … + am2ym ≤ c2
… (1.7)1ny1
+ a2ny2 + … + amnym ≤ cmi ≥ 0 (i = 1, 2, … k ≤ m)
называется двойственной по отношению к
задаче (1.4) - (1.5). Задачи (1.4) - (1.5) и (1.6) - (1.7) образуют пару задач,
называемую в линейном программировании двойственной парой. Сравнивая две сформулированные
задачи, видим, что двойственная задача составляется согласно следующим
правилам:
Целевая функция исходной задачи задается
на максимум, а целевая функция двойственной - на минимум.
1. Матрица
(1.8)
2. составленная из коэффициентов при
неизвестных в системе ограничений (1.5) исходной задачи, и аналогичная матрица
(1.9)
в двойственной задаче получаются друг из друга транспонированием
(т.е. заменой строк столбцами, а столбцов - строками).
3. Число переменных в двойственной задаче
равно числу ограничений в системе (1.5) исходной задачи, а число ограничений в
системе (1.7) двойственной задачи - числу переменных в исходной задаче.
4. Коэффициентами при неизвестных в
целевой функции (1.6) двойственной задачи являются свободные члены в системе
(1.5) исходной задачи, а правыми частями в соотношениях системы (1.7)
двойственной задачи - коэффициенты при неизвестных в целевой функции (1.4)
исходной задачи.
. Если i-е соотношение в системе
(1.5) исходной задачи является неравенством, то j-я переменная двойственной
задачи yj ≥ 0. В противном случае переменная уj
может принимать как положительные, так и отрицательные значения.
Двойственные пары задач обычно
подразделяют на симметричные и несимметричные. В симметричной паре двойственных
задач ограничения (1.5) прямой задачи и соотношения (1.7) двойственной задачи
являются неравенствами вида «». Таким образом, переменные обеих задач могут
принимать только лишь неотрицательные значения.
Двойственные пары задач обычно
подразделяют на симметричные и несимметричные. В симметричной паре двойственных
задач ограничения (1.5) прямой задачи и соотношения (1.7) двойственной задачи
являются неравенствами вида «». Таким образом, переменные обеих задач могут
принимать только лишь неотрицательные значения.
Если одна из задач двойственной пары (1.4)
- (1.5) или (1.6) - (1.7) имеет оптимальный план, то и другая имеет оптимальный
план, и значения целевых функций задач при их оптимальных планах равны между
собой, т.е. f max = f*min.
2.
Построение модели и решение задачи определения оптимального плана производства
в ООО «Мельник»
Фабрика ООО «Мельник» специализируется на
выпуске двух сортов теста: бисквитное и песочное. Для изготовления теста
используются такие ингредиенты как яйца и сахар, так же затрачивается и ресурсы
труда. Для изготовления бисквитного теста требуется 5 штук яиц и 0,3 килограмма
сахара, для изготовления затрачивается 15 минут. А для изготовления песочного
теста потребуется 2 яйца, 0,25 килограмма сахара и 30 минут затраченного
времени. Стоимость 1 кг бисквитного теста 30 руб., а песочного 20 руб. Общий
запас яиц равен 1000 шт., 75 кг сахара и 125 часов трудовых ресурсов.
2.1
Построение экономико-математической модели
. Переменные задачи.
В задаче требуется установить, сколько
продукции каждого вида надо производить, поэтому искомыми величинами, а значит,
и переменными задачи являются суточные объемы производства каждого вида
продукции:
х1 - суточный объем
производства бисквитного теста, (кг);
х2 - суточный объем
производства песочного теста, (кг).
. Целевая функция.
В условии задачи сформулирована цель -
добиться максимального дохода от реализации продукции, т.е. критерием
эффективности служит параметр суточного дохода, который должен стремиться к максимуму.
Чтобы рассчитать величину суточного дохода от продажи продукции обоих видов,
необходимо знать объемы производства, т.е. x1 и х2 кг
продукции в сутки, а также цены на продукцию бисквитного и песочного теста -
согласно условию 30 и 20 руб. за 1 кг продукции соответственно. Таким образом,
доход от продажи суточного объема производства продукции бисквитного теста
равен 30х1 руб. в сутки, а от продажи песочного теста - 20х2
тыс. руб. в сутки. Поэтому запишем целевую функцию в виде суммы дохода от
продажи продукции бисквитного и песочного теста.
(руб.).
. Ограничения.
Возможные объемы производства продукции х1 и х2
ограничиваются следующими условиями:
количество яиц, сахара и трудовых ресурсов, израсходованных в
течение суток на производство теста обоих видов, не может превышать запаса этих
ингредиентов на складе;
объем производства продукции не может быть выражен отрицательными
значениями.
Запишем эти ограничения в математической форме.
Ограничение по расходу яиц имеет вид:
(т/сутки).
Левая часть ограничения - это расчет расхода яиц на производство
теста обоих видов. Расход яиц на производство 1 кг бисквитного теста - 5 шт.;
на производство 1 кг песочного теста - 2 шт. Тогда на производство х1
кг бисквитного теста и х2 кг песочного теста потребуется (5х1
+ 2x2) шт. яиц. Правая часть ограничения - это величина запаса яиц
на складе - 1000 шт.
Аналогична запись ограничения по расходу сахара:
(кг).
Так же ограничение по трудовым ресурсам имеет вид:
(чел.-ч.)
Неотрицательность объемов производства задается как
Таким образом, математическая модель задачи имеет вид:
;
Экономико-математическая модель задачи состоит в том, чтобы найти
такой план производства продукции , удовлетворяющий системе ограничений, при котором целевая функция
принимает максимальное значение.
2.2
Определение оптимального плана производства симплексным методом
Приведем задачу к каноническому виду. Для
этого в ограничения задачи введем дополнительные переменные х3, х4,
х5 и перепишем условие задачи в виде уравнений:
В качестве базисных переменных возьмем х3, х4,
х5, тогда небазисные - х1, х2. Полагаем х1
= х2 = 0, тогда х3 =1000, х4=75, х5
=125.
-я итерация.
Составляем первую симплексную таблицу, соответствующую исходному
опорному решению (таблица 3):
или
Таблица 3
ci
|
БП
|
30
|
20
|
0
|
0
|
0
|
bi
|
|
|
x1
|
x2
|
x3
|
x4
|
x5
|
|
0
|
x3
|
5
|
2
|
1
|
0
|
0
|
1000
|
0
|
x4
|
0,3
|
0,25
|
0
|
1
|
0
|
75
|
0
|
x5
|
0,25
|
0,5
|
0
|
0
|
125
|
Dj
|
- 30
|
- 20
|
0
|
0
|
0
|
0
|
Все строки таблицы, за исключением
индексной, заполняем по данным системы ограничений и целевой функции. Элементы
последней строки рассчитываем:
и т.д.
В индексной строке две отрицательные оценки, значит, найденное
решение не является оптимальным и его можно улучшить. В качестве разрешающего
столбца следует принять столбец переменной х1:
, т.е. k =1.
За разрешающую строку принимаем строку переменной х3:
, т.е. s =1.
Разрешающим является элемент а11=5, т.е. вводим в базис
переменную х1, выводим х3.
-я итерация.
Формируем следующую симплексную таблицу (таблица 4)
Таблица 4
ci
|
БП
|
30
|
20
|
0
|
0
|
0
|
bi
|
|
|
x1
|
x2
|
x3
|
x4
|
x5
|
|
30
|
x1
|
1
|
0,4
|
0,2
|
0
|
0
|
200
|
0
|
x4
|
0
|
0,13
|
-0,06
|
1
|
0
|
15
|
0
|
x5
|
0
|
0,4
|
-0,05
|
0
|
1
|
75
|
Dj
|
0
|
- 8
|
6
|
0
|
0
|
6000
|
Из таблицы 4 находим опорный план:
,
В индексной строке таблицы 4 имеется одна отрицательная оценка.
Полученное решение можно улучшить. Разрешающим элементом является а22=0,13
-я итерация.
Формируем следующую симплексную таблицу (таблица 5).
ci
|
БП
|
30
|
20
|
0
|
0
|
0
|
bi
|
|
|
x1
|
x2
|
x3
|
x4
|
x5
|
|
30
|
x1
|
1
|
0
|
0,38
|
-3,07
|
0
|
153,8
|
20
|
x2
|
0
|
1
|
-0,4
|
7,7
|
0
|
115,4
|
0
|
x5
|
0
|
0
|
0,13
|
-3,07
|
1
|
28,8
|
Dj
|
0
|
0
|
2,3
|
61,5
|
0
|
6923
|
Из таблицы 5 находим опорный план:
,
Так как все оценки свободных переменных положительные, найденное
решение является оптимальным:
Максимальная прибыль составит 6923 рублей, при этом необходимо
произвести 153,8 кг бисквитного теста и 115,4 кг песочного теста. В оптимальном
плане ресурсы яиц и сахара равны нулю (х3=х4=0), так как
они используются полностью. А резерв трудовых ресурсов х5 = 28,8,
что свидетельствует о излишках.
Построение двойственной задачи
Оценки, приписываемые каждому виду
ресурсов, должны быть такими, чтобы оценка всех используемых ресурсов была
минимальной, а суммарная оценка ресурсов на производство единицы продукции
каждого вида - не меньше цены единицы продукции данного вида.
Обозначим через y1 -
двойственную оценку дефицитности яиц, через y2 - сахара, y3
- трудовых ресурсов. Тогда прямая и двойственная задачи формулируются:
прямая задача
двойственная задача
Решение прямой задачи дает оптимальный план производства песочного
и бисквитного теста, а решение двойственной задачи - оптимальную систему оценок
ресурсов, используемых для производства:
Двойственные оценки ресурсов yi* - это
оценочные коэффициенты Dj дополнительных переменных х3,
х4, х5 в последней симплексной таблице.
Исходя из анализа оптимальных двойственных оценок, можно сделать
следующие выводы.
Ресурсы яиц и сахара используются полностью. Полному использованию
этих ресурсов соответствуют полученные оптимальные оценки y1, y2,
отличные от нуля. Значит, трудовые ресурсы недоиспользуются (х5 =
28,8 чел.-ч.).
.3
Решение задачи оптимизации в табличном процессоре MS Excel
Для решения задач линейного
программирования в MS Excel изначально мной был построен шаблон для ввода
исходных данных.
Далее оптимальный план для поставленной
задачи нашла с помощью функции «Поиск решения».
Рисунок 1 - Экранная форма задачи
Используя обозначения соответствующих
ячеек в Excel, для расчета целевой функции была использована формула
СУММПРОИЗВ, как сумма произведений соответствующих ячеек на соответствующие
значения.
Таблица 7
Левая часть
ограничения
|
Формула Excel
|
5x1+2x2
|
=СУММПРОИЗВ
($B$3:$C$3; B10:C10)
|
0,3x+0,25x2
|
=СУММПРОИЗВ
($B$3:$C$3; B11:C11)
|
0,25x1+0,5x2
|
=СУММПРОИЗВ
($B$3:$C$3; B12:C12)
|
Отчете по результатам (рис. 4). В этом
отчете в столбцах «Результат» можно увидеть оптимальный план решения задачи:
максимальную прибыль фабрики и производство двух сортов теста. А так же
количество израсходованных ресурсов
Рисунок 2 - Окно «Поиск решения» после ввода всех необходимых
данных
В конечном итоге у нас получился
оптимальный план решения задачи.
Рисунок 3 - Экранная форма после получения решения
Рисунок 4 - Отчет по результатам
Отчет по устойчивости (рис. 5).В этом отчете можно увидеть
оптимальное решение по производству теста. Так же допустимые приращения
коэффициентов целевой функции, при которых сохраняется прежнее оптимальное
решение и др.
Рисунок 5 - Отчет по устойчивости
Отчет по пределам изменений представлен на рис. 6.
В отчете показано, в каких пределах может изменяться выпуск
продукции, вошедший в оптимальное решение, при сохранении структуры
оптимального решения. Там же даны соответствующие оптимальные значения целевой
функции.
Рис. 6 - Отчет по пределам
Заключение
В ходе курсовой работы были решены
следующие основные задачи построена экономико-математическая модель задачи,
определен оптимальный план производства симплексным методом и решена задача
оптимизации в табличном процессоре MS Excel.
Максимальная прибыль фабрики по
изготовлению теста составила 6923 рублей, при этом необходимо произвести 153,8
кг бисквитного теста и 115,4 кг песочного теста.
Исходя из анализа оптимальных двойственных
оценок, можно сделать следующие выводы:
Запасы яиц и сахара используются
полностью. Полному использованию этих ресурсов соответствуют полученные
оптимальные оценки y1, y2, отличные от нуля. Значит,
трудовые ресурсы недоиспользуются в размере 28,8 чел.-ч.
Увеличение количества яиц на 1 шт.
приведет к тому, что появится возможность найти новый оптимальный план
производства продукции, при котором общая прибыль возрастает на 2,31 руб. и
станет равной 6923 + 2,31 = 6925,31 руб. Анализ полученных оптимальных значений
новой прямой задачи показывает, что это увеличение общей прибыли достигается за
счет увеличения производства бисквитного теста на 0,38 руб. и сокращения
выпуска бисквитного теста на 0,4 руб. Вследствие этого использование трудовых
ресурсов увеличится на 0,13 руб.
Точно так же увеличение на 1 кг.
количества сахара позволит перейти к новому оптимальному плану производства,
при котором прибыль возрастет на 61,54 руб. и составит 6984,5 руб., что
достигается за счет уменьшения выпуска бисквитного теста на 3,07 руб. и
увеличения выпуска песочного теста на 7,7 руб., причем объем используемых
трудовых ресурсов увеличится на 3,07 руб.
Уменьшение количество запасов сахара на 15
кг приведет к тому что появится новый оптимальный план производства при котором
общая прибыль уменьшится на 923 рубля, т.е. станет равен 6000 рублей.
Увеличение цены бисквитного теста с 30 до
40 рублей за 1 кг не изменит оптимальное решение, т.к. при анализе в отчете по
устойчивости «Допустимое увеличение» равно 20, а это значит что при увеличении
цены до 50 рублей за кг оптимальное решение не будет изменено.
Список
литературы
симплекс производство двойственный excel
1. Акулич
И.Л. Математическое программирование в примерах и задачах. М., 2007.
. Грешилов
А.А. Прикладные задачи математического программирования. М., 2009.
3. Конюховский
П.В. Математические методы исследования операций в экономике. - СПб: Питер,
2010
. Хемди
А. Таха. Введение в исследование операций. 7-е изд. - М.: «Вильямс», 2007.