Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Задача линейного программирования. Симплекс – метод
Задачей линейного программирования называется задача оптимизации (максимизации или минимизации) линейной функции на полиэдре. Общая задача линейного программирования имеет вид: → max (min) (3.1) Для решения таких задач разработан мощный аналитический метод, называемый симплекс – методом. Согласно этому методу решение задач линейного программирования разбивается на три этапа. 1. Преобразование общей задачи к стандартному (каноническому) виду. 2. Нахождение опорного решения. 3. Оптимизация найденного решения. На первом этапе общая задача преобразуется к виду: → min (3.2)
При этом для перехода от задачи на минимум к задаче на максимум достаточно изменить на противоположные знаки в правой части целевой функции, то есть Для перехода от неравенств к равенствам, перепишем, каждое из неравенств в виде ; s=1, …, k и введем дополнительные переменные ; s=1, …, k При этом, очевидно, что . Если какая – либо переменная хi может по условию задачи принимать не только положительные, но и отрицательные значения, то ее можно представить в виде разности дополнительных неотрицательных переменных , ; . На втором этапе исследуется стандартная (каноническая) задача (3.2). В рассматриваемой задаче область допустимых значений будет существовать только в случае m< n (если m=n, то система линейно независимых уравнений имеет единственное решение, а при m> n система вообще не имеет решений). Следовательно, m переменных можно выразить через остальные. (3.3) Неизвестные х1, …, хm называются базисными, а неизвестные хm+1, …, xn – свободными. Очевидно, что система (3.3) имеет бесконечное число решений. Если положить все свободные неизвестные равными нулю, то базисные неизвестные будут равны свободным коэффициентам в равенствах (3.3), х1 =b/1, …, хт= b/m, xm+1 = …= xn = 0. Полученное решение называется базисным. При этом может оказаться, что некоторые bi будут отрицательными, и полученное базисное решение не будет удовлетворять системе (3.2). Система (3.3) имеет базисных решений. Базисное решение, у которого все значения хi ≥ 0, называется опорным. Для нахождения опорного решения можно воспользоваться методом исключений Жордана- Гаусса. Пусть система ограничений (3.2) записана в виде:
(3.4) Такая система называется приведенной к единичному базису. Причем среди свободных коэффициентов bi есть отрицательные. Выпишем коэффициенты системы в таблицу, каждая строка которой полностью описывает соответствующее уравнение системы.
Символы в первом столбце указывают базисные неизвестные. Преобразуем таблицу (3.5) таким образом, чтобы все элементы последнего столбца стали неотрицательными. Для этого выберем среди всех строк с отрицательными bi такую, у которой bi наибольший по абсолютной величине. Пусть эта строка имеет номер s. Умножим эту строку на -1 и прибавим ко всем строкам, для которых bi < 0. Тем самым получим новую таблицу, в которой все элементы последнего столбца будут неотрицательными. При этом в отличие от всех остальных уравнений системы s – e уравнение не будет разрешено относительно базисной неизвестной. Приведем систему к единичному базису, сохранив достигнутую неотрицательность последнего столбца. Для этого используем алгоритм симплексных преобразований таблиц, а именно: 1. Выбираем разрешающий столбец из условия, что элемент dsp, расположенный на пересечении этого столбца и выбранной ранее s-ой строки был положительным. Если такого элемента не окажется, то система не имеет опорного решения. 2. Для всех положительных элементов biр выбранного р- го разрешающего столбца составляем отношения и выбираем l- ю разрешающую строку из условия минимума этого отношения. Элемент dlp, расположенный на пересечении l-ой разрешающей строки и р-го разрешающего столбца, называется разрешающим или опорным элементом. 3. Разделим разрешающую строку на разрешающий элемент l, то есть произведем пересчет элементов l- й строки по формуле . В результате на пересечении разрешающей строки и разрешающего столбца будет единица. 4. Вычисляем элементы всех остальных строк по формуле , то есть вычитая из всех остальных строк l-ю разрешающую строку, умноженную на соответствующее число, добиваемся, чтобы все элементы разрешающего столбца, кроме опорного, стали равны нулю. При этом хl становится базисной неизвестной и записывается в символьном столбце таблицы вместо хр. При выполнении указанного алгоритма симплексных преобразований возможны три случая. 1. Разрешающий элемент dlp, определенный в пункте 2 симплексного алгоритма, принадлежит выбранной s-ой строке, то есть l=s. Тогда после выполнения итерации симплексных преобразований система будет приведена к единичному базису и последний столбец, полученной таблицы будет описывать опорное решение. 2. Разрешающий элемент dlp не принадлежит выбранной s- ой строке (l ≠ s). В этом случае проводится следующая итерация по описанному симплексному алгоритму. 3. При выполнении преобразований все элементы, какой- либо строки, за исключением последнего, окажутся не положительными, то есть dik ≤ 0, bi > 0. Тогда система уравнений не имеет опорного решения. Пусть опорное решение системы (3.2) найдено и х1, …, хт – базисные неизвестные, то есть х1 = β 1, х2 = β 2, …, хт = β т, хт+1 = хт+2 =…=хп = 0. В этом случае система (3.2) преобразуется в систему равенств где β i ≥ 0, i =1, …, m Выразим целевую функцию z через свободные неизвестные. Тогда задача (3.1) запишется в виде:
z+ γ m+1 xm+1 + γ m+2 xm+2 + …+ γ n xn = γ 0 → max (3.6)
(3.7) Для поиска оптимального решения задачи (3.6) с ограничениями (3.7) будем использовать симплекс-метод. В основе симплекс–метода лежит описанная выше процедура симплексных преобразований, заключающаяся в последовательном переходе от имеющегося опорного решения к другому опорному решению, так чтобы значение функции z увеличивалось, либо, по крайней мере, не уменьшалось. Составим симплекс – таблицу из коэффициентов системы (3.6) и (3.7) следующим образом: в первую строку запишем неизвестные, следующие т строк составляют коэффициенты системы (3.7), в последнюю строку записываем коэффициенты из равенства (3.6), называемые оценками. В первом столбце таблицы выписываем базисные неизвестные.
Заметим, что последний столбец таблицы описывает опорное решение. Для преобразования таблицы (3.8) используем алгоритм симплекс – метода. 1. Выбираем l-й разрешающий столбец из условия γ l < 0 и хотя бы один элемент α rl > 0. 2. Выбираем s- ю разрешающую строку из условия для всех α rl > 0. 3. Производим пересечет элементов s-й строки по формуле , то есть все элементы разрешающей строки делим на разрешающий элемент, расположенный на пересечении s-й строки и l-го столбца. 4. Вычисляем элементы всех остальных строк по формуле α /rk = α rk – α /sk α rl. Полученные строки пишутся на месте прежних. При этом вместо хs в символьной столбец таблицы пишется хl. Этим завершается первый шаг, в результате которого изменился набор базисных неизвестных и получено новое опорное решение, описываемое последним столбцом таблицы. Если после выполнения очередного шага: а) найдется хотя бы одна отрицательная оценка в последней строке и в каждом столбце с такой оценкой окажется хотя бы один положительный элемент, то можно оптимизировать решение, выполнив следующий шаг; б) найдется хотя бы одна отрицательная оценка, столбец которой не содержит положительных элементов, то функция z не ограничена в области допустимых решений, что означает отсутствие оптимального решения; в) все оценки в последней строке окажутся неотрицательными, то получено оптимальное решение. Если в некоторых уравнениях системы (3.7) свободные члены β i = 0, соответствующие базисные неизвестные также равны нулю. В этом случае базисное решение называется вырожденным. При решении такой задачи симплексным методом на каком–либо шаге может получиться симплекс-таблица, идентичная одной из предыдущих, то есть может произойти зацикливание в схеме расчета. Для устранения зацикливания разрешающую строку выбирают в соответствии со следующим правилом. Если на каком – либо этапе расчета возникает неопределенность в выборе разрешающей строки, то есть оказывается несколько равных минимальных отношений , то следует выбирать ту строку, для которой отношение элементов следующего столбца к разрешающему элементу является наименьшим. Если при этом снова оказываются равные минимальные отношения, то составляют отношения элементов следующего столбца, и так до тех пор, пока разрешающая строка не определится однозначно. Используем симплекс – метод для решения задачи. Предприятию нужно перевезти по железной дороге изделия трех видов: изделий первого вида не более 273, изделий второго вида не более 300, изделий третьего вида не более 380. Подразделение железной дороги может выделить для этого вагоны двух видов А и В. Для полной загрузки вагона следует помещать в него изделия всех трех видов. При этом в вагон типа А входят 3 изделия первого вида, 3 изделия второго вида и 2 изделия третьего вида. В вагон типа В входят 2 изделия первого вида, 3 изделия второго вида и 5 изделий третьего вида. Экономия от перевозки в вагоне типа А составляет 40 тысяч рублей, а в вагоне типа В – 50 тысяч рублей. Сколько вагонов каждого типа следует выделить для перевозки, чтобы суммарная экономия от перевозки груза была наибольшей? Составим математическую модель задачи. Обозначим за х1 используемое число вагонов типа А, за х2 - число вагонов типа В. Целевая функция – суммарная экономия – имеет вид z = 40х1 + 50х2 → mах Ограничения записываются в виде неравенств
3х1 + 2х2 ≤ 273 3х1 + 3х2 ≤ 300 (3.9) 2х1 + 5х2 ≤ 380 х1 ≥ 0; х2 ≥ 0. Преобразуем задачу к каноническому виду. Для этого введем новые неизвестные х3 = 273 – 3х1 – 2х2 х4 = 300 – 3х1 – 3х2 х5 = 380 – 2х1 – 5х2 Очевидно, что в силу (3.9) х3 ≥ 0, х4 ≥ 0; х5 ≥ 0. Соответствующая каноническая задача имеет вид z- 40х1 – 50х2 = 0 → mах 3х1+ 2х2+ х3 = 273 3х1+ 3х2+ х4 = 300 (3.10) 2х1+ 5х2+ х5 = 380 хi ≥ 0, i= 1, …, 5 В системе (3.10) неизвестные х3, х4, х5 выражаются через неизвестные х1 и х2, то есть получившаяся система уже приведена к единичному базису и х3, х4, х5 – базисные неизвестные. Такой системе соответствует базисное решение х1 = 0, х2 = 0, х3 = 273, х4 = 300, х5 = 380. Все неизвестные неотрицательны, то есть базисное решение является опорным. Целевая функция z выражена через свободные неизвестные х1 и х2. Составим симплекс- таблицу:
В последней строке имеем две отрицательные оценки, следовательно, найденное опорное решение не оптимально. Применим симплексный алгоритм. За разрешающий столбец выбираем первый. В этом столбце три положительных элемента 3, 3 и 2. Разделим на эти числа соответствующие свободные коэффициенты системы (3.10), записанные в последнем столбце таблицы. Имеем ; ; . Наименьшее из полученных частных 91 соответствует первой строке, которую выбираем за разрешающую. Таким образом, разрешающий элемент расположен на пересечении первой строки и первого столбца и равен 3. Для составления следующей таблицы разделим элементы разрешающей строки на разрешающий элемент и полученную строку пишем на месте прежней. К каждой из остальных строк прибавляем (вычитаем) вновь полученную, умноженную на такое число, чтобы в клетках разрешающего столбца появились нули и пишем преобразованные строки на месте прежних. Новый базис составляют неизвестные х1, х4 и х5.
Полученной таблице соответствует опорное решение х1 = 91, х2 = 0, х3 = 0, х4 = 27, х5 = 198 и значение экономии z=3640 тысяч рублей. Последняя строка содержит отрицательную оценку во втором столбце, поэтому полученное решение не оптимально. Выберем второй столбец за разрешающий. В этом столбце три положительных элемента. Разделим на них соответствующие элементы последнего столбца. Получаем 91: (2/3)=273/2, 27: 1=27, 198: (11/3)=54. Следовательно, за разрешающую строку выбираем вторую. Повторяя описанную выше процедуру пересчета, получим новую симплекс – таблицу.
Получено новое опорное решение х1 = 73, х2 = 27, х3 = 0, х4 = 0, х5 = 99 и z=4270 тысяч рублей. Это решение не оптимальное, поскольку в последней строке имеется отрицательная оценка. На следующем этапе за разрешающий столбец выбираем третий. Так как 73: 1=73 и 99: 3=33, за разрешающую строку выбираем третью. Применяя рассмотренный выше вычислительный алгоритм, получим
В последней строке таблицы отрицательных оценок нет. Следовательно, эта таблица соответствует оптимальному решению х1 = 40, х2 = 60, х3 = 33, х4 = 0, х5 = 0. Таким образом, для оптимальной перевозки следует выделить 40 вагонов типа А и 60 вагонов типа В. При этом останутся на складе 33 изделия первого вида (х3=33), а изделия второго и третьего видов будут перевезены полностью (х4=0, х5=0). Сумма экономии составит 4600 тысяч рублей.
Двойственные задачи Каждой задаче линейного программирования можно поставить в соответствие задачу, называемую двойственной. Запишем общую задачу линейного программирования → max (4.1) Двойственной задачей к задаче (4.1) называется задача (4.2) В таком случае задача (4.1) называется прямой. Исходная и двойственная задачи образуют пару взаимно двойственных задач, при этом любую из них можно рассматривать как прямую задачу. Переход от прямой задачи к двойственной можно осуществить с помощью следующих правил. 1. Каждому ограничению – неравенству со знаком ≤ соответствует неотрицательная неизвестная yi двойственной задачи, а каждому ограничению – равенству неизвестная произвольного знака. 2. Каждой неотрицательной неизвестной хj прямой задачи соответствует ограничение – неравенство со знаком ≥ двойственной задачи, а каждой произвольной по знаку переменной – ограничение в виде равенства. 3. Матрица коэффициентов при неизвестных системы ограничений двойственной задачи получается транспонированием матрицы коэффициентов при неизвестных системы ограничений прямой задачи. 4. Свободные коэффициенты системы ограничений равны соответствующим коэффициентам при неизвестных хj целевой функции прямой задачи. 5. Коэффициенты при неизвестных yi целевой функции L двойственной задачи равны свободным коэффициентам системы ограничений прямой задачи. 6. Если целевая функция z прямой задачи максимизируется, то целевая функция L двойственной задачи минимизируется, и наоборот, если целевая функция z прямой задачи минимизируется, то целевая функция L двойственной задачи максимизируется. Отметим, что число ограничений прямой задачи равно числу неизвестных двойственной задачи, а число ограничений двойственной задачи равно числу неизвестных прямой задачи. В связи с этим двойственную задачу обычно выгоднее решать, чем исходную прямую, если в прямой задаче имеется большое количество ограничений и малое число неизвестных. Справедливы следующие утверждения. 1. Двойственная задача (4.2) имеет решение в том и только в том случае, если имеет решение прямая задача (4.1). 2. Если есть оптимальное решение прямой задачи (4.1), а есть оптимальное решение двойственной задачи (4.2), то выполняется соотношение двойственности (4.3) 3. Если получено решение одной из пары двойственных задач, например, прямой, то оптимальное решение другой задачи определяется равенством (4.4) где Со – матрица - строка коэффициентов целевой функции Z перед базисными неизвестными оптимального решения прямой задачи, W – матрица коэффициентов при базисных неизвестных оптимального решения в системе ограничений прямой задачи. 4. Если прямая исходная задача не содержит ограничений в виде равенств, то между оптимальными решениями прямой и двойственной задач и элементами симплекс – таблиц, соответствующих этим решениям, существует следующая взаимосвязь . (4.5) В качестве примера найдем неотрицательные значения х1 и х2, максимизирующие функцию (4.6) при наличии ограничений
(4.7) с помощью перехода к двойственной задаче. Используя сформулированные выше правила, перейдем к двойственной задаче
(4.8)
(4.9) Перейдем к канонической задаче. Для этого перенесем свободные коэффициенты в левые части неравенств (4.9) и обозначим получившиеся выражения за новые неизвестные , . Кроме того, перейдем к задаче на максимум. Для этого поменяем знаки в правой части целевой функции (4.8). Каноническая задача имеет вид:
; (4.10)
(4.11) Для решения задачи симплекс – методом необходимо привести систему (4.11) к единичному базису и найти опорное решение. Умножим равенства (4.11) на (-1). Тогда получим (4.12) В полученной системе неизвестные y3 и y4 выражаются через y1 и y2. Тем самым, система приведена к единичному базису. Приравнивая, свободные неизвестные y1 и y2 к нулю, получим базисное решение. y1=0; y2=0; y3=-5; y4=-4. Так как базисные неизвестные отрицательны, полученное решение не является опорным. Для нахождения опорного решения воспользуемся методом исключений Жордана – Гаусса. Выпишем коэффициенты системы (4.12) в таблицу
Умножим первую строку на (-1) и прибавим ко второй строке. При этом y3 перестает быть базисной неизвестной.
В выбранной первой строке содержатся два положительных коэффициента при неизвестных. Выберем за разрешающий второй столбец. В разрешающем столбце только один положительный элемент, равный 3, в первой строке. Поэтому первую строку считаем разрешающей строкой. Разрешающий элемент, расположенный на пересечении разрешающей строки и разрешающего столбца равен 3. Разделим разрешающую строку на разрешающий элемент
Получим нуль в разрешающем столбце. Для этого ко второй строке прибавим разрешающую. При этом неизвестная y2, соответствующая разрешающему столбцу, становится базисной и пишется в символьном столбце
Полученной таблице соответствует система равенств или (4.13) Эта система приведена к единичному базису и базисное решение, соответствующее этой системе является опорным
y1=0; ; y3=0; (4.14) Выразим целевую функцию L1 через свободные неизвестные y1 и y3. Для этого подставим равенства (4.13) в (4.10). Тогда задача (4.10); (4.11) с учетом (4.13) примет вид ; Составим симплекс – таблицу
В последней строке в первом столбце имеется отрицательная оценка. Следовательно, опорное решение (4.14), соответствующее записанной таблице, не оптимально. Выберем первый столбец за разрешающий. Разделим элементы последнего столбца на соответствующие положительные элементы разрешающего столбца ; . Наименьший результат соответствует второй строке, поэтому выберем эту строку за разрешающую. Разрешающий элемент равен 7/3. Разделим разрешающую строку на разрешающий элемент.
Получим нули в разрешающем столбце. Для этого из первой строки вычтем разрешающую, умноженную на 4/3, а к последней прибавим разрешающую, умноженную на 8. После пересчета имеем
В последней строке отрицательных оценок (коэффициентов при неизвестных yi) нет. Следовательно, опорное решение, соответствующее полученной таблице оптимально. ; ; y3=0; y4=0; . (4.15) Определим решение прямой задачи (4.6); (4.7), используя формулу (4.4) . Здесь - матрица - строка. Учтем, что базисными неизвестными в оптимальном решении являются y1 и y2, и элементами матриц Со и W являются коэффициенты при базисных неизвестных оптимального решения в равенствах (4.8) и (4.11). То есть Со=(24 24); В этом случае обратная матрица W-1 имет вид Отсюда . Таким образом, оптимальное решение (4.6), (4.7) следующее (4.16) ; ; . Заметим, что прямая исходная задача (4.6), (4.7) не содержит ограничений в виде равенств, поэтому оптимальное решение (4.16) может быть записано сразу без использования формулы (4.4). Для этого можно воспользоваться равенствами (4.5) , , где b3 и b4 – элементы последней строки симплекс–таблицы, соответствующей оптимальному решению.
Популярное:
|
Последнее изменение этой страницы: 2016-05-30; Просмотров: 1909; Нарушение авторского права страницы