7.6. Методы нахождения опорного решения задачи линейного программирования
Метод искусственного базиса
Сформированный выше алгоритм симплекс-метода можно применять лишь в том случае, если выделено первое допустимое решение, т. е. исходная задача линейного программирования приведена к виду
При этом , тогда, положив свободные неизвестные равными нулю, получаем опорное решение .
Рассмотрим метод нахождения опорного решения, основанный на введении искусственных переменных. Для этого запишем задачу линейного программирования в общем виде. Будем рассматривать задачу с числом неизвестных «n» и «r» ограничениями:
(7.42)
Перепишем систему (7.42) в другом виде. Для этого введем искусственные переменные так, чтобы был выделен базис. Тогда система примет вид
(7.43)
Системы (7.42) и (7.43) будут эквивалентны в том случае, если все уi для будут равны 0. Кроме того, мы считаем, что все для . В противном случае соответствующие ограничения из системы (7.42) умножим на — 1. Для того чтобы уi, были равны 0, мы должны преобразовать задачу таким образом, чтобы все искусственные переменные y1 перешли в свободные неизвестные.
В этом случае система (7.43) после преобразования примет вид
(7.44)
От системы (7.43) к системе (7.44) всегда можно перейти шагами симплекс-метода. При таком переходе в качестве линейной формы рассматривают функцию
(7.45)
равную сумме искусственных переменных. Переход заканчивают, когда Fmin = 0 и все искусственные переменные уi,- переведены в свободные неизвестные.
Анализ вариантов решений
Если , а все yi переведены в свободные переменные, то задача не имеет положительного решения.
Если , а часть yi, осталась в базисе, то для перевода их в свободные переменные необходимо применять специальные приемы.
В симплекс-таблице, соответствующей системе (7.44), после того как Fmin = 0, а все yi; — свободные, вычеркивают строку для Fmin и столбцы для уi. и решают задачу для исходной линейной формы Zmin
Рекомендуется вводить минимум искусственных переменных.
Пример 7.13. Решение задачи линейного программирования симплекс-методом. Для нахождения опорного плана использовать метод искусственных переменных.
Ограничения:
Целевая функция:
В базис можно выделить переменную x3. Введем две искусственные переменные — y1 и y2.
Составим симплекс – таблицу:
Свободные неизвестные
Базисные неизвестные |
Свободный член |
|
|
|
|
x3 |
1 |
3 |
-5 |
2 |
0 |
y1 |
4 |
-2 |
2 |
-1 |
|
y2 |
5 |
-1 |
3 |
-2 |
1 |
Zmin |
0 |
-1 |
-2 |
0 |
0 |
Fmin |
9 |
-3 |
5 |
-3 |
2 |
Наименьший положительный элемент в строке линейной формы Fmin = 2. Разрешающий элемент находится на пересечении столбца переменной x5 и строки переменной y1.
Заполним следующую симплекс – таблицу:
Свободные неизвестные
Базисные неизвестные |
Свободный член |
|
|
|
y1 |
x3 |
1 |
3 |
-5 |
2 |
0 |
x5 |
4 |
-2 |
2 |
-1 |
1 |
y2 |
1 |
1 |
|
-1 |
-1 |
Zmin |
0 |
-1 |
-2 |
0 |
0 |
Fmin |
1 |
3 |
1 |
-1 |
-2 |
Наименьший положительный элемент в строке линейной формы Fmin = 1. Минимальное симплекс – отношение соответствует строке переменной y2.
Заполним новую симплекс – таблицу:
Свободные неизвестные
Базисные неизвестные |
Свободный член |
|
y2 |
|
Y1 |
x3 |
6 |
8 |
5 |
-3 |
5 |
x5 |
2 |
-4 |
-2 |
1 |
3 |
x2 |
1 |
1 |
1 |
-1 |
-1 |
Zmin |
2 |
1 |
2 |
-2 |
-1 |
Fmin |
0 |
0 |
-1 |
0 |
-1 |
Так как Fmin = 0, а у1 и у2 переведены в число свободных, переход к первому опорному решению завершен. Строку, соответствующую Fmin, и столбцы переменных у] и у2 вычеркиваем в последней таблице и переписываем ее в новом виде:
Свободные неизвестные
Базисные неизвестные |
Свободный Член |
|
|
x3 |
6 |
|
-3 |
x5 |
2 |
-4 |
1 |
x2 |
1 |
1 |
-1 |
Zmin |
2 |
1 |
-2 |
Решим задачу для исходной линейной формы Zmln. В последней таблице находим разрешающий элемент. Он равен 8. Выполняя действия согласно алгоритму симплекс-метода, получим следующую таблицу:
Свободные неизвестные
Базисные неизвестные |
Свободный Член |
X3 |
x4 |
x1 |
6/8 |
1/8 |
-3/8 |
x5 |
5 |
4/8 |
-12/8 |
x2 |
2/8 |
-1/8 |
-5/8 |
Zmin |
10/8 |
-1/8 |
-13/8 |
В последней строке (Zmin) положительных элементов нет, следовательно, оптимальное решение найдено.
Значение целевой функции Zmin равно 10/8. Оптимальный план = (6/8; 2/8; 0; 0; 5).
Второй алгоритм отыскания опорного плана
Пусть задача линейного программирования записана в каноническом виде:
(7.46)
(7.47)
Построим первую таблицу Жордана – Гаусса для задач (7.46) и (7.47). Для единообразия вычислительной процедуры к исходной таблице приписываем строку целевой функции:
(7.48)
После приведения системы ограничений к единичному базису целевая функция, как и базисные переменные, будет выражена через свободные переменные. Аналогичным приемом мы пользовались, когда решали задачи графическим методом с числом переменных более двух.
Алгоритм метода следующий.
Запишем задачу в форме таблицы (7.48), при этом все элементы столбца свободных членов bi должны быть неотрицательны . Уравнения системы (7.46), в которых свободные члены отрицательны, предварительно нужно умножить на — 1.
Таблицу (7.48) преобразуем шагами Жордана— Гаусса исключений. При этом на каждом шаге разрешающим может быть выбран любой столбец, содержащий хотя бы один положительный элемент. Строка целевой функции на выбор разрешающих столбцов влияние не оказывает.
Разрешающая строка определяется по наименьшему из отношений свободных членов к положительным элементам разрешающего столбца.
В процессе преобразований вычеркиваем строки, состоящие из одних нулей.
Если в процессе преобразований встречается строка, все элементы которой нули, а свободный член отличен от нуля, то задача не имеет решения. Если встретится строка, в которой, кроме свободного члена, других положительных элементов нет, то говорят, что задача не имеет положительных решений.
Пояснение. В п.1 алгоритма предполагается, что все элементы столбца свободных членов неотрицательны. Это требование необязательно. В случае когда в столбце свободных членов встречаются отрицательные числа, будем пользоваться теоремой.
Теорема. Если разрешающий элемент выбирать по наименьшему положительному симплекс-отношению, то после шага Жордана—Гаусса свободный член в разрешающей строке становится положительным, а остальные члены сохраняют свой знак.
Выбор разрешающего элемента производят иначе, а именно.
Просматриваем строку, соответствующую какому-либо отрицательному свободному члену. Выбираем в ней какой-либо отрицательный элемент — соответствующий этому элементу столбец будет разрешающим.
Выбор разрешающего элемента производится по минимальному положительному симплекс-отношению. Если задача разрешима, то через конечное число шагов получают первое допустимое решение и можно применять симплекс-метод.
В некоторых случаях найденное таким образом первое допустимое решение является также и оптимальным решением. Пример 7.14. Определение опорного плана.
Дана следующая система:
(7.49)
(7.50)
Два свободных члена в системе ограничений отрицательны, поэтому перед тем, как записать задачу в виде таблицы (7.48), умножим соответствующие уравнения (7.49) на -1:
Запишем данную задачу в виде таблицы (7.48).
x1 |
x2 |
x3 |
x4 |
x5 |
Свободный член |
|
-1 |
-1 |
1 |
|
0 |
4 |
4 |
-1 |
2 |
1 |
0 |
1 |
7 |
10 |
2 |
-1 |
0 |
1 |
1 |
7 |
10 |
3 |
-1 |
0 |
0 |
0 |
5 |
7 |
Выберем произвольно столбец с положительным элементом. Затем по минимальному положительному отношению находим разрешающий элемент. В нашем примере он равен I и находится на пересечении столбца переменной х4 и первой строки (элемент отмечен квадратом). Выполняя преобразования Жордана-Гаусса, получим следующую таблицу:
x1 |
x2 |
x3 |
x4 |
x5 |
Свободный член |
|
-1 |
-1 |
1 |
1 |
0 |
4 |
4 |
-1 |
2 |
1 |
0 |
1 |
7 |
10 |
3 |
0 |
-1 |
0 |
|
3 |
6 |
3 |
-1 |
0 |
0 |
0 |
5 |
7 |
Выполняя в дальнейшем все действия алгоритма, получим ряд следующих аналогичных таблиц:
x1 |
x2 |
x3 |
x4 |
x5 |
Свободный член |
|
-1 |
-1 |
1 |
1 |
0 |
4 |
4 |
-4 |
2 |
|
0 |
0 |
4 |
4 |
3 |
0 |
-1 |
0 |
1 |
3 |
6 |
3 |
-1 |
0 |
0 |
0 |
5 |
7 |
x1 |
x2 |
x3 |
x4 |
x5 |
Свободный член |
|
-1 |
-2 |
0 |
1 |
0 |
2 |
2 |
-2 |
1 |
1 |
0 |
0 |
2 |
2 |
1 |
1 |
0 |
0 |
1 |
5 |
8 |
3 |
-1 |
0 |
0 |
0 |
5 |
7 |
На данном этапе расчетов в последней таблице мы получили три нулевых столбца, что соответствует количеству ограничений в примере. Здесь необходимо закончить преобразования Жордана—Гаусса.
Запишем нашу задачу из последней таблицы так:
Получено первое допустимое решение, выделим его. Для этого положим х1, = 0; х2= 0, тогда = (0; 0; 2; 2; 5); Zmax = 5.
Задача решена.