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 относительно разрешающего столбца производится пересчет не , а .
