роверил: Герасимова А.В.
имитровград 2012
СОДЕРЖАНИЕ
Введение…………………………………………………………………………..3
Двойственная задача линейного программирования..........................................5
Симплекс-метод решения двойственной задачи линейного программирования...…………………………………………………….…….….7
Постановка задачи……………………………………………………………….16
Решение задачи…………………………………………………………………..17
Решение задачи с помощью MS excel……………………………………………...................................................19
Список используемой литературы……………………………………………..20
ВВЕДЕНИЕ
Математика необходима в повседневной жизни, следовательно, определенные навыки нужны каждому человеку. В жизни нам приходится считать, мы постоянно используем знания о величинах, характеризующих протяжности, площади, объемы, промежутки времени, скорости и многое другое.
Линейное программирование (ЛП) - наука о методах исследования и отыскания экстремумов линейной функции, на неизвестные величины которой наложены линейные ограничения.
То есть, задача линейного программирования, это отыскание минимального или максимального значения линейной функции с учётом системы из линейных уравнений-ограничений. Всё вместе это даёт математическую модель, какого-либо экономического процесса.
Экономико-математическая модель - это математическое описание экономического процесса или объекта. Такие модели используются для исследований и анализа экономических процессов. Реализуя их обработку на ЭВМ, мы получаем выигрыш во времени и средствах, так как проведение опытов, как правило, более трудоёмкий и дорогостоящий процесс, кроме того, не всегда возможный. Не буду здесь вдаваться в теорию моделирования, скажу лишь, что именно реализация исследования экономических процессов с помощью ЭВМ для нас и представляет интерес, а проявляется это в машинном решении задач линейного программирования, которые в свою очередь и являются экономико-математическими моделями.
Все задачи линейного программирования можно разделить на следующие группы:
· Задачи об использовании ресурсов, сырья, планирования производства
· Задачи составления рациона
· Задачи об использовании мощностей, загрузке оборудования
· Задачи о раскрое материалов
· Транспортные задачи
ДВОЙСТВЕННЫЕ ЗАДАЧИ
кономическая интерпретация двойственных задач.
Каждой задаче линейного программирования соответствует другая задача, называемая двойственной или сопряженной по отношению к исходной. Теория двойственности оказалась полезной для проведения качественных исследований задач линейного программирования.
Свойства двойственных задач:
1. В одной задаче ищут максимум линейной функции, в другой - минимум.
2. Коэффициенты при переменных в линейной функции одной задачи являются свободными членами системы ограничений в другой.
3. Каждая из задач задана в стандартной форме, причем в задаче максимизации все неравенства вида "<=", а в задаче минимизации - все неравенства вида ">=".
4. Число неравенств в системе ограничений одной задачи совпадает с числом переменных в другой задаче.
5. Условия неотрицательности переменных имеются в обеих задачах.
Алгоритм составлениядвойственной задачи:
1. Привести все неравенства системы ограничений исходной задачи к одному смыслу: если в исходной задаче ищут максимум линейной функции, то все неравенства системы ограничений привести к виду "<=", а если минимум - к виду ">=". Для этого неравенства, в которых данное требование не выполняется, умножить на -1.
2. Составить расширенную матрицу системы А1 в которую включить матрицу коэффициентов при переменных А, столбец свободных членов системы ограничений и строку коэффициентов при переменных в линейной функции.
3. Найти матрицу А'1, транспонированную к матрице А1.
4. Сформулировать двойственную задачу на основании полученной матрицы A'1 и условия неотрицательности переменных.
Симплексный МЕТОД РЕШЕНИЯ ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Геометрическая интерпретация, которой мы пользовались при решении задач линейного программирования, перестает быть пригодной для этой цели при числе свободных переменных n-m>3,а затруднительна уже при n-m=3. Для нахождения решения задачи линейного программирования в общем случае (при произвольном числе свободных переменных) применяются не геометрические, а вычислительные методы. Из них наиболее универсальным является так называемый симплекс-метод. Данный метод получил несколько различных форм (модификаций) и был разработан в 1947 году Г. Данцигом.
Допустимое множество базисных решений системы линейных уравнений образует в объеме многогранное тело, например тетраэдр, вершины которого угловые точки.
Каждой угловой точке многогранника решений соответствует опорный план (допустимое базисное решение).
Количество перебираемых допустимых базисных решений можно сократить и проводить не беспорядочный перебор, а последовательный по специальному алгоритму, улучшая значение целевой функции.
В тех случаях, когда модель содержит m уравнений, для построения опорных решений используются т переменных, принимающих некоторые положительные значения при нулевых значениях остальных свободных переменных. Вычислительная процедура может быть представлена в виде следующей последовательности.
Итеративный переход от одного допустимого базисного решения проводится направленно от одной вершины области допустимых решении к другой, заключающегося в обменебазисных и свободных переменных: базисная переменная приравнивается к нулю и переходит в свободную, а соответственно свободная переменная переводится на место базисной. Если в столбце свободных членов все элементы положительны, то решение является допустимым. Если в строке целевой функции все элементы неотрицательные, то решение является оптимальным при решении задачи на максимум.
В соответствии с симплексным методом на первом шаге находят начальное опорное решение — допустимый вариант, удовлетворяющий всем ограничениям. Затем последовательно за определенное число итераций направленно осуществляется переход от одного опорного решения к другому вплоть до оптимального. Следует заметить, что на первом шаге в качестве базисных переменных следует выбрать такие т переменные, каждая из которых входит только один раз в одно из т уравнений системы, при этом нет таких уравнений системы, в которые не входит ни одна из этих переменных. При этом если выбранные переменные имеют те же знаки, что и соответствующие им свободные члены в правых частях, то полученное базисное решение будет допустимым. В процессе решения системы линейных уравнений необходимо ориентироваться на сохранение неотрицательности всех переменных, поскольку это определяет допустимость решения.
Для использования рассмотренного алгоритма симплексного метода к минимизации линейной формы связи F(X) следует искать максимум функции F1(X)=- F(X), а затем полученное решение взять с обратным знаком.
Предложенный алгоритм приводит к оптимальному решению для любой модели линейного программирования за конечное число итераций, если система линейных уравнений задачи совместна.
Симплексный метод основан на последовательном переходе от одного базисного решения (опорного плана) задачи линейного программирования к другому опорному плану, при этом значение целевой функции изменяется в лучшую сторону.
Идея симплекс-метода относительно проста. Пусть в задаче линейного программирования имеется n переменных и m независимых линейных ограничений, заданных в форме уравнений. Мы знаем, что оптимальное решение (если оно существует) достигается в одной из опорных точек, где по крайней мере k=n-m из переменных равны нулю. Выберем какие-то k переменных в качестве свободных и выразим через них остальные т базисных переменных. Пусть, например, в качестве свободных выбраны первые k=n-m переменных x1, x2, …, xk, а остальные т выражены через них:
(1)
Предположим, что все свободные переменные х1, х2,..., хк равны нулю.
При этом мы получим:
Это решение может быть допустимым или недопустимым. Оно допустимо, если все свободные члены , неотрицательны. Предположим, что это условие выполнено. Тогда мы получили опорное решение. Но является ли оно оптимальным? Чтобы проверить это, выразим целевую функцию Z через свободные переменные х1, х2,..., хк:
(2)
Очевидно, что при х1 = х2 =... = хк = 0, Z= 0. Проверим, может ли быть улучшено решение, т. е. получено уменьшение функции Z c увеличением каких-нибудь из переменных х1, х2,..., хк (уменьшать их мы не можем, так как все они равны нулю, а отрицательные значения переменных недопустимы). Если все коэффициенты , , …, в (2) положительны, то увеличение каких-либо из переменных х1, х2,..., хк не может уменьшить Z; следовательно, найденное опорное решение является оптимальным. Если же среди коэффициентов , , …, есть отрицательные, то, увеличивая некоторые из переменных х1, х2,..., хк (т.е, коэффициенты при которых отрицательны), мы можем улучшить решение.
Пусть, например, коэффициент в (2) отрицателен. Значит, есть смысл увеличить х1 т. е. перейти от данного опорного решения к другому, где переменная х1 не равна нулю, а вместо нее равна нулю какая-то другая. Однако увеличивать х1 следует с осторожностью, так чтобы не стали отрицательными другие переменные xk+l, xk+2,..., хn, выраженные через свободные переменные, в частности через x1 формулами (1).
Например, если коэффициент при х1 в соответствующем хj уравнении (1) отрицателен, то увеличение x1, может сделать хj отрицательным. Наоборот, если среди уравнений (1) нет уравнения с отрицательным коэффициентом при x1, то величину x1 можно увеличивать беспредельно, а, значит, линейная функция Z не ограничена снизу и оптимального решения 03 не существует.
Допустим, что это не так и что среди уравнений (1) есть такие, в которых коэффициент при x1 отрицателен. Для переменных, стоящих в левых частях этих уравнений, увеличение x1 опасно — оно может сделать их отрицательными.
Возьмем одну из таких переменных x1 и посмотрим, до какой степени можно увеличить x1, пока переменная x1 не станет отрицательной. Выпишем l- еуравнение из системы (1):
Здесь свободный член 0, а коэффициент отрицателен. Легко понять, что если мы оставим х2 = х3 =... = хк = 0, то х1 можно увеличивать только до значения, равного , а при дальнейшем увеличении х1 переменная х1 станет отрицательной.
Выберем ту из переменных xk+l, xk+2,..., хn, которая раньше всех обратится в нуль при увеличении х1, т. е. ту, для которой величина наименьшая. Пусть это будет х 1. Тогда имеет смысл разрешить систему уравнений (1) относительно других базисных переменных, исключая из числа свободных переменных х 1 и переводя вместо нее в группу свободных переменных х r. Действительно, мы хотим перейти от опорного решения, задаваемого равенствами х1 = х2 =... = хк = 0, к опорному решению, в котором уже , а х2 =... = хк = хr. = 0. Первое опорное решение мы получили, положив равными нулю все прежние свободные переменные х1, х2,..., хк, второе мы получим, если обратим в нуль все новые свободные переменные х2, х3,..., хк, хr.
Базисными переменными при этом будут x1, xk+1, xk+2, …, xr-1, xr+1, …, xn.
Предположим, что уравнения типа (1) для нового набора базисных и свободных переменных составлены. Тогда можно выразить через новые свободные переменные и линейную функцию Z. Если все коэффициенты при переменных в этой формуле положительны, то мы нашли оптимальное решение: оно получится, если все свободные переменные положить равными нулю. Если среди коэффициентов при переменных есть отрицательные, то процедура улучшения решения продолжается: система вновь разрешается относительно других базисных переменных, и так далее, пока не будет найдено оптимальное решение, обращающее функцию Z в минимум.
Рассмотрим алгоритм симплексного метода на примере решения задачи планирования товарооборота предприятия торговли.
Коммерческое предприятие реализует n товарных групп, располагая m ограниченными материально-денежными ресурсами bi> 0 (i=1,m). Известны расходы ресурсов каждого i -вида на реализацию единицы товара по каждой группе, представленной в виде матрицы А = (aij), и прибыль сij получаемая предприятием от реализации единицы товара j -группы. Необходимо определить объем и структуру товарооборота хj (j=1, n), при которых прибыль коммерческого предприятия была бы максимальной.
Математическую модель задачи запишем следующим образом. Определить вектор Х = (хих2, …,хп), который удовлетворяет ограничениям вида:
и обеспечивает максимальное значение целевой функции:
Алгоритм симплексного метода включает следующие этапы:
1. Составление первого опорного плана. Система ограничений задачи, решаемой симплексным методом, задана в виде системы неравенств смысла «<», правые части которых bi> 0. Перейдем от системы неравенств к системе уравнений путем введения неотрицательных дополнительных балансовых переменных. Векторы-столбцы при этих переменных представляют собой единичные векторы и образуют базис, а соответствующие им переменные называются базисными:
где - дополнительные переменные,
хj- базисные переменные,
Решим эту систему относительно дополнительных переменных:
,
а функцию цели перепишем в виде уравнения
Следует заметить, что опорным решением называется базисное неотрицательное решение.
Полагая, что основные переменные x1 =х2 =х3 =... хп = 0, получим допустимое базисное решение - опорный план Х1 = (0, 0,..,, 0, bь b2,..., bm); F(X1) = 0, который заносим в симплексную таблицу. Она состоит из коэффициентов системы ограничений и свободных членов. Последняя строка таблицы называется индексной и заполняется коэффициентами функции цели, взятыми с противоположным знаком.
2. Проверка плана на оптимальность. Если значение базисных
переменных неотрицательны, то решение является допустимым.
Если все коэффициенты индексной строки симплексной таблицы при решении задачи на максимум неотрицательны ( 0), то
план является оптимальным. Если найдется хотя бы один коэффициент индексной строки меньше нуля, то план не оптимальный, и его необходимо улучшить.
3. Определение ведущих столбца и строки. Из отрицательных
коэффициентов индексной строки выбираем наибольший по абсолютной величине, что и определяет ведущий столбец, который
показывает, какая переменная на следующей итерации перейдет
из свободных в базисные.
Затем элементы столбца свободных членов симплексной таблицы делим на элементы того же знака (+/+; -/-) ведущего столбца. Результаты заносим в отдельный столбец Qi, которые должны быть всегда положительны. Строка симплексной таблицы, соответствующая минимальному значению Qi, является ведущей. Она и определяет переменную xi, которая на следующей итерации выйдет из базиса и станет свободной (обмен).
Элемент симплексной таблицы, находящийся на пересечении ведущих столбца и строки, называют разрешающим и выделяют, например, кружком.
4. Построение нового опорного плана. Переход к новому плану осуществляется в результате пересчета симплексной таблицы методом Жордана — Гаусса. Сначала заменим переменные в базисе, т.е. вместо xi в базис войдет переменная хj, соответствующая ведущему столбцу (замена).
Разделим все элементы ведущей строки предыдущей симплексной таблицы на разрешающий элемент и результаты деления занесем в строку следующей симплексной таблицы, соответствующей введенной в базис переменной xj. В результате этого на месте разрешающего элемента в следующей симплексной таблице запишем 1, а в остальных клетках у столбца, включая клетку столбца индексной строки, записываем нули. Остальные новые элементы нового плана находятся по правилу прямоугольника:
,
где СТЭ - элемент старого плана;
РЭ – разрешающий элемент;
А и В – элементы старого плана, образующие прямоугольник с элементами СТЭ и РЭ.
Далее возвращаемся ко второму этапу алгоритма - проверке плана на оптимальность.
При решении задачи линейного программирования на минимум целевой функции признаком оптимальности плана являются отрицательные значениявсех коэффициентов индексной строки симплексной таблицы.
Если_в ведущем столбце все коэффициенты aij < 0, то функция цели F() не ограничена на множестве допустимых планов, т.е. и задача не имеет решения.
Если в столбце Qi - симплексной таблицы содержатся два или несколько одинаковых наименьших значений, то новый опорный план будет вырожденным (одна или несколько базисных переменных станут равными нулю). Вырожденные планы могут привести к зацикливанию, т.е. к многократному повторению процесса вычислений, не позволяющему получить оптимальный план. В таких случаях для выбора ведущей строки используют метод Креко, который заключается в следующем. Элементы строк, имеющие одинаковые наименьшие значения Qi, делятся на предполагаемые разрешающие элементы, а результаты заносятся в дополнительные строки. За ведущую строку выбирается та, в которой раньше встретится наименьшее частное при чтении таблицы слева направо по столбцам.
Если в оптимальный план вошла дополнительная переменная хп+1, то при реализации такого плана имеются недоиспользованные ресурсы i -го вида в количестве, полученном в столбце свободных членов симплексной таблицы.
Если в индексной строке симплексной таблицы оптимального плана находится нуль, принадлежащий свободной переменной, не вошедшей в базис, а в столбце, содержащем этот нуль, имеется хотя бы один положительный элемент, то задача имеет множество оптимальных планов. Свободную переменную, соответствующую указанному столбцу, можно внести в базис, выполнив соответствующие этапы алгоритма. В результате будет получен второй оптимальный план с другим набором базисных переменных.
ПОСТАНОВКА ЗАДАЧИ
При откорме животных каждое из них ежедневно должно получить не менее 60 единиц питательного вещества A, не менее 50 единиц вещества B, не менее 12 единиц питательного вещества C. Указанные питательные вещества содержат 3 вида кормов. Содержание единиц питательных веществ в 1 кг каждого из видов корма приведено в таблице:
Питательные вещества | Количество единиц питательного вещества в 1 кг вида | Потребности в питательных веществах | ||
A | ||||
B | ||||
C | ||||
Цена за 1 кг |
Определить минимальные затраты при потреблении питательных веществ.
РЕШЕНИЕ ЗАДАЧИ
1.Запишем математическую модель задачи, которая удовлетворяет следующим условиям:
x1+3x2+4x3≥60
2x1+4x2+2x3≥50
x1+4x2+3x3≥12
xi≥0 i=1,3
И обеспечивает минимальное значение целевой функции:
F(x)= 9x1+12x2+10x3→min
2.Составляем двойственную задачу с ограничениями:
Z(y)=60y1+50y2+12y3→max
y1+2y2+y3≤9
3y1+4y2+4y3≤12
4y1+2y2+3y3≤10
yi≥0 i=1,3
3. Для построения первого опорного плана систему неравенств двойственной задачи приведем к системе уравнений путем введения дополнительных переменных y4,y5,y6.
y1+2y2+y3+y4=9
3y1+4y2+4y3+y5=12
4y1+2y2+3y3+y6=10
yi≥0 i=1,3
Эти переменные будут базисными.
4.Составляем симплексную таблицу(алгоритм составления описан выше):
План | Базисные переменные | Значение баз. переменных | Значение коэффициентов | Q max | |||||
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | ||||
Y4 | |||||||||
Y5 | |||||||||
Y6 | 2,5 | ||||||||
Инд. строка | Z1(y) | -60 | -50 | -12 | |||||
Y4 | 6,5 | 1,5 | 0,25 | -0,25 | 4,33 | ||||
Y5 | 4,5 | 2,5 | 1,75 | -0,75 | 1,8 | ||||
Y1 | 2,5 | 0,5 | 0,75 | 0,25 | |||||
Инд. Строка | Z2(y) | -20 | |||||||
Y4 | 3,8 | -0,8 | -0,6 | 0,2 | 4,33 | ||||
Y2 | 1,8 | 0,7 | 0,4 | -0,3 | 1,8 | ||||
Y1 | 1,6 | 0,4 | -0,2 | 0,4 | |||||
Инд. строка | Z3(y) |
План является оптимальным. При этом Z max (y)=186, y1=1,6, y2=1,8, y3=0
5. Нахождение решения прямой задачи.
На основании теоремы двойственности, которая гласит, что если одна из задач двойственной пары имеет решение, то другая также решима, можем сделать вывод:
Z max (y)=Fmin(x)=186, при этом x1=0, x2=8, x3=9.
Ответ: Минимальные затраты потребления питательных веществ равны 186кг.