В стандартной форме прямая задача (1) линейного программирования записывается следующим образом. Необходимо определить n - мерный вектор неотрицательных переменных , при котором достигается максимум целевой функции:
, (1.1)
или:
, (1.2)
с учетом ограничений: (1)
, (1.3)
или:
(1.4)
Чтобы сформулировать условия двойственной задачи, проведем симметричное структурное преобразование условий прямой задачи в соответствии с правилами:
1) каждому ограничению прямой задачи соответствует переменная двойственной задачи;
2) каждой переменной прямой задачи соответствует ограничение двойственной задачи;
3) коэффициенты при некоторой переменной, фигурирующие в ограничениях прямой задачи, становятся коэффициентами левой части соответствующего ограничения двойственной задачи, а коэффициент при той же переменной в выражении для целевой функции прямой задачи, становятся свободным коэффициентом правой части этого же ограничения двойственной задачи.
Тогда в соответствии с приведенной выше формулировкой прямой задачи можно записать двойственную задачу (2) следующим образом. Необходимо определить m -мерный вектор неотрицательных переменных , при котором достигается минимум целевой функции:
, (2.1)
или:
, (2.2)
с учетом ограничений: (2)
, (2.3)
или:
(2.4)
В целом двойственная задача по отношению к исходной составляется согласно следующим общим правилам.
1. Число переменных yi в двойственной задаче равно числу ограничений в прямой задаче, i =1,…, m. Каждому ограничению исходной задачи соответствует переменная двойственной задачи (номер переменной равен номеру ограничения). Число ограничений двойственной задачи равно числу переменных xj исходной задачи j =1,…, n.
2. Матрица коэффициентов системы ограничений двойственной задачи получается из матрицы коэффициентов системы ограничений прямой задачи путем транспонирования. Матрица коэффициентов в исходной задаче имеет размерность m * n (m строк, n столбцов); в двойственной задаче рассматривается транспонированная матрица размерностью n * m (n строк, m столбцов).
3. Система ограничений двойственной задачи записывается в виде неравенств, противоположного смысла неравенствам системы ограничений прямой задачи.
4. Свободными членами системы ограничений двойственной задачи (правыми частями в системе неравенств) являются коэффициенты при неизвестных переменных в целевой функции исходной задачи.
5. Двойственная задача решается на минимум, если целевая функция прямой задачи задается на максимум, и наоборот.
6. Коэффициентами целевой функции двойственной задачи служат свободные члены системы ограничений прямой задачи.
7. Если переменная прямой задачи xj ≥ 0, то j -е условие системы ограничений двойственной задачи является неравенством, если xj – любое число, неограниченное по знаку, то j -е условие системы ограничений двойственной задачи представляет собой уравнение.
8. Если i -е условие системы ограничений прямой задачи является неравенством, то соответствующая оценка i -го ресурса – переменная yi ≥ 0, если i -е условие представляет собой уравнение, то переменная двойственной задачи yi – любое число, неограниченное по знаку.
Если в прямой задаче искомыми переменными были переменные, определяющие количество единиц продукции j -го вида, обеспечивающие максимальный доход от реализации произведенной продукции, то в двойственной задаче переменными служат стоимостные оценки всех ресурсов, причем общая стоимость всех используемых ресурсов должна быть минимальна. Решение прямой задачи дает оптимальные объемы выпуска продукции, а решение двойственной – оптимальную систему оценок ресурсов, используемых при выпуске продукции.
Каждая из задач двойственной пары фактически является самостоятельной задачей линейного программирования. В то же время при использовании симплекс-метода для формирования оптимального решения для одной из них находится решение и другой задачи.
Математические модели пары двойственных задач могут быть симметричными и несимметричными. В несимметричных двойственных задачах система ограничений исходной задачи задается в виде равенств, а двойственной в виде неравенств, причем в последней (двойственной) задаче переменные могут быть и отрицательными. В симметричных двойственных задачах система ограничений как исходной, так и двойственной задачи задается в виде неравенств, причем на переменные двойственной задачи накладывается условие неотрицательности.
Существует определенная связь между решением исходной и двойственной задачи (для симметричных двойственных задач), определяемая несколькими теоремами.
Теоремы двойственности.
Каждая из пары двойственных задач может быть решена самостоятельно. Однако при определении оптимального плана исходной (прямой) задачи находится решение и двойственной задачи, и, наоборот, при определении оптимальной системы оценок в двойственной задаче находится решение исходной задачи. Это следует из основных теорем двойственности.
Соответствие между переменными прямой и двойственной задачи в симплексной таблице можно представить следующим образом.
Переменные прямой задачи (заголовок симплекс-таблицы) | x 1, x 2,..., xn основные | S 1, S 2,..., Sm дополнительные |
Переменные двойственной задачи (их значения расположены в индексной строке оптимальной симплекс-таблицы) | ↕ ↕ ↕ V 1, V 2,..., Vn дополнительные | ↕ ↕ ↕ y 1, y 2,..., ym основные |
Первая теорема двойственности определяет условия существования решения в каждой из пар взаимодвойственных задач. В каждой из задач имеет место один из взаимоисключающих случаев:
а) исходная и двойственная задачи имеют оптимальное решение; при этом значения целевых функций на оптимальных решениях совпадают: ;
б) в исходной задаче допустимое множество не пусто, а целевая функция не ограничена сверху, в двойственной задаче – пустое допустимое множество;
в) в двойственной задаче допустимое множество не пусто, а целевая функция не ограничена снизу, в исходной задаче – пустое допустимое множество;
г) обе из рассматриваемых задач имеют пустые допустимые множества.
Вторая теорема двойственности определяет соотношения между переменными оптимального плана исходной и двойственной задач.
Пусть – допустимое решение исходной (прямой) задачи, а – допустимое решение двойственной задачи. Для того чтобы они были оптимальными решениями соответствующих задач, необходимо выполнение следующих условий:
Эти условия позволяют при известном оптимальном решении одной из взаимодвойственных задач, найти оптимальное решение другой задачи.
Если yi >0, то если yi = 0, то
Если xj >0, то , если , то xj = 0.
Из первой теоремы двойственности можно определить соотношения, позволяющие найти оптимальное решение двойственной задачи по известному оптимальному решению прямой задачи
Если X* =[ x1*; x2*;..., xn* ] – оптимальный план прямой задачи (вектор-столбец, размерностью n *1), а – Y* =[ y1*, y2*,..., ym ] – система оптимальных оценок ресурсов (вектор-строка размерностью 1* m), то
– максимально возможный доход от реализации продукции, который может быть получен при имеющихся запасах ресурсов, равен оценке этих ресурсов.
При решении прямой задачи симплекс-методом вектор X* включает базисные переменные финальной симплекс-таблицы, среди которых могут быть не только искомые переменные, но и дополнительные. Из всех векторов-столбцов матрицы А, представленной в исходной симплекс-таблице, следует рассматривать только те столбцы, которые относятся к переменным, входящим в базис в оптимальной симплекс-таблице, обозначим эту матрицу A*.
Тогда в матричной форме можно записать систему ограничений исходной задачи в виде:
.
Умножим обе части выражения на матрицу, обратную к (A*), и после преобразований получим выражение для оптимального решения исходной задачи:
, где D – матрица, обратная к матрице A*.
Подставим оптимальный план в выражение для целевой функции:
,
откуда получим соотношение, определяющее оптимальное решение двойственной задачи в виде:
;
причем в вектор-строку С* включены коэффициенты, относящиеся к базисным переменным оптимального плана.
Приведенные соотношения показывают, каким образом можно получить оптимальный план двойственной задачи, если найден оптимальный план прямой задачи. Отметим, что матрица расположена в первых m строках оптимальной симплекс-таблицы в j -ых столбцах, начиная с j = n +1 до j = n + m. Тогда нет необходимости определять оптимальный план двойственной задачи умножением C* на D, поскольку компоненты этого плана совпадают с соответствующими элементами индексной строки для тех же столбцов.