Для связи в whatsapp +905441085890

Двойственность в задачах линейного программирования

Двойственность в задачах линейного программирования

В разд. 1.6 было показано, что в ряде случаев проще решить двойственную задачу математического программирования, чем прямую. Рассмотрим теорию двойственности для задач линейного программирования. Для каждой такой задачи можно построить другую задачу, называемую двойственной. Понятие двойственности дает ощутимые преимущества при построении алгоритмов решения задач линейного программирования. Запишем обе задачи:

Двойственность в задачах линейного программирования

Симметричность обеих задач очевидна. Неравенству в одной задаче соответствует неотрицательная переменная другой. Равенству одной задачи соответствует свободная переменная другой. Задача, двойственная к двойственной задаче, есть исходная (прямая) задача. Таким образом, любую из этой пары задач можно считать прямой.

Для стандартного и канонического видов задачи линейного программирования двойственные задачи можно записать следующим образом.

Двойственность в задачах линейного программирования
Двойственность в задачах линейного программирования

Из сравнения обеих задач нетрудно видеть, что:

1) матрицу из коэффициентов при переменных в исходной задаче

Двойственность в задачах линейного программирования

и аналогичную матрицу в двойственной задаче

Двойственность в задачах линейного программирования

получают друг из друга простой заменой строк столбцами с сохранением их порядка (такую операцию называют транспонированием и обозначают значком «т»);

2) в исходной задаче имеется Двойственность в задачах линейного программирования переменных и Двойственность в задачах линейного программирования ограничений, в двойственной — Двойственность в задачах линейного программирования переменных и Двойственность в задачах линейного программирования ограничений;

3) в правых частях систем ограничений каждой из задач стоят коэффициенты целевой функции, взятой из другой задачи;

4) в исходной задаче в систему ограничений входят неравенства типа Двойственность в задачах линейного программирования и требуется минимизировать целевую функцию Двойственность в задачах линейного программирования, в двойственной задаче в систему ограничений входят неравенства типа Двойственность в задачах линейного программирования и требуется максимизировать целевую функцию Двойственность в задачах линейного программирования.

В теории двойственности доказывают следующую теорему: пусть дана пара двойственных задач линейного программирования (заданных в стандартном виде). Тогда справедливо одно и только одно из следующих утверждений:

  1. Обе задачи имеют оптимальные решения и оптимальные значения целевых функций равны, т.е. Двойственность в задачах линейного программирования.
  2. Одна из задач не имеет ни одного допустимого решения, а другая имеет по крайней мере одно допустимое решение, но не имеет оптимального решения (целевая функция на множестве допустимых решений неограничена).
  3. Ни одна пара задач не имеет допустимых решений.

Между решениями пары двойственных задач линейного программирования существуют и другие соотношения, которые устанавливаются теоремами о дополняющей нежесткости: для того чтобы допустимые решения Двойственность в задачах линейного программирования и Двойственность в задачах линейного программирования прямой и двойственной задач были оптимальными, необходимо и достаточно, чтобы выполнялись следующие соотношения:

Двойственность в задачах линейного программирования

Условие(а)равносильно условиям:

Двойственность в задачах линейного программирования

Условие(б)равносильно условиям:

Двойственность в задачах линейного программирования
Двойственность в задачах линейного программирования

Это условия дополняющей нежесткости в слабой форме. В сильной форме условия дополняющей нежесткости утверждают, что:

Двойственность в задачах линейного программирования

Может случиться, что

Двойственность в задачах линейного программирования

одновременно. Новсегда существует по крайней мере одна пара оптимальных решений, для которых условия

Двойственность в задачах линейного программирования

не могут выполняться одновременно.

Нетрудно проверить, что, если вектор Двойственность в задачах линейного программирования — решение прямой задачи, а вектор Двойственность в задачах линейного программирования — решение двойственной задачи, то сумма произведений соответствующих координат векторов Двойственность в задачах линейного программирования и Двойственность в задачах линейного программирования равна нулю (скалярное произведение векторов Двойственность в задачах линейного программирования и Двойственность в задачах линейного программирования равно нулю).

Эта теория взята со страницы лекций по предмету «математическое программирование»:

Предмет математическое программирование

Возможно эти страницы вам будут полезны:

Симплекс-метод — основной метод решения задач линейного программирования
Метод полного исключения Жордана для решения систем линейных алгебраических уравнений
Геометрическая интерпретация теории двойственности в задачах линейного программирования
Транспортная задача: как оптимально организовать поставку грузов от поставщиков к потребителям