Смекни!
smekni.com

Применение методов линейного программирования в военном деле. Симплекс-метод (стр. 4 из 5)

При выполнении симплекс преобразования диагонали, изображенные на таблице (3.30), на самом деле проводить не нужно: они легко выделяются в уме.

Выполнив S-преобразование над таблицей (3.30), мы получим новую таблицу

(3.31)

Этой таблице соответствует система уравнений:

(3.32)

Система (3.32) эквивалентна первоначальной системе (3.22), но в системе (3.32) переменная x1 исключена из всех уравнений, кроме первого. Если в таблице (3.31) элемент a’22¹0, то, приняв его за разрешающий элемент и проделав над таблицей (3.31) S-преобразование, получим новую таблицу. И в системе уравнений, соответствующей этой таблице, переменная x2 будет исключена из всех уравнений, кроме второго.

Если в таблице (3.31) a’22=0, то во втором столбце найдем элемент, не равный нулю, и примем его за разрешающий. Пусть это будет a’12. Тогда выполняя симплекс преобразование над таблицей (3.31), мы исключим x2 из всех уравнений, кроме i-того. Продолжая так дальше, мы после n преобразований придем к таблице, имеющей, например, следующий вид.


(3.33)

Таблице (3.33) соответствует система уравнений, эквивалентная первоначальной системе. Эта система уравнений имеет вид:

(3.34)

Можно считать, что система (3.34) решена относительно базисных переменных x1, x2, …, xn. Переносить члены, соответствующие свободным переменным, в правую часть для фактического решения системы (3.34) относительно базисных переменных не будем, так как в дальнейшем нас будет интересовать решение, где все свободные переменные равны 0.

Полагая xn+1=xn+2=…=xm=0, получим:

Если окажется, что x1³0, x2³0, …, xm³0, то совокупность чисел (x1, x2, …, xn, 0, 0, …, 0) дает неотрицательное решение системы.

Рассмотрим пример. Дана система уравнений

Нужно данную систему разрешить относительно переменных x1, x2, x3. Следовательно свободными переменными будут x4, x5, x6. Напишем таблицу, соответствующую данной системе уравнений.

Решим систему относительно x1 с помощью первого уравнения. За разрешающий элемент принимаем первый элемент первой строки, и подвергнем таблицу S-преобразованию. Получим новую таблицу, где первая строка переписывается, в первом столбце записываются нули, а остальные элементы вычисляются по D-правилу.

Этой таблице соответствует система уравнений, разрешенная относительно x1 (x1 входит только в первое уравнение). Исключить x2 удобнее с помощью третьего уравнения, так как коэффициент при x2 в третьем уравнении равен единице. Принимаем его за разрешающий элемент. Пишем новую таблицу

Система уравнений, соответствующая этой таблице, разрешена относительно x1 и x2 (x1 входит только в первое уравнение, а x2 только в третье).

Для разрешения системы относительно x3 за разрешающий элемент берем коэффициент при x3 во втором уравнении. Новая таблица имеет вид

Последняя таблица соответствует системе, решенной относительно базисных переменных x1, x2, x3. Полагая свободные переменные x4, x5, x6 равными нулю, получим уравнения:

-3x1=-18, откуда x1=6

-3x2=-6, откуда x2=2

-3x3=3, откуда x3=-1

Совокупность чисел x1=6, x2=2, x3=-1, x4=0, x5=0, x6=0 есть одно из решений данной системы. Оно не принадлежит к области допустимых решений, так как одна из координат x3 отрицательна.

Для решения задачи линейного программирования важно уметь находить неотрицательные (опорные) решения данной системы уравнений.

Правило выбора разрешающего элемента при отыскании неотрицательного решения системы уравнений.

Пусть дана система уравнений

(3.36)

В системе (3.36) свободные члены можно считать неотрицательными, так как в обеих частях уравнения всегда можно поменять знаки.

Если при выполнении симплекс преобразований при переходе от одной системы к другой будем следить за тем, чтобы разрешающие элементы были положительными, то на последнем этапе разрешения системы относительно базисных переменных получим систему вида (3.34) и по формулам (3.35) найдем неотрицательные значения базисных переменных. Составляем отношения свободных членов bk к положительным элементам akj разрешающего столбца и среди чисел

выбираем наименьшее значение. Если наименьшее значение
достигается при k=i, то i-номер разрешающей строки, а разрешающим элементом будет aij.

Рассмотрим пример отыскания неотрицательных решений системы уравнений.

Пример. Найти неотрицательное решение системы уравнений

Пишем таблицу, соответствующую данной системе


Пробуем разрешить эту систему относительно x1, т.е. переменную x1 будем считать базисной переменной. Первый столбец будет базисным столбцом. Составляем отношения свободных членов к положительным элементам первого столбца 10/2=5; 4/7. Наименьшее из этих чисел 4/7. Числа 4 и 7 находятся во второй строке. Следовательно разрешающей строкой будет вторая строка и разрешающим элементом число 7. Выполняя симплекс преобразование, получим новую таблицу

Этой таблице соответствует система уравнений, разрешенная относительно базисной переменной x1. Так как обе части любого уравнения системы можно умножать и делить на любое постоянное число (система при этом будет эквивалентна прежней), то если строки таблицы имеют общий множитель, на него можно сократить. Последняя строка предыдущей таблицы имеет общий множитель 7; сокращая на него, получим таблицу


Введем в базис переменную x3, т.е. примем за разрешающий столбец третий столбец.

Из двух отношений 62/13 и 10/3 меньшим является второе. Следовательно, разрешающим элементом будет 3. Выполняя симплекс преобразование получим таблицу

Первую строку сокращаем на 28, вторую на 21

Введем в базис переменную x2. Разрешающим элементом будет 5. Снова выполняя симплекс преобразования, получим таблицу