- •Примеры задач линейного программирования и их математическая формулировка.
- •Общая постановка задачи линейного программирования.
- •Графический метод решения задачи линейного программирования.
- •Алгоритмический метод.
- •Введение в симплексный алгоритм.
- •Область применимости.
- •Свойство сходимости.
- •Табличное представление.
- •Матричное представление
- •Общая постановка задачи динамического программирования
- •Анализ чувствительности решения
Табличное представление.
При переходе от одного пробного решения к следующему мы каждый раз выписывали все переменные 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)