1.10. Алгоритм симплекс-таблиц t1(Bk)
Симплекс-таблица T1(Bk), объединяющая все структуры данных, необходимых для работы алгоритма, имеет вид, показанный на рис.1.19.
Рис.1.19
В результате работы алгоритма формируется последовательность симплекс-таблиц T1(Bk) k=1,2,…s, начиная с допустимого базиса B1 до выполнения одного из двух условий:
-либо выполняются условия оптимальности (1.78),
-либо устанавливается, что (1.83).
Начальная симплекс-таблица однозначно формируется по заданному B1.
Алгоритм
Шаг 1. k=1
Шаг 2. Проверка условия оптимальности базисного решения (см. 1.42):
.
Если оно выполняются, то:
- определяется оптимальное решение (1.84). Номера базисных компонент берутся из множества N(B),k а их значения из рядом стоящего вектора b(Bk);
(см. 1.51);
- алгоритм завершает свою работу.
Шаг 3. Выбор разрешающего столбца l осуществляется в соответствии с соотношением (1.82), в котором .
Шаг 4. Проверка условия (1.83) осуществляется в результате анализа значений столбца , или (что одно и то же) первых m элементов столбца .
Если условие выполняется, то алгоритм завершает свою работу.
Шаг 5.Определение номера r разрешающей строки с помощью соотношений (1.62)-(1.64). При этом используются стоящие в одинаковых строках элементы столбцов
b(Bk )и при условии [i,l]>0.
Шаг 6. Переход к симплекс-таблице T1(Bk+1):
6.1) Преобразование базисного множества
Фактически эта операция делается путем замены в базисном множестве N(Bk) элемента, стоящего на r-ом месте, номером разрешающего столбца l. Необходимо отметить, что при переходе от одной итерации к другой значение целевой функции не может уменьшиться, а при будет возрастать.
6.2) Преобразование в соответствии с (1.88) действительной части симплекс-таблицы относительно разрешающего элемента.
Шаг 7. k: = k+1, переход на шаг 2.
1.11. Алгоритм симплекс-таблиц t2(Bk)
Алгоритм основан на итеративном преобразовании расширенной обратной базисной матрицы . Имеет существенные преимущества по вычислительной сложности по сравнению с алгоритмом симплекс-таблиц T1(Bk) для ЗЛП, у которых за счет экономии вычислений при выполнении преобразований Гаусса-Жордана: размерность преобразуемой матрицы равна , а матрицы - .
Симплекс-таблица T2(Bk) имеет структуру, показанную на рис.1.20.
Рис. 1.20
В отличие от симплекс-таблицы T1(Bk) в T2(Bk) не представлены непосредственно все необходимые для работы алгоритма структуры данных: симплекс-разности, столбцы матрицы . Их в этом алгоритме по необходимости нужно в нужный момент специально рассчитывать. Для расчета симплекс-разностей и разрешающего столбца на основе соотношения (1.42) применяются следующие формулы:
(1.89)
где - последняя, (m+1)-ая строка матрица ;
. (1.90)
Для реализации этих расчетов в ручном счете целесообразно использовать структуру данных, показанную на рис.1.21.
Рис. 1.21
Элементы строки симплекс-разностей получаются путем скалярного умножения вектора на соответствующие столбцы расширенной матрицы условий . Расчет осуществляется путем выбора необходимого из матрицы , записи его справа от T2(Bk) и умножением слева на матрицу .
В целом же алгоритм симплекс-таблиц T2(Bk) имеет ту же структуру, что и алгоритм симплекс-таблиц T1(Bk). Укажем лишь на отличия:
в п.2 алгоритма перед проверкой оптимальности базисного решения производится расчет ;
в п.4 алгоритма перед проверкой условия производится расчет ;
в п.6.2 относительно разрешающего столбца производится пересчет не , а .