Начальный
допустимый план представляет собой
любой план
,
удовлетворяющий всем ограничениям
исходной задачи. Начальный допустимый
план называют такжебазисным
или опорным
планом.
Желательно,
найти базисный план, который обеспечит
как можно меньшее значение целевой
функции. Для этого пользуются специально
разработанными методами:
1).
Метод северо-западного угла.
2).
Метод минимальной стоимости.
3).
Метод Фогеля.
Методы
отличаются алгоритмом выбора очередной
клетки, в которую помещается объем
очередной перевозки.
При
заполнении транспортной таблицы
значениями объемов перевозок
,
некоторые клетки могут остаться
незаполненными, их называютсвободными.
Заполненные клетки, соответствующие
ненулевым переменным называют занятыми,
а сами переменными — базисными.
Если
для сбалансированной задачи число
ненулевых переменных
в базисном плане равно,
план называетсяневырожденным
базисным планом.
План
с меньшим, чем
числом ненулевых компонент называетсявырожденным
планом. В этом случае необходимо ввести
в базисный план нулевые переменные и
считать их базисными.
Исходные
данные ТЗ часто задаются в матричном
виде:
или |
, , . |
При
решении ТЗ используется транспортная
таблица (рис.2.1).
Строки
таблицы отвечают пунктам производства.
В последней клетке каждой строки указан
соответствующий объем производства.
Например, в первой строке, которая
соответствует пункту производства
,
объем производства равен.
Столбцы
соответствуют пунктам потребления.
Последняя клетка каждого столбца
содержит объем потребления
для соответствующего пункта
.
Каждая
клетка транспортной таблицы содержит
информацию о перевозке из
-ого
пункта в-ый.
Здесь— объем перевозок, а— стоимость перевозки единицы товара.
|
|
|||
|
||||
|
|
|||
Рис.
2.1. Транспортная таблица
Пример
1.
Найти начальный допустимый план
транспортной задачи, заданной в матричном
виде:
.
a).
Метод северо-западного
угла.
Построим
исходную транспортную таблицу.
Первой
заполняем клетку в верхнем левом углу
.
Присвоим ей значение равное меньшему
из объемов спросаи предложения,
получим.
Уменьшим потребности первого пункта
потребления и запасы первого пункта
производства на 2. Потребности первого
пункта потребления исчерпаны, запретим
перевозки в этот пункт, используя символх:
|
|
|
Перейдем
к следующей клетке
и заполним ее аналогично.
Уменьшим потребности второго пункта
потребления и запасы первого пункта
производства на 1. Запасы первого пункта
производства при этом будут исчерпаны,
запретим перевозки из этого пункта:
|
|
|
Перейдем
к следующей клетке и заполним ее
аналогично
:
|
|
|
Уменьшим
потребности второго пункта потребления
и запасы второго пункта производства
на 5. Запасы второго пункта производства
исчерпаны, запретим перевозки из этого
пункта.
Перейдем
к следующей клетке,
.
Уменьшим потребности второго пункта
потребления и запасы третьего пункта
производства на 1. Потребности второго
пункта потребления исчерпаны, запретим
перевозки в этот пункт:
|
|
|
В
последнюю клетку запишем
.
Уменьшим потребности третьего пункта
потребления и запасы третьего пункта
производства на 4. Получим
допустимый
базисный план:
|
|
|
Суммы
перевозок по строкам и столбцам должны
совпадать с исходной задачей. Необходимо
выполнить проверку.
Найденный
начальный план необходимо также проверить
на вырожденность. Вычислим
,
количество ненулевых переменных в
полученном плане тоже равно 5. Полученный
базисный план (рис. 2.2) является
невырожденным.
1 2 |
2 1 |
3 — |
2 — |
1 5 |
5 — |
4 — |
8 1 |
2 4 |
Рис.
2.2. Начальный базисный план, метод
северо-западного угла
Найдем
значение целевой функции для найденного
плана:
b).
Метод минимальной
стоимости.
Алгоритм
заполнения клеток такой же, как в методе
северо-западного угла, изменяется
последовательность заполнения клеток.
Первой заполняется клетка с минимальной
ценой перевозки. Если таких клеток
несколько, выбираем любую из них.
Затем
выбираем следующую из незаполненных
клеток с минимальной ценой, пока не
удовлетворим все потребности. При этом
все запасы будут использованы полностью,
так как рассматривается сбалансированная
задача.
Применим
метод минимальной стоимости к рассмотренной
выше задаче.
Имеются
две клетки с минимальной стоимостью
перевозки единицы товара
.
Заполним сначала клетку.
|
|
|
Затем
заполним клетку
.
|
|
|
Следующее
по величине значение стоимости равное
2 тоже соответствует двум клеткам
.
Заполним сначала клетку,
а затем:
|
|
|
Осталось
заполнить клетку
=1
(рис. 2.3). Последовательность заполнения
ячеек данным методом:
,,,,.
1 2 |
2 1 |
3 — |
х |
2 — |
1 5 |
5 — |
х |
4 — |
8 1 |
2 4 |
х |
х |
х |
х |
Рис.
2.3. Начальный базисный план, метод
минимальной стоимости
Для
данной исходной задачи планы, найденные
двумя способами, совпали. Заметим, что
обычно метод минимальной стоимости
дает лучшее начальное решение.
Самым
распространённым способом решения
транспортной задачи является получение
одного из допустимых планов «методом
северо-западного угла», который требует
меньшего объема вычислений, с последующим
его улучшением «методом потенциалов».
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Содержание:
Исследование различных процессов, в том числе и экономических, обычно начинается с их моделирования, т.е. отражения реального процесса через математические соотношения. При этом составляются уравнения или неравенства, которые связывают различные показатели (переменные) исследуемого процесса, образуя систему ограничений. В этих процессах выделяются такие переменные, меняя которые можно получить оптимальное значение основного показателя данной системы (прибыль, доход, затраты и т.д.). Соответствующие методы, позволяющие решать указанные задачи, объединяются под общим названием «математическое программирование» или математические методы исследования операций.
Математическое программирование включает в себя такие разделы математики, как линейное, нелинейное и динамическое программирование. Сюда же относят и стохастическое программирование, теорию игр, теорию массового обслуживания, теорию управления запасами и некоторые другие.
Математическое программирование – это раздел высшей математики, посвященный решению задач, связанных с нахождением экстремумов функций нескольких переменных, при наличии ограничений на переменные.
Методами математического программирования решаются задачи о распределении ресурсов, планировании выпуска продукции, ценообразования, транспортные задачи и т.д.
Построение математической модели экономической задачи включает следующие этапы:
- выбор переменных задачи;
- составление системы ограничений;
- выбор целевой функции.
Переменными задачи называются величины
Система ограничений включает в себя систему уравнений и неравенств, которым удовлетворяют переменные задачи и которые следуют из ограниченности ресурсов или других экономических или физических условий, например, положительности переменных и т.п.
Целевой функцией называют функцию переменных задачи, которая характеризует качество выполнения задачи, и экстремум которой требуется найти.
Общая задача математического программирования формулируется следующим образом: найти экстремум целевой функции: и соответствующие ему переменные при условии, что эти переменные удовлетворяют системе ограничений:
Если целевая функция и система ограничений линейны, то задача математического программирования называется задачей линейного программирования и в общем виде может быть записана следующим образом:
Данная запись означает следующее: найти экстремум целевой функции задачи и соответствующие ему переменные X = (). при условии, что эти переменные удовлетворяют системе ограничений и условиям неотрицательности.
Допустимым решением (планом) задачи линейного программирования называется любойX = (). удовлетворяющий системе ограничений и условиям неотрицательности. Множество допустимых решений (планов) задачи образует область допустимых решений.
Оптимальным решением (планом) задачи линейного программирования называется такое допустимое решение задачи, при котором целевая функция достигает экстремума.
Задача линейного программирования
В общем случае задача линейного программирования записывается так, что ограничениями являются как уравнения, так и неравенства, а переменные могут быть как неотрицательными, так и произвольно изменяющимися. В случае, когда все ограничения являются уравнениями и все переменные удовлетворяют условию неотрицательности, задачу линейного программирования называют канонической. Каноническая задача линейного программирования в координатной форме записи имеет вид:
Используя знак суммирования эту задачу можно записать следующим образом:
Каноническая задача линейного программирования в векторной форме имеет вид:
В данном случае введены векторы:
Здесь С – X – скалярное произведение векторов С и X.
Каноническая задача линейного программирования в матричной форме записи имеет вид:
где:
Здесь А – матрица коэффициентов системы уравнений, X -матрица-столбец переменных задачи; – матрица-столбец правых частей системы ограничений.
Нередко используются задачи линейного программирования, называемые симметричными, которые в матричной форме записи имеют вид:
Приведение общей задачи линейного программирования к канонической форме
В большинстве методов решения задач линейного программирования предполагается, что система ограничений состоит из уравнений и естественных условий неотрицательности переменных. Однако, при составлении математических моделей экономических задач ограничения в основном формулируются системы неравенств, поэтому возникает необходимость перехода от системы неравенств к системе уравнений. Это может быть сделано следующим образом. К левой части линейного неравенства:
прибавляется величина такая, что переводит неравенство в равенство , где:
Неотрицательная переменная называется дополнительной переменной.
Основания для возможности такого преобразования дает следующая теорема.
Теорема. Каждому решению неравенства соответствует единственное решение уравнения: и неравенства и, наоборот, каждому решению уравнения: и неравенства соответствует единственное решение неравенства:
Доказательство. Пусть – решение неравенства. Тогда:
Если в уравнение вместо переменных подставить значения , получится:
Таким образом, решение удовлетворяет уравнению: и неравенству .
Доказана первая часть теоремы.
Пусть удовлетворяет уравнению и неравенству , т.е. . Отбрасывая в левой части равенства неотрицательную величину , получим:
т.е. удовлетворяет неравенству: что и требовалось доказать.
Если в левую часть неравенств системы ограничений вида
добавить переменную , то получится система ограничений – уравнений В случае, если система неравенств-ограничений имеет вид , то из левой части неравенств-ограничений нужно вычесть соответствующую неотрицательную дополнительную переменную
Полученная таким образом система уравнений-ограничений, вместе с условиями неотрицательности переменных, т.е. и целевой функцией является канонической формой записи задачи линейного программирования.
Дополнительные переменные вводятся в целевую функцию с нулевыми коэффициентами и поэтому не влияют на ее значения.
В реальных практических задачах дополнительные неизвестные имеют определенный смысл. Например, если левая часть ограничений задачи отражает расход ресурсов на производство продукции в объемах , а правые части – наличие производственных ресурсов, то числовые значения дополнительных неизвестных и означают объем неиспользованных ресурсов i-го вида.
Иногда возникает также необходимость перейти в задаче от нахождения минимума к нахождению максимума или наоборот. Для этого достаточно изменить знаки всех коэффициентов целевой функции на противоположные, а в остальном задачу оставить без изменения. Оптимальные решения полученных таким образом задач на максимум и минимум совпадают, а значения целевых функций при оптимальных решениях отличаются только знаком.
Множества допустимых решений
Множество точек называется выпуклым, если оно вместе с любыми двумя своими точками содержит их произвольную выпуклую линейную комбинацию.
Выпуклой линейной комбинацией произвольных точек Евклидова пространства называется сумма – произвольные неотрицательные числа, сумма которых равна 1.
Геометрически это означает, что если множеству с любыми двумя его произвольными точками полностью принадлежит и отрезок, соединяющий эти точки, то оно будет выпуклым. Например, выпуклыми множествами являются прямолинейный отрезок, прямая, круг, шар, куб, полуплоскость, полупространство и др.
Точка множества называется граничной, если любая окрестность этой точки сколь угодно малого размера содержит точки, как принадлежащие множеству, так и не принадлежащие ему.
Граничные точки множества образуют его границу. Множество называется замкнутым, если оно содержит все свои граничные точки.
Ограниченным называется множество, если существует шар с радиусом конечной длины и центром в любой точке множества, содержащий полностью в себе данное множество. В противном случае множество будет неограниченным.
Пересечение двух или более выпуклых множеств будет выпуклым множеством, так как оно отвечает определению выпуклого множества.
Точка выпуклого множества называется угловой, если она не может быть представлена в виде выпуклой линейной комбинации двух других различных точек этого множества.
Так, угловые точки треугольника – его вершины, круга – точки окружности, ее ограничивающие, а прямая, полуплоскость, плоскость, полупространство, пространство не имеют угловых точек.
Выпуклое замкнутое ограниченное множество на плоскости, имеющее конечное число угловых точек, называется выпуклым многоугольником, а замкнутое выпуклое ограниченное множество в трехмерном пространстве, имеющее конечное число угловых точек, называется выпуклым многогранником.
Теорема. Любая тонка многоугольника является выпуклой линейной комбинацией его угловых точек.
Теорема. Область допустимых решений задачи линейного программирования является выпуклым множеством.
Уравнение целевой функции при фиксированных значениях самой функции является уравнением прямой линии (плоскости, гиперплоскости и т.д.). Прямая, уравнение которой получено из целевой функции при равенстве ее постоянной величине, называется линией уровня.
Линия уровня, имеющая общие точки с областью допустимых решений и расположенная так, что область допустимых решений находится целиком в одной из полуплоскостей, называется опорной прямой.
Теорема. Значения целевой функции в точках линии уровня увеличиваются, если линию уровня перемещать параллельно начальному положению в направлении нормали и убывают при перемещении в противоположном направлении.
Теорема. Целевая функция задачи линейного программирования достигает экстремума в угловой точке области допустимых решений; причем, если целевая функция достигает экстремума в нескольких угловых точках области допустимых решений, она также достигает экстремума в любой выпуклой комбинации этих точек.
Опорное решение задачи линейного программирования, его взаимосвязь с угловыми точками
Каноническая задача линейного программирования в векторной форме имеет вид:
Положительным координатам допустимых решений ставятся в соответствие векторы условий. Эти системы векторов зависимы, так как число входящих в них векторов больше размерности векторов.
Базисным решением системы называется частное решение, в котором неосновные переменные имеют нулевые значения. Любая система уравнений имеет конечное число базисных решений, равное , где n – число неизвестных, r- ранг системы векторов условий. Базисные решения, координаты которых удовлетворяют условию неотрицательности, являются опорными.
Опорным решением задачи линейного программирования называется такое допустимое решение , для которого векторы условий, соответствующие положительным координатам линейно независимы.
Число отличных от нуля координат опорного решения не может превосходить ранга r системы векторов условий (т.е. числа линейно независимых уравнений системы ограничений).
Если число отличных от нуля координат опорного решения равно m, то такое решение называется невырожденным, в противном случае, если число отличных от нуля координат опорного решения меньше т, такое решение называется вырожденным.
Базисом опорного решения называется базис системы векторов условий задачи, в состав которой входят векторы, соответствующие отличным от нуля координатам опорного решения.
Теорема. Любое опорное решение является угловой точкой области допустимых решений.
Теорема. Любая угловая точка области допустимых решений является опорным решением.
Пример:
Графический метод решения задачи линейной оптимизации рассмотрим на примере задачи производственного планирования при n = 2.
Предприятие изготавливает изделия двух видов А и В. Для производства изделий оно располагает сырьевыми ресурсами трех видов С, D и Е в объемах 600, 480 и 240 единиц соответственно. Нормы расхода ресурсов на единицу продукции каждого вида известны и представлены в табл. 14.1
Прибыль от реализации изделия А составляет 40 млн. руб., а изделия В – 50 млн.руб. Требуется найти объемы производства изделий А и В, обеспечивающие максимальную прибыль.
Построим математическую модель задачи, для чего обозначим – объемы производства изделий А и В соответственно.
Тогда прибыль предприятия от реализации изделий А и изделий В составит:
Ограничения по ресурсам будут иметь вид:
Естественно, объемы производства должны быть неотрицательными
Решение сформулированной задами найдем, используя геометрическую интерпретацию. Определим сначала многоугольник решений, для чего систему ограничений неравенств запишем в виде уравнений и пронумеруем их:
Каждое из записанных уравнений представляет собой прямую на плоскости, причем 4-я и 5-я прямые являются координатными осями.
Чтобы построить первую прямую, найдем точки ее пересечения с осями координат: а при .
Далее нас интересует, по какую сторону от прямой будет находиться полуплоскость, соответствующая первому неравенству. Чтобы определить искомую полуплоскость, возьмем точку O(0,0) подставив ее координаты в неравенство, видим, что оно удовлетворяется. Так как точка O(0,0) лежит левее первой прямой, то и полуплоскость будет находиться левее прямой
. На рис 14 , расположение полуплоскости относительно первой прямой отмечено стрелками.
Аналогично построены 2-я и 3-я прямые и найдены полуплоскости, соответствующие 2-му и 3-му неравенству. Точки, удовлетворяющие ограничениям , находятся в первом квадранте. Множество точек, удовлетворяющих всем ограничениям одновременно, является ОДР системы ограничений. Такой областью на графике (рис. 14.1) является многоугольник ОАВС.
Любая точка многоугольника решений удовлетворяет системе ограничений задачи и, следовательно, является ее решением. Это говорит о том, что эта задача линейной оптимизации имеет множество допустимых решений, т.е. моговариантпа. Нам же необходимо найти решение, обеспечивающее максимальную прибыль.
Чтобы найти эту точку, приравняем функцию к нулю и построим соответствующую ей прямую. Вектор-градиент прямой функции
имеет координаты
Рис. 14.1
Изобразим вектор на графике и построим прямую функции перпендикулярно вектору на рис. 14.1. Перемещая прямую функции параллельно самой себе в направлении вектора, видим, что последней точкой многоугольника решений, которую пересечет прямая функции, является угловая точка В. Следовательно, в точке В функция достигает максимального значения. Координаты точки В находим, решая систему уравнений, прямые которых пересекаются в данной точке.
Решив эту систему, получаем, что
Следовательно, если предприятие изготовит изделия в найденных объемах, то получит максимальную прибыль, равную:
Алгоритм решения задачи линейного программирования графическим методом таков:
- Строится область допустимых решений;
- Строится вектор нормали к линии уровня с точкой приложении в начале координат;
- Перпендикулярно вектору нормали проводится одна из линий уровня, проходящая через начало координат;
- Линия уровня перемещается до положения опорной прямой. На этой прямой и будут находиться максимум или минимум функции.
В зависимости от вида области допустимых решений и целевой функции задача может иметь единственное решение, бесконечное множество решений или не иметь ни одного оптимального решения.
На рис. 14.3 показан случай, когда прямая функции параллельна отрезку АВ, принадлежащему ОДР. Максимум функции Z достигается в точке А и в точке В, а, следовательно, и в любой точке отрезка АВ, т.к. эти точки могут быть выражены в виде линейной комбинации угловых точек А и В.
На рисунке 14.4 изображен случай, когда система ограничений образует неограниченное сверху множество. Функция Z в данном случае стремится к бесконечности, так как прямую функции можно передвигать в направлении вектора градиента как угодно далеко, а на рисунке 14.5 представлен случай несовместной системы ограничений.
Основные понятия симплексного метода решения задачи линейного программирования.
Среди универсальных методов решения задач линейного программирования наиболее распространен симплексный метод (или симплекс-метод), разработанный американским ученым Дж.Данцигом. Суть этого метода заключается в том, что вначале получают допустимый вариант, удовлетворяющий всем ограничениям, но необязательно оптимальный (так называемое начальное опорное решение); оптимальность достигается последовательным улучшением исходного варианта за определенное число этапов (итераций). Нахождение начального опорного решения и переход к следующему опорному решению проводятся на основе применения рассмотренного выше метода Жордана-Гаусса для системы линейных уравнений в канонической форме, в которой должна быть предварительно записана исходная задача линейного программирования; направление перехода от одного опорного решения к другому выбирается при этом на основе критерия оптимальности (целевой функции) исходной задачи.
Симплекс-метод основан на следующих свойствах задачи линейного программирования:
- Не существует локального экстремума, отличного от глобального. Другими словами, если экстремум есть, то он единственный.
- Множество всех планов задачи линейного программирования выпукло.
- Целевая функция ЗЛП достигает своего максимального (минимального) значения в угловой точке многогранника решений (в его вершине). Если целевая функция принимает свое оптимальное значение более чем в одной угловой точке, то она достигает того же значения в любой точке, являющейся выпуклой линейной комбинацией этих точек.
- Каждой угловой точке многогранника решений отвечает опорный план ЗЛП.
Рассмотрим две разновидности симплексного метода: симплекс-метод с естественным базисом и симплекс-метод с искусственным базисом (или М-метод).
- Заказать решение задач по высшей математике
Симплекс-метод с естественным базисом
Для применения этого метода задача линейного программирования должна быть сформулирована в канонической форме, причем матрица системы уравнений должна содержать единичную подматрицу размерностью mхm. В этом случае очевиден начальный опорный план (неотрицательное базисное решение).
Для определенности предположим, что первые m векторов матрицы системы составляют единичную матрицу. Тогда очевиден первоначальный опорный план:
Проверка на оптимальность опорного плана проходит с помощью критерия оптимальности, переход к другому опорному плану — с помощью преобразований Жордана-Гаусса и с использованием критерия оптимальности.
Полученный опорный план снова проверяется на оптимальность и т.д. Процесс заканчивается за конечное число шагов, причем на последнем шаге либо выявляется неразрешимость задачи (конечного оптимума нет), либо получаются оптимальный опорный план и соответствующее ему оптимальное значение целевой функции.
Признак оптимальности заключается в следующих двух теоремах.
Теорема 1. Если для некоторого вектора, не входящего в базис, выполняется условие:
то можно получить новый опорный план, для которого значение целевой функции будет больше исходного; при этом могут быть два случая:
- если все координаты вектора, подлежащего вводу в базис, неположительны, то задача линейного программирования не имеет решения;
- если имеется хотя бы одна положительная координата у вектора, подлежащего вводу в базис, то можно получить новый опорный план.
Теорема 2. Если для всех векторов выполняется условие то полученный план является оптимальным.
На основании признака оптимальности в базис вводится вектор Ак, давший минимальную отрицательную величину симплекс-разности:
Чтобы выполнялось условие неотрицательности значений опорного плана, выводится из базиса вектор , который дает минимальное положительное отношение:
Строка называется направляющей, столбец и элемент — направляющими (последний называют также разрешающим элементом).
Элементы вводимой строки, соответствующей направляющей строке, в новой симплекс-таблице вычисляются по формулам:
а элементы любой другой i-й строки пересчитываются по формулам:
Значения базисных переменных нового опорного плана (показатели графы «план») рассчитываются по формулам:
Если наименьшее значение Q достигается для нескольких базисных векторов, то чтобы исключить возможность зацикливания (повторения базиса), можно применить следующий способ.
Вычисляются частные, полученные от деления всех элементов строк, давших одинаковое минимальное значение Q на свои направляющие элементы. Полученные частные сопоставляются по столбцам слева направо, при этом учитываются и нулевые, и отрицательные значения. В процессе просмотра отбрасываются строки, в которых имеются большие отношения, и из базиса выводится вектор, соответствующий строке, в которой раньше обнаружится меньшее частное.
Для использования приведенной выше процедуры симплекс -метода к минимизации линейной формы следует искать максимум функции затем полученный максимум взять с противоположным знаком. Это и будет искомый минимум исходной задачи линейного программирования.
Симплексный метод с искусственным базисом (М-метод)
Симплексный метод с искусственным базисом применяется в тех случаях, когда затруднительно найти первоначальный опорный план исходной задачи линейного программирования, записанной в канонической форме.
М-метод заключается в применении правил симплекс-метода к так называемой М-задаче. Она получается из исходной добавлением к левой части системы уравнений в канонической форме исходной задачи линейного программирования таких искусственных единичных векторов с соответствующими неотрицательными искусственными переменными, чтобы вновь полученная матрица содержала систему единичных линейно-независимых векторов. В линейную форму исходной задачи добавляется в случае её максимизации слагаемое, представляющее собой произведение числа (-М) на сумму искусственных переменных, где М – достаточно большое положительное число.
В полученной задаче первоначальный опорный план очевиден. При применении к этой задаче симплекс-метода оценки А, теперь будут зависеть от числа М. Для сравнения оценок нужно помнить, что М – достаточно большое положительное число, поэтому из базиса будут выводиться в первую очередь искусственные переменные.
В процессе решения M-задачи следует вычеркивать в симплекс-таблице искусственные векторы по мере их выхода из базиса. Если все искусственные векторы вышли из базиса, то получаем исходную задачу. Если оптимальное решение М-задачи содержит искусственные векторы или М-задача неразрешима, то исходная задача также неразрешима.
Путем преобразований число вводимых переменных, составляющих искусственный базис, может быть уменьшено до одной.
Теория двойственности
Любой задаче линейного программирования можно сопоставить сопряженную или двойственную ей задачу. Причем, совместное исследование этих задач дает, как правило, значительно больше информации, чем исследование каждой из них в отдельности.
Любую задачу линейного программирования можно записать в виде:
Первоначальная задача называется исходной или прямой.
Модель двойственной задачи имеет вид:
Переменные двойственной задачи называют объективно обусловленными оценками или двойственными оценками.
Связь исходной и двойственной задач заключается, в частности, в том, что решение одной из них может быть получено непосредственно из решения другой. Каждая из задач двойственной пары фактически является самостоятельной задачей линейного программирования и может быть решена независимо от другой.
Двойственная задача по отношению к исходной составляется согласно следующим правилам:
- Целевая функция исходной задачи формулируется на максимум, а целевая функция двойственной задачи – на минимум, при этом в задаче на максимум все неравенства в функциональных ограничениях имеют вид <, а в задаче на минимум – вид
- Матрица , составленная из коэффициентов при неизвестных в системе ограничении исходной задачи, и аналогичная матрица , в двойственной задаче получаются друг из друга транспонированием;
- Число переменных в двойственной задаче равно числу функциональных ограничений исходной задачи, а число ограничений в системе двойственной задачи – числу переменных в исходной задаче;
- Коэффициентами при неизвестных в целевой функции двойственной задачи являются свободные члены в системе ограничений исходной задачи, а правыми частями в ограничениях двойственной задачи – коэффициенты при неизвестных в целевой функции исходной задачи;
- Каждому ограничению одной задачи соответствует переменная другой задачи: номер переменной совпадает с номером ограничения; при этом ограничению, записанному в виде неравенства <, соответствует переменная, связанная условием неотрицательности.
Если функциональное ограничение исходной задачи является равенством, то соответствующая переменная двойственной задачи может принимать как положительные, так и отрицательные значения.
Математические модели пары двойственных задач могут быть симметричными и несимметричными. В несимметричных двойственных задачах система ограничений исходной задачи задается в виде равенств, а двойственной – в виде неравенств, причем переменные в двойственной задаче могут быть и отрицательными. В симметричных двойственных задачах система ограничений как исходной, так и двойственной задачи задается в виде неравенств, причем на двойственные переменные налагается условие неотрицательности.
где:
Рассмотрим пример, показывающий, как в реальной экономической ситуации появляются взаимно двойственные задачи линейного программирования.
На некотором предприятии после выполнения годового плана возник вопрос: как поступить с остатками сырья? Из оставшегося сырья можно наладить производство продукции и реализовать его или продать сырье.
Предположим, что имеется два вида сырья , остатки которого составляют соответственно 35 и 20 единиц. Из этого сырья можно наладить производство трех видов товаров:
При исследовании первой возможности (наладить выпуск товаров ) возникает вопрос о плане выпуска, который задается тремя переменными , которые соответствуют количеству произведенного товара. Эти переменные должны удовлетворять условиям:
Прибыль, которую получит предприятие от реализации товара, составит:
В интересах предприятия эту прибыль максимизировать.
Это прямая задача.
Объективно обусловленными оценками двойственной задачи будут цены, по которым целесообразно продавать излишки сырья, т.е. при продаже сырья по ценам ниже предприятие будет терпеть убытки.
Справедливое требование со стороны продающего предприятия состоит в следующем: если взять сырье, идущее на производство единицы товара то выручка от его продажи должна быть не меньше, чем прибыль от реализации готового изделия (в противном случае нет смысла продавать сырье – целесообразнее изготовить товар и получить прибыль от его реализации).
Это требование можно представить в виде системы неравенств:
В левой части каждого неравенства предполагаемая выручка от продажи сырья, необходимого для производства единицы товара а в правой – прибыль от реализации этой единицы товара.
Что касается покупателя, то он заинтересован в минимизации расходов на покупку сырья, т.е. величины
Теоремы двойственности
Теоремы двойственности позволяют установить взаимосвязь между оптимальными решениями пары двойственных задач: можно либо найти оптимальное решение другой задачи, не решая ее, либо установить его отсутствие.
Возможны следующие случаи:
- обе задачи из пары двойственных имеют оптимальные решения;
- одна из задач не имеет решения ввиду неограниченности целевой функции, а другая – ввиду несовместности системы ограничений.
Первая теорема двойственности.
Для двойственных задач линейного программирования имеет место один из взаимоисключающих случаев:
- В прямой и двойственной задачах имеются оптимальные решения, при этом значения целевых функций на оптимальных решениях совпадают:
- В прямой задаче допустимое множество не пусто, а целевая функция на этом множестве не ограничена сверху. При этом у двойственной задачи будет пустое допустимое множество.
- В двойственной задаче допустимое множество не пусто, а целевая функция на этом множестве не ограничена снизу. При этом у прямой задачи допустимое множество оказывается пустым;
- Обе из рассматриваемых задач имеют пустые допустимые множества.
Вторая теорема двойственностн (теорема о дополняющей нежесткости):
Пусть – допустимое решение прямой задачи, а допустимое решение двойственной задачи.
Для того, чтобы они были оптимальными решениями соответствующих взаимодвойственных задач, необходимо и достаточно, чтобы выполнялись следующие соотношения:
Эти условия устанавливают связь между оптимальными значениями прямой и двойственной задач и позволяют, зная решение одной из них, находить решение другой задачи.
Теорема об оценках:
Значения переменных в оптимальном решении двойственной задачи представляют собой оценки влияния свободных членов системы ограничений – неравенств прямой задачи на величину :
Диапазон изменения компонент вектора В, в котором сохраняется оптимальный базис, называется областью устойчивости оптимальных оценок.
Экономический смысл первой теоремы двойственности следующий. План производства X и набор ресурсов Y оказываются оптимальными тогда и только тогда, когда прибыль от реализации продукции, определенная при известных заранее ценах продукции , равна затратам на ресурсы по «внутренним» (определяемым только из решения задачи) ценам ресурсов Для всех других планов прибыль от продукции всегда меньше или равна стоимости затраченных ресурсов , т.е. ценность выпущенной продукции не превосходит суммарной оценки затраченных ресурсов. Значит, величина Z(X)~ F(Y) характеризует производственные потери в зависимости от рассмотренной производственной программы и выбранных оценок ресурсов.
- Дифференциальное исчисление функций одной переменной
- Исследование функции
- Пространство R”
- Неопределённый интеграл
- Линейный оператор – свойства и определение
- Многочлен – виды, определение с примерами
- Квадратичные формы – определение и понятие
- Системы линейных уравнений с примерами
Общий алгоритм нахождения оптимального плана
Рассмотрим общий путь нахождения оптимального плана на примере.
- Построить область допустимых планов, соответствующую наложенным ограничениям (6.4.)
- Найти вершину указанной области, в которой целевая функция минимальна.
- Найти соответствующие избранной вершине величины переменных, которые и дадут оптимальный план.
Первый шаг в решении задачи – построение области допустимых планов – нами уже сделан (см. рис. 6.1). Из рисунка видно, как определить координаты точки , соответствующей оптимальному плану. Из уравнения прямой , проходящей через ту же точку, следует, что . Из уравнения прямой , проходящей через ту же точку, следует, что . Подставляя полученные значения и в уравнения (6.6.), определим величины остальных переменных, составляющих оптимальный план:
Таким образом, оптимальный план будет следующим:
( 6.9) |
Линейная форма при этом будет минимальной и равной
( 6.10) |
.
Рассмотренная геометрическая интерпретация задачи линейного программирования возможна лишь при наличии двух независимых переменных. При трех переменных наглядное представление существенно усложняется, так как в этом случае имеет место некоторый выпуклый многогранник в трехмерном пространстве, соответствующий объему допустимых планов.
При количестве переменных более трех задача теряет геометрическую наглядность, так как трудно представить себе, например, четырехмерное пространство. Однако идея получения решения, рассмотренного выше, сохраняет смысл и для случая многомерного пространства.
На основе этой идеи создан и разработан один из основных методов решения задач линейного программирования – так называемый симплекс-метод.
Вычислительные методы линейного программирования
Симплекс-метод. Этот метод является алгебраической формой решения задачи линейного программирования, вытекающей из только что рассмотренного геометрического представления. При обосновании симплекс-метода будем прибегать к уже изложенному выше двухмерному случаю, что позволит достаточно просто перейти от геометрического представления к его алгебраической аналогии.
Первый шаг. Найти допустимый план, соответствующий одной из вершин области допустимых планов.
Второй шаг. Проверить, оптимален ли найденный план. Если оптимален, вычисления окончены. Если нет – следующий план.
Третий шаг. Переход к другой вершине (другому допустимому плану), в которой значение целевой функции меньше, проверка его на оптимальность и так далее.
Поэтому первым шагом должно быть получение координат одной из вершин многоугольника (многогранника) допустимых планов. Для этого необходимо преобразовать систему уравнений таким образом, чтобы с ее помощью можно было легко получить координаты вершины многоугольника (многогранника) области допустимых планов.
Анализируя рис 6.1, можно заметить, что в каждой из вершин две из переменных обращаются в нуль. Поэтому мы должны положить две переменные равными нулю, а затем найти остальные четыре из системы уравнений (6.4.). В совокупности все переменные дадут один из допустимых планов, соответствующих некоторой вершине.
Чтобы преобразовать систему уравнений описанным образом, необходимо выразить каждую из неизвестных через остальные.
Такая возможность существует лишь в случае, если определитель
Если это условие выполняется, то величины называют базисными. Каждый базис соответствует определенной вершине.
Преобразуем систему уравнений (6.4.) так, чтобы, приравнивая две переменные нулю (например, ), можно было получить значения базисных величин — координаты одной из вершин многоугольника.
Предварительно убедимся, что определитель, составленный из коэффициентов при этих неизвестных в уравнениях (6.4.), не равен нулю.
Действительно,
Это дает нам право считать, что величины являются базисными и система (6.4.) может быть разрешена относительно их.
Все необходимые преобразования будем производить с матрицей коэффициентов уравнений (6.4.):
( 6.11) |
Решение задачи линейного программирования. Симплекс метод
Задача линейного программирования (ЗЛП) − это задача нахождения наибольшего (или наименьшего) значения линейной функции на выпуклом многогранном множестве.
Симплекс метод − это метод решения задачи линейного программирования. Суть метода заключается в нахождении начального допустимого плана, и в последующем улучшении плана до достижения максимального (или минимального) значения целевой функции в данном выпуклом многогранном множестве или выяснения неразрешимости задачи.
Рассмотрим следующую задачу линейного программирования в канонической форме:
(1) |
(2) |
(3) |
где A-mxn-матрица, rank(A)=m, b− неотрицательный вектор столбец длины m (b∈ Rm, b≥0), c − вектор строка длины n (c∈Rn), x − вектор столбец длины n (x∈Rn).
Определение 1. Допустимым планом или планом задачи линейного программирования (1)−(3) называется вектор , удовлетворяющим ограничениям (2)−(3).
Определение 2. Опорным планом задачи линейного программирования (1)−(3) называется план , если среди соотношений (2)−(3), которым он удовлетворяет как точным равенствам, имеется n линейно независимых.
Из определения 2 следует, что понятие опорный план совпадает с понятием вершины выпуклого многогранного множества, определяемого условиями (2)−(3).
Определение 3. Опорный план задачи линейного программирования (1)−(3) называется невырожденным , если число его положительных компонент в точности равен m.
Определение 4. Задача линейного программирования называется невырожденным , если все ее опорные планы невырождены.
Определение 5. Целевой функцией задачи линейного программирования (1)−(3) называется линейная функция cx, которую нужно максимизировать (в данном случае) на заданном выпуклом многогранном множестве (2)−(3).
Определение 6. Оптимальное решение или оптимальный план − это допустимый план, при котором целевая функция достигает своего максимума (в данном случае) на заданном выпуклом многогранном множестве (2)−(3).
Суть симплекс метода заключается в переходе от одного опорного плана к другому, до достижения оптимального плана или выяснения неразрешимости задачи. Неразрешимость задачи фиксируется, если допустимая область пуста или целевая функция неограничена сверху при максимизации целевой функции, или неограничена снизу, при минимизации целевой функции.
Симплекс метод включает в себя два этапа. Первый этап − нахождение начального допустимого плана. Второй этап − нахождение оптимального плана путем постепенного улучшения допустимого плана задачи.
Начнем рассмотрение метода со второго этапа. Мы будем предполагать, что ЗЛП невырождена (Определение 4).
Симплекс метод
Рассмотрим следующую задачу линейного программирования
где
Очевидно, что является опорным планом ЗЛП (4)-(6). Действительно, x0 удовлетворяет уравнениям (5)-(6), и ровно m координат вектора x0 положительны, а остальные нули.
Запишем ЗЛП (4)-(6) в векторном виде:
(4′) |
(5′) |
(6′) |
где E−единичная матрица порядка m×m,
Разделим x на базисные и свободные компоненты (базисные компоненты − это положительные компоненты вектора, а свободные компоненты − это нулевые компоненты):
(7) |
где
Тогда (5′) можно записать так:
или
. | (9) |
Отсюда
(10) |
Представим c в виде объединения базисных и свободных компонент:
, | (11) |
где
Тогда, учитывая (7), (10) и (11), получим
Обозначим
. | (12′) |
Тогда (12) можно записать так:
. | (12”) |
В выражении (12) ничего не изменится, если к правой части добавить нулевой элемент:
где − нулевая вектор-строка длины m.
Обозначим
. | (14) |
Выражение (14) эквивалентно следующему выражению:
(14′) |
или
Тогда (13) можно записать так:
или
Заметим, что первые m элементы вектора Δ и последние n−m элементы вектора x нулевые (;).
Посмотрев на выражение (16), замечаем, что если среди элементов есть отрицательный (например ), то целевую функцию cx можно увеличить, включая в базис соответствующий элемент ().
Учитывая (7′) перезапишем (5) следующим образом:
(17) |
где −p-ый элемент вектора x, которую нужно ввести в базис (т.е сделать положительным).
Постепенно увеличивая из нуля нужно следить, чтобы новый вектор x удовлетворял уравнениям (17). Поэтому нужно уменьшить при , при этом нужно следить, чтобы не стал отрицательным. (В случае , увеличивается, а в случае , не изменяется).
Другими словами нужно решить систему линейных неравенств
(18) |
Из (18) следует
Тогда
Подставляя в (18), получим:
. | (20) |
Тогда при имеем
а при имеем
. |
Из вышеизложенного можно сформулировать следующие теоремы:
Теорема 1 (признак оптимальности опорного плана). Опорный план задачи (4)-(6) является оптимальным, если для любого j (j=1,…,n).
Теорема 2. Если для некоторого j=k, и среди чисел (i=1,…,m) нет положительных, целевая функция (4) задачи (4)-(6) не ограничена на множестве (5)-(6).
Теорема 3. Если опорный план x задачи (4)-(6) не вырожден и для некоторого j=k, и среди чисел (i=1,…,m) есть положительные, то существует опорный план x’ такой, что cx’ >cx.
Сформулированные теоремы позволяют проверить, является ли найденный опорный план оптимальным, и выявить целесообразность перехода к новому опорному плану.
Исследование опорного плана на оптимальность и вычислительный процесс удобнее вести, если первоначальные данные, полученные после определения исходного опорного плана записать в так называемой симплекс таблице.
В таблице 1, в первом столбце записвыаются базисные элементы текущего опорного плана. Во втором столбце записываются элементы правой части ограничений. С правой стороны второго столбца записываются элементы матрицы A. В нижней части таблицы записываются соответствующие элементы вектора Δ, а − значение целевой функции в данной точке.
Далее рассматривают элементы , . Если среди них нет отрицательных элементов, то данный план является оптимальным (Теорема 1).
Пусть . Тогда рассматривают . Если среди них нет положительных элементов, то задача неограничена сверху, т.е. неразрешима (теорема 2).
Пусть среди есть положительные элементы. Тогда вычисляют для всех тех i, для которых
Тогда из базиса выходит k-я переменная, а в базис входит p– я переменная, значение которой равно .
Далее делают исключение Гаусса для столбца p выбирая в качестве ведущего элемента . Т.е. обнуляются все элементы данного столбца, кроме . Для этого нужно сложить строку i со строкой k, умноженной на . Затем строку k делят на . В результате получают следующую симплекс таблицу:
Здесь
, |
, |
, |
. |
Теперь рассматривают элементы , . Если среди них нет отрицательных элементов, то данный план является оптимальным, в противном случае поступают аналогично вышеизложенной процедуре.
Для решения задач линейного программирования онлайн, пользуйтесь калькулятором симплекс метод онлайн.
Метод искусственного базиса
Как было паказано выше, для задачи, записанной в канонической форме, если среди векторов столбцов матрицы A есть m единичных и линейно независимых, можно непосредственно указать опорный план. Однако для многих задач линейного программирования, записанных в канонической форме и имеющих опорные планы, среди векторов столбцов матрицы A не всегда есть m единичных и линейно независимых. Рассмотрим такую задачу:
Пусть требуется найти максимум функции
(21) |
при условиях
(22) |
(23) |
где и среди векторов
нет mединичных и линейно независимых.
Определение 7. Задача, состоящая в определении максимального значения функции
при условиях
где M − некоторое достаточно больное положительное число (конкретное значение обычно не задается), называется расширенной задачей по отношению к (21)−(23).
Расширенная задача (24)−(26) имеет опорный план
, | (27) |
где первы n элементы нули. Переменные называются искусственными. Векторы столбцы
образуют так называемый искусственный базис m-мерного векторного пространства.
Так как расширенная задача имеет опорный план, то ее решение можно найти симплекс методом.
Теорема 4. Если в оптимальном плане расширенной задачи (24)−(26) значения искусственных переменных , то является оптимальным планом задачи (21)−(23).
Таким образом, если в найденном оптимальном плане расширенной задачи, значения искусственных переменных равны нулю, то получен оптимальный план исходной задачи. Остановимся более подробно на нахождении решения расширенной задачи.
Значение целевой функции при опорном плане (27):
Значения вычисляются из выражения (14”):
Замечаем, что F(X) и состоят из двух независимых частей, одна из которых зависим от M, а другая − нет.
После вычисления F(X) и их значения, а также исходные данные расширенной задачи заносят в симплекс таблицу, как было показано выше. Разность заключается лишь в том, что данная таблица содержит на одну строку больше, чем обычная симплекс таблица. При этом в (m+1)-ю строку помещают коэффициенты, не содержащие M, а в (m+2)-ю строку − коэффициенты при M.
При переходе от одного опорного плана к другому, в базис вводят вектор, соответствующий наибольшему по абсолютной величине отрицательному числу (m+2) строки. Искусственный вектор, исключенный из базиса не имеет смысла вновь ввести в базис. При переходе к другому опорному плану, может случится так, что ни один из искусственных векторов из базиса не будет исключен. Пересчет симплекс таблицы при переходе от одного опорного плана к другому производят по обычным правилам симплекс метода (смотри выше).
Итерационный процесс ведут по m+2 строке до тех пор, пока элементы m+2 строки, соответствующие переменным не станут неотрицательными. При этом, если искусственные переменные исключены из базиса, то найденный план расширенной задачи отвечает некоторому опорному плану исходной задачи.
Если же не все искусственные переменные исключены из базиса и элемент m+2 строки, столбца x0 отрицателен, то исходная задача не имеет решения.
Если же не все искусственные переменные исключены из базиса и элемент m+2 строки, столбца x0 равен нулю, то опорный план исходной задачи является вырожденным и базис содержит минимум один из векторов искусственного базиса.
Если исходная задача содержит несколько единичных векторов, то их следует включить в искусственный базис.
Если в ходе итераций m+2 строка больше не содержит отрицательных элементов, то итерационный процесс продолжают с m+1 строкой, до тех пор, пока не найден оптимальный план расширенной задачи или не выявлен неразрешимость задачи.
Таким образом, процесс нахождения решения задачи линейного программирования (21)−(23) методом искусственного базиса включает следующие основные этапы:
- Составляют расширенную задачу (24)−(26).
- Находят опорный план расширенной задачи.
- Используя симплекс метод исключают искусственные векторы из базиса. В результате находят опорный план исходной задачи или фиксируют ее неразрешимость.
- Используя найденный опорный план ЗЛП (21)−(23), или находят оптимальный план исходной задачи, или устанавливают ее неразрешимость.
Для решения задач линейного программирования онлайн, пользуйтесь калькулятором симплекс метод онлайн.