- •1. Двойственность в линейном программировании 2
- •3. Алгоритм розв’язку двоїстим симплексим методом. 21
- •1. Двойственность в линейном программировании
- •1.1. Несиметричні двоїсті задачі. Теорема двоїстості.
- •1.2. Симетричні двоїсті задачі
- •Види математичних моделей двоїстих задач
- •2. Двоїстий симлекс-метод
- •2.1. Основные идеи двойственного симплекс-метода.
- •2.2. Алгоритм и табличная реализация двойственного симплекс-метода.
- •2.4. Приклад решения злп двойственным симплекс-методом.
- •3. Алгоритм розв’язку двоїстим симплексим методом.
2.2. Алгоритм и табличная реализация двойственного симплекс-метода.
Обобщая сказанное в предыдущем пункте, приведем в сжатом виде алгоритм двойственного симплекс-метода для решения КЗЛП.
0-этап. Нахождение исходного сопряженного (двойственно допустимого базиса). Результатом 0-этапа являются сопряженный базис β(1) и соответствующие ему псевдоплан x(β(1)), матрица A(β(1)) и вектор b(β(1)), которые будут использованы на первой итерации. Полагаем номер текущей итерации q равным 1 и переходим к I-этапу.
I-этап. Стандартная итерация алгоритма — выполняется для очередного сопряженного базиса β(q).
1°. Проверка оптимальности текущего псевдоплана: осуществляется просмотр значений bi(β(q)), i1:m. Возможны два варианта:
1΄. Для всех i1:m, bi(β(q)) ≥ 0. Тогда текущий псевдоплан x(β(q)) одновременно является допустимым планом решаемой задачи, т. е. ее оптимальным планом. Вычислительный процесс закончен. Элементы оптимального плана х* определяются по формуле
а достигаемое на нем значение целевой функции равно
1". Существует по меньшей мере один номер строки r1:m, для которого br(β(q))<0 . Следовательно, псевдоплан x(β(q)) — неоптимален. Выбирается строка с номером r, такая, что
Она становится ведущей и определяет номер столбца Nr(β(q)), который должен быть выведен из базиса. Переходим к пункту 2° алгоритма.
2°. Определение столбца, вводимого в базис. Рассматривается ведущая строка аr(β(q)). Возможны два варианта:
2'. Для всех j1: n аr,j(β(q)) ≥ 0. Делается вывод об отсутствии допустимых планов у решаемой задачи (D = Ø) и завершается вычислительный процесс*.
2". В строке аr(β(q)) существует по крайней мере один элемент аr,j(β(q))<0. Согласно правилу (1.62) определяются l — номер столбца, вводимого в очередной базис. Переходим к пункту 3° алгоритма.
3°. Пересчет элементов матрицы А и столбца b относительно нового базиса. В соответствии с формулами (1.28)-(1.31) осуществляем расчет элементов матрицы задачи A и вектора ограничений b относительно нового базиса β(q+1), который получается в результате вывода из базиса β(q) столбца аr и ввода в него столбца аl. Полагаем номер текущей итерации q: = q+1 и переходим к первому пункту алгоритма.
По аналогии со стандартным симплекс-методом вычислительную процедуру двойственного симплекс-метода удобно оформлять в виде таблиц, приведенных на рис. 1.5. Очевидно, что с формальной стороны их структура остается неизменной. Иногда считается целесообразным добавить к двойственной симплекс-таблице строку, содержащую строку со значениями λj, которые вычисляются на этапе определения столбца, вводимого в базис.
2.3. Особенности применения двойственного симплекс-метода.
Алгоритм двойственного симплекс-метода (как и остальные симплекс-алгоритмы) предполагает знание исходного сопряженного базиса. Очевидно, что в общем случае его нахождение является достаточно непростой задачей, сводящей на нет потенциальные преимущества двойственного алгоритма. Однако в ряде случаев исходный псевдоплан может быть определен достаточно легко.
Рассмотрим задачу минимизации:
при обмеженнях
где
Приведем задачу (1.66)-(1.68) к канонической форме, введя фиктивные переменные хn+1, хn+2, ... , хn+m:
Задача, двойственная к (1.70)—(1.72), будет иметь вид:
Из (1.74)-(1.75) очевиден допустимый план двойственной задачи
и исходный сопряженный базис, образуемый векторами аn+1, аn+2, …., аn+m. При этом начальный псевдоплан равен
Таким образом, при решении задачи вида (1.66)-(1.68) двойственный симплекс-метод имеет несомненные преимущества по сравнению с прямым.
Другое важное направление использования двойственного симплекс-метода связано с поиском оптимальных планов в тех задачах, условия которых претерпели некоторые изменения после того, как они уже были решены с помощью стандартной симплекс-процедуры. Типичными Прикладами таких изменений являются:
-
изменение компонент вектора ограничений b, что, допустим, может быть интерпретировано как корректировка объемов доступных ресурсов в процессе управления экономическим объектом;
-
добавление новых ограничений к системе условий задачи, что достаточно часто случается при совершенствовании используемой экономико-математической модели.
В первом случае, т. е. при изменении вектора b, достоинства двойственного симплекс-метода очевидны, так как ранее найденный оптимальный базис можно использовать в качестве исходного сопряженного базиса при продолжении решения. Второй случай более подробно будет рассмотрен в гл. 4 при рассмотрении методов решения целочисленных задач.
В заключение отметим, что в настоящем параграфе был рассмотрен вариант двойственного алгоритма, соответствующий стандартному симплекс-методу. Нетрудно догадаться, что существует и вариант, построенный на базе модифицированного симплекса (схемы, связанной с преобразованием обратных матриц), но, поскольку этот вопрос представляет интерес в основном с точки зрения техники организации вычислений, мы на нем останавливаться не будем. При желании с глубоким и детальным описанием данной версии алгоритма можно ознакомиться в [1]. Отметим лишь, что она обладает теми же принципиальными преимуществами, что и модифицированный симплекс-метод.