
- •4.2. Симплекс-метод решения задач линейного программирования
- •1. Вычисление элементов новой ведущей строки.
- •Общая формулировка алгоритма решения задач линейного программирования симплекс- методом [7]
- •Еще один алгоритм решения задач лп методом симплекс-таблиц (предложенный е. С. Вентцель) [1]
- •Вырожденность
- •Альтернативные оптимальные решения
- •Неограниченные решения
- •Отсутствие допустимых решений
- •Заключение
- •Упражнения
4.2.
Симплекс-метод решения задач
линейного
программирования ___________________________________________________________________________________________________________
4.2. Симплекс-метод решения задач линейного программирования
Основная идея симплекс-метода
Основываясь на определениях данных в предыдущей лекции, мы можем найти оптимальное решение задачи линейного программирования, записанной в стандартной форме, путем простого перебора всех базисных (допустимых) решений. Но, конечно, такая процедура не эффективна. Алгоритм симплекс-метода находит оптимальное решение, рассматривая ограниченное количество допустимых базисных решений [19].
Алгоритм симплекс-метода всегда начинается с некоторого допустимого базисного решения и затем пытается найти другое допустимое базисное решение, "улучшающее" значение целевой функции. Это возможно только в том случае, если возрастание какой-либо нулевой (небазисной) переменной ведет к улучшению значения целевой функции. Но для того, чтобы небазисная переменная стала положительной, надо одну из текущих базисных переменных сделать нулевой, т.е. перевести в небазисные переменные. Это необходимо, чтобы новое решение содержало в точности т базисных переменных. (Напомним, что нас интересуют только базисные решения, содержащие в точности т базисных переменных.) В соответствии с терминологией симплекс-метода выбранная нулевая переменная называется вводимой (в базис), а удаляемая базисная переменная – исключаемой (из базиса).
Пример 1.
Рассмотрим детали выполнения симплекс-метода при решении следующей задачи.
Компания Тиккурила производит краску для внутренних и наружных работ из сырья двух типов: М1 и М2. Основные данные задачи сведены в таблицу.
|
Расход сырья (в тоннах) на тонну краски |
Максимально возможный ежедневный расход сырья | |
Для наружных работ |
Для внутренних работ | ||
Сырье М1 |
6 |
4 |
24 |
Сырье М2 |
1 |
2 |
6 |
Доход (в $1000) на тонну краски |
5 |
4 |
|
Отдел маркетинга компании ограничил ежедневное производство краски для внутренних работ до 2 тонн (из-за отсутствия надлежащего спроса), а также поставил условие, чтобы ежедневное производство краски для внутренних работ не превышало более чем на тонну аналогичный показатель производства краски для внешних работ. Компания хочет определить оптимальное (наилучшее) соотношение между видами выпускаемой продукции для максимизации общего ежедневного дохода.
Переменные задачи: 1= объем ежедневного производства краски для наружных работ (тонны), 2 = объем ежедневного производства краски для внутренних работ (тонны).
Краска обоих видов производится из сырья М1 и М2. Первые два ограничения задачи порождены ограниченными ежедневными запасами сырья. Другие два отображают ограниченный рыночный спрос на краску. Прибыль от одной тонны краски для наружных работ составляет $5000, а краски для внутренних работ – $4000. Целевая функция задачи должна максимизировать общую прибыль. Для удобства вычислений доходность производства красок масштабирована в тысячах долларов.
Эта задача в стандартной форме записывается так:
максимизировать
при
ограничениях
Здесь s1, s2, s3, s4 – дополнительные (остаточные) переменные, добавленные в неравенства для преобразования их в равенства.
Задачу ЛП в стандартной форме можно представить в виде следующей компактной таблицы.
Нижние четыре строки этой таблицы представляют равенства ограничений; значения правых частей этих равенств даны в столбце "Решение". Строка z = W() получена из равенства
W() – 5 1– 4 2 = z – 5 1– 4 2= 0.
Дополнительные переменные s1, s2, s3 и s4 составляют очевидное начальное допустимое базисное решение. При этом, поскольку небазисные переменные 1 и 2 равны нулю, значения s1, s2, s3 и s4 автоматически отображаются в столбце "Решение": s1 = 24, s2 = 6, s3 = 1 и s4 = 2. Значение целевой функции при этом решении равно нулю.
Будет ли это начальное решение оптимальным? Конечно, нет, поскольку переменные 1 и 2 здесь равны нулю, а возрастание этих переменных даже на единицу приводит к увеличению значения целевой функции W() = 5 1+ 4 2 на 5 (при увеличении на единицу 1) или на 4 единицы (при увеличении на единицу 2). Поскольку в формуле целевой функции коэффициент при переменной 1 больше, чем коэффициент при 2, переменную 1 следует ввести в число базисных переменных (в этом случае она станет вводимой). Если обратиться к приведенной выше таблице, то вводимая переменная определяется среди множества небазисных переменных, как переменная, имеющая наибольший по модулю отрицательный коэффициент в z–строке (строке Симплекс разности).
Включаемая (вводимая) переменная 1 должна принять положительное значение. На рис. 4.2.1 видно, что, исходя из начальной точки A ( 1 = 0, 2 = 0), наибольшее значение, которое можно присвоить переменной 1 (не выходя из пространства допустимых решений), равно 4, что соответствует точке B ( 1 = 4, 2 = 0). Это означает, что решение переместилось от крайней точки A в крайнюю точку В.
Рис. 4.2.1
Поскольку симплекс-метод не должен основываться на графическом представлении задачи ЛП, необходимо определить, как выбрать точку B алгебраически. Из рисунка 4.2.1 видно, что B является одной из точек пересечения прямых, соответствующих ограничениям, с осью 1. Алгебраически точку пересечения можно найти как отношение правой части равенства (значение в столбце "Решение") к коэффициенту при переменной 1 в этом равенстве, как показано в следующей таблице.
Нас интересуют только неотрицательные отношения (или точки пересечения на положительной полуоси 1), так как они соответствуют направлению возрастания переменной 1. Отметим, что все значения в столбце "Решение" неотрицательные, поэтому вычисляемое отношение будет неотрицательным и конечным только в том случае, если знаменатель отношения строго положителен. Именно поэтому мы не рассматриваем отношения, соответствующие третьему и четвертому равенствам, так как там знаменатели или отрицательные, или равны нулю.
Минимальное неотрицательное отношение равно значению вводимой переменной 1 в новом решении, а именно 1= 4 (сравните с точкой B на рис. 1). Значение целевой функции при этом значении 1 возрастет до 20 (= 54).
Теперь среди текущих базисных переменных s1, s2, s3 и s4 следует определить исключаемую переменную, которая примет нулевое значение после введения в базис переменной 1. (Напомним, что в этом примере должно быть в точности 4 базисные переменные.) Поскольку наименьшее (неотрицательное) отношение соответствует переменной s1, в точке B именно эта переменная обращается в нуль. Таким образом, переменная s1 будет исключаемой, в этом случае переменная 1 автоматически получает значение 4. Замена исключаемой переменной s1 на вводимую переменную 1 приводит к новому базисному решению ( 1, s2, s3, s4).
Вычисление нового базисного решения основывается на методе исключения переменных (методе Гаусса - Жордана). В следующей таблице, которая пока совпадает с начальной таблицей задачи ЛП, определим ведущий столбец, ассоциируемый с вводимой переменной, и ведущую строку, ассоциируемую с исключаемой переменной. Элемент, находящийся на пересечении ведущего столбца и ведущей строки, назовем ведущим.
Процесс вычисления нового базисного решения состоит из двух этапов [19]: