
- •Примеры задач линейного программирования и их математическая формулировка.
- •Общая постановка задачи линейного программирования.
- •Графический метод решения задачи линейного программирования.
- •Алгоритмический метод.
- •Введение в симплексный алгоритм.
- •Область применимости.
- •Свойство сходимости.
- •Табличное представление.
- •Матричное представление
- •Общая постановка задачи динамического программирования
- •Анализ чувствительности решения
Табличное представление.
При переходе от одного пробного решения к следующему мы каждый раз выписывали все переменные x1,x2,…,xn фигурирующие в рассматриваемой модели. Однако это, с одной стороны, громоздко, а с другой — не вызвано никакой необходимостью, поскольку в процессе вычисления используются лишь коэффициенты при независимых переменных. Теперь, когда понятна простая логика симплексного алгоритма, объем сопутствующих записей можно существенно сократить, если весь вычислительный процесс представить в виде удобной таблицы, известной под названием симплекс-таблицы. Таблицы 3.9 и 3.10 представляют собой описание двух различных подходов к решению задачи, приведенной в разделе 3.4. В таблице 3.9. столбцы, соответствующие базисным переменным, имеют настолько тривиальный смысл, что их без ущерба для однозначности понимания можно из упомянутой таблицы исключить. В результате получаем редуцированный вариант табличной записи, приведенный в таблице3.10. В этом случае после каждой итерации необходимо вводить одну дополнительную строку, предназначенную для нового набора небазисных переменных.
Матричное представление
В данной главе, так же как и к следующей, при изложении симплексного метода и различных его модификаций каждое из уравнений модели записывается в явном виде. Если воспользоваться матричными обозначениями, то математическая формулировка метода примет более компактный вид. Матричная запись линейной модели выглядит следующим образом:
Максимизировать сх (1)
при ограничениях:
Ax b (2)
x 0 (3)
В принятых обозначениях соответствующую симплекс-таблицу (4) на этапе первой итерации можно представить в виде
(4)
где- [0Ui] — столбец с единицей на пересечении с i-й строкой и с нулями на пересечении со всеми остальными строками. (Строке 0 в матрице (4) принято отводить самую верхнюю позицию.) В еще более компактном виде вместо (4) будем иметь
(5)
где 0pq — матрица с р строками и q столбцами, состоящая целиком из нулей, а Iт— m-мерная единичная матрица.
Выделим в (5) т столбцов, соответствующих пробному базису на этапе некоторой заданной итерации. Обозначим полученную таким образом матрицу через [ -CBB]. При этом первый столбец соответствует базисной переменной, фигурирующей в строке 1, второй столбец соответствует базисной переменной, фигурирующей в строке 2, и т. д. Тогда для данной итерации симплекс-таблица принимает следующий вид:
(6)
Нетрудно убедиться, что матрица (6) получена из матрицы (5) путем умножения последней слева на
=
-1
(7)
Симплекс-критерий
I (максимизация)
сводится к нахождению наибольшего по
модулю отрицательного матричного
элемента в
,
т.
е. в строке 0 матрицы (6). Предположим,
что наибольший пo модулю отрицательный
матричный элемент в
соответствует
хj.
Тогда, согласно критерию II, мы
обращаемся в (6) к коэффициентам при хj.
(8)
Следует заметить, что если xjпредставляет собой i-ю свободную переменную, то в (8) сj =0 и Aj = Uj. Допустим, что выбор по критерию II падает на строку k. Последующая вычислительная процедура, связанная с заменой базиса, сводится к умножению матрицы (6) слева на:
(9)
где
отношения
фигурируют
в (k + 1)-м столбце матрицы Е.
Умножение
(6) на (9) часто называют операцией
элементарного
преобразования.
Заметим,
что значения
для
пробного базиса являются оптимальными,
когда
(10)
Соответствующее значение целевой функции при этом равняется
(11)