*Аффинной оболочкой множества называют наименьшее аффинное множество, в котором содержится данное множество.
В заключение настоящего пункта обобщим изложенные вопросы и приведем схему алгоритма симплекс-метода для решения задачи максимизации. Она включает однократно выполняемый 0-этап и повторяемый конечное число раз I-этап (стандартную итерацию).
0-этап. Нахождение допустимого базисного плана(см. п. 1.4.5). Результатом 0-этапа является допустимый базисный план х(β(1)), а также соответствующие ему матрица A(β(1)) и вектор b(β(1)), которые будут использованы на первой итерации. Полагаем номер текущей итерацииq равным 1 и переходим к I-этапу.I-этап. Стандартная итерация алгоритма — выполняется для очередного базисного плана x(β(q)).
1°. Проверка оптимальности текущего базисного плана:осуществляется просмотр строки оценок а0(β(q)). Возможны два варианта:
1′. a0(β(q))≥0 — план, соответствующий текущему базису задачи, оптимален. Вычислительный процесс закончен. Согласно формулам (1.33) и (1.32) выписываются оптимальный план задачи х* = x(β(q)) и значение целевой функции f(x*)=f(x(β(q))).
1″. В строке оценок а0(β(q)) существует по меньшей мере один элемент а0,j(β(q))<0, т. е. имеющий отрицательную оценку. Следовательно, план x(β(q)) —неоптимален. Выбирается столбец с номером l, имеющий минимальную (максимальную по абсолютной величине) отрицательную оценку
Он называется ведущим и должен быть введен в очередной базис. Переходим к пункту 2° алгоритма.
2°. Определение столбца, выводимого из базиса. Рассматривается ведущий столбецаl(β(q)) Возможны два варианта:
2'. Для всех iÎ1:mаi,l(β(q))≤0. Делается вывод о неограниченности целевой функции и завершается вычислительный процесс.
2". Существует по крайней мере одна строка с номером iÎ1:m, для которой аi,l(β(q))>0 . Согласно правилу (1.27) определяются место r и номер Nr(β(q))=jr для столбца, выводимого из базиса. Переходим к пункту 3° алгоритма. 3°. Пересчет элементов матрицы А и столбца b относительно нового базиса. В соответствии с формулами (1.28)-(1.31) осуществляем расчет элементов матрицы задачи А и вектора ограничений b относительно базиса β(q+1), который получается после введения в базис β(q) столбца аl и выводом из него столбца аr. Полагаем номер текущей итерацииq: = q+l и переходим к первому пункту алгоритма.Рис.1.5
1.4.2. Табличная реализация симплекс-метода. С точки зрения обеспечения рациональности и наглядности вычислительного процесса выполнение алгоритма симплекс-метода удобно оформлять в виде последовательности таблиц. В различных источниках приводятся разные модификации симплекс-таблиц, отличающиеся друг от друга расположением отдельных элементов. Однако это не должно вызывать смущения у читателя, так как все они базируются на одних и тех же принципах. Остановимся на структуре таблицы, показанной на рис. 1.5.*
* Настоящая структура симплекс-таблиц строится на идеях и принципах их организации, предложенных в [1].
Симплекс-таблица Т(q), изображенная на рис. 1.5, соответствует допустимому базису КЗЛП β(q)), получаемому наq-й итерации. Столбец N(β(q)) содержит номера базисных столбцов (в той последовательности, в которой они входят в базис), столбец b(β(q)) —компоненты вектора ограничений относительно текущего базиса β(q),A(β(q)) — компоненты матрицы задачи относительно текущего базиса β(q). Наконец, в строке а0(β(q)) находятся текущие оценки столбцов, а ячейка b0(β(q)) содержит значение целевой функции, достигаемое для текущего плана.
Безусловно, следует добавить, что табличная модификация симплекс-метода имеет важное практическое значение нестолько как удобная форма организации ручного счета, сколько как основа для реализации данного алгоритма в рамках программного обеспечения ЭВМ.
1.4.3. Пример решения ЗЛП симплекс-методом. Рассмотрим на конкретном примере процесс решения КЗЛП табличным симплекс-методом. Пусть дана каноническая задача ЛП:
Как видно, столбцы матрицы с номерами {5, 2, 3} являются линейно независимыми. И можно получить разложение по данным столбцам вектора ограничений с положительными коэффициентами. Последнее означает, что столбцы {5, 2, 3} образуют допустимый базис, с которого можно начать решение задачи. Из столбцов, входящих в базис, с учетом нулевых элементов формируется матрица Δ(β(1)) и обратная по отношению кнейΔ-1(β(1)):Используя их, по формуле (1.26) получаем
-84 | 0 | 0 | -88 | 0 | ||
1/3 | 0 | 0 | 1/3 | 1 | ||
= | 2 | 1 | 0 | 3 | 0 | ; |
-2/3 | 0 | 1 | -4/3 | 0 |
Используя полученные значения A(β(1)) и b(β(1)), заполняем симплекс-таблицу T(1), соответствующую первой итерации (q=1).
Поскольку строка оценок a0(β(1)) в первом и четвертом столбцах содержит отрицательные элементы (a0,1(β(1)) = -84, a0,4(β(1)) = -88), план х(β(1)) = (0,14,17/3,0,4) не является оптимальным, и значение целевой функции f(x(β(1))) = -226 может быть улучшено. Следуя рекомендации п.1˝ алгоритма симплекс-метода, полагаем номер вводимого в очередной базис столбца l = 4 (т.к. |-88| > |-84|). Рассматриваем ведущий столбец (выделен пунктирной рамкой)
Он содержит два положительных элемента. Применяя рекомендацию п. 2" алгоритма, получаем λ1= 4/(1/3) =12, λ2=14/3,и, стало быть r = 2. Следовательно, столбец с номером N2(β(1)) = 2 должен быть выведен из базиса. Таким образом, получаем очередной допустимый базис задачи N(β(2)) = {5, 4, 3}. Элемент a2,3(β(1)) является ведущим (обведен кружком). Применив формулы (1.28)-(1.31), переходим к симплекс-таблице, соответствующей второй итерации T(2), и полагаем индекс текущей итерацииq = 2.
В ходе выполнения второй итерации опять-таки определяются вводимый столбец а1, выводимый а4 и ведущий элемент a2,1(β(2)). Перейдя к итерации q = 3, имеем таблицу T(3).
Как видно из T(3), строка оценок содержит только неотрицательные значения, поэтому достигнутый базис N(β(3)) = {5, 1, 3} является оптимальным. В итоге мы получаем, что вектор х* =(7, 0, 31/3, 0, 5/3) является оптимальным планом (точкой максимума) задачи (1.34)-(1.35), максимальное значение целевой функции равно f* =f(х*)=362, а решение КЗЛП имеет вид ((7, 0, 31/3, 0, 5/3); 362).
1.4.4. Сходимость симплекс-метода. Вырожденность в задачах ЛП. Важнейшим свойством любого вычислительного, алгоритма является сходимость, т. е. возможность получения в ходе его применения искомых результатов (с заданной точностью) за конечное число шагов (итераций).