1. Понятие двойственности

Каждой задаче линейного программирования можно поставить в соответствие другую задачу, называемую двойственной. Исходная задача называется прямой.

Двойственная задача к двойственной совпадает с исходной прямой задачей, поэтому обе задачи образуют двойственную пару.

Пусть

  • A=(aij)A=(a_{ij}) — матрица размера m×nm\times n;
  • x=(x1,,xn)Tx=(x_1,\ldots,x_n)^T — вектор переменных прямой задачи;
  • y=(y1,,ym)Ty=(y_1,\ldots,y_m)^T — вектор переменных двойственной задачи;
  • c=(c1,,cn)Tc=(c_1,\ldots,c_n)^T;
  • b=(b1,,bm)Tb=(b_1,\ldots,b_m)^T.

2. Прямая и двойственная задачи

Рассмотрим прямую задачу максимизации:

maxcTx\max c^Tx

при условиях

Axb,x0.Ax\leqslant b,\qquad x\geqslant 0.

Соответствующая ей двойственная задача имеет вид

minbTy\min b^Ty

при условиях

ATyc,y0.A^Ty\geqslant c,\qquad y\geqslant 0.

В координатной форме прямая задача записывается как

maxj=1ncjxj\max\sum_{j=1}^{n}c_jx_j

при условиях

j=1naijxjbi,i=1,,m,\sum_{j=1}^{n}a_{ij}x_j\leqslant b_i, \qquad i=1,\ldots,m, xj0,j=1,,n.x_j\geqslant 0, \qquad j=1,\ldots,n.

Двойственная задача:

mini=1mbiyi\min\sum_{i=1}^{m}b_iy_i

при условиях

i=1maijyicj,j=1,,n,\sum_{i=1}^{m}a_{ij}y_i\geqslant c_j, \qquad j=1,\ldots,n, yi0,i=1,,m.y_i\geqslant 0, \qquad i=1,\ldots,m.

Таким образом, при переходе к двойственной задаче:

  1. задача максимизации заменяется задачей минимизации;
  2. матрица AA заменяется транспонированной матрицей ATA^T;
  3. коэффициенты bib_i правых частей ограничений становятся коэффициентами целевой функции;
  4. коэффициенты cjc_j целевой функции становятся правыми частями ограничений;
  5. каждому ограничению прямой задачи соответствует переменная двойственной задачи;
  6. каждой переменной прямой задачи соответствует ограничение двойственной задачи.

3. Допустимые решения

Вектор xx, удовлетворяющий условиям

Axb,x0,Ax\leqslant b,\qquad x\geqslant 0,

называется допустимым решением прямой задачи.

Вектор yy, удовлетворяющий условиям

ATyc,y0,A^Ty\geqslant c,\qquad y\geqslant 0,

называется допустимым решением двойственной задачи.

4. Теорема слабой двойственности

Для любых допустимых решений xx прямой задачи и yy двойственной задачи выполняется неравенство

cTxbTy.c^Tx\leqslant b^Ty.

Доказательство

Из условия ATycA^Ty\geqslant c и неотрицательности xx следует

xTATyxTc=cTx.x^TA^Ty\geqslant x^Tc=c^Tx.

Из условия AxbAx\leqslant b и неотрицательности yy следует

yTAxyTb=bTy.y^TAx\leqslant y^Tb=b^Ty.

Но

xTATy=yTAx.x^TA^Ty=y^TAx.

Следовательно,

cTxxTATy=yTAxbTy,c^Tx\leqslant x^TA^Ty=y^TAx\leqslant b^Ty,

откуда

cTxbTy.c^Tx\leqslant b^Ty.

Таким образом, значение целевой функции прямой задачи не превосходит значения целевой функции двойственной задачи.

5. Следствия слабой двойственности

Если для допустимых решений xx^* и yy^* выполняется

cTx=bTy,c^Tx^*=b^Ty^*,

то xx^* является оптимальным решением прямой задачи, а yy^* — оптимальным решением двойственной задачи.

Если целевая функция прямой задачи не ограничена сверху, то двойственная задача не имеет допустимых решений.

Если целевая функция двойственной задачи не ограничена снизу, то прямая задача не имеет допустимых решений.

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

6. Теорема сильной двойственности

Если прямая задача имеет конечное оптимальное решение, то двойственная задача также имеет оптимальное решение, причём оптимальные значения их целевых функций совпадают:

maxxcTx=minybTy.\max_{x}c^Tx=\min_{y}b^Ty.

То есть для оптимальных решений xx^* и yy^* выполняется

cTx=bTy.c^Tx^*=b^Ty^*.

Разность

bTycTxb^Ty-c^Tx

называется разрывом двойственности. Для любых допустимых решений она неотрицательна, а для оптимальных решений равна нулю.

7. Условия дополняющей нежёсткости

Допустимые решения xx^* и yy^* являются оптимальными тогда и только тогда, когда выполняются условия

yi(bi(Ax)i)=0,i=1,,m,y_i^*\bigl(b_i-(Ax^*)_i\bigr)=0, \qquad i=1,\ldots,m, xj((ATy)jcj)=0,j=1,,n.x_j^*\bigl((A^Ty^*)_j-c_j\bigr)=0, \qquad j=1,\ldots,n.

Следовательно:

  • если yi>0y_i^*>0, то соответствующее ограничение прямой задачи выполняется как равенство;
  • если xj>0x_j^*>0, то соответствующее ограничение двойственной задачи выполняется как равенство.

8. Правила построения двойственной задачи

Для прямой задачи максимизации действуют следующие правила:

  • ограничению вида \leqslant соответствует двойственная переменная yi0y_i\geqslant 0;
  • ограничению вида \geqslant соответствует переменная yi0y_i\leqslant 0;
  • ограничению-равенству соответствует переменная без ограничения на знак;
  • переменной xj0x_j\geqslant 0 соответствует двойственное ограничение вида \geqslant;
  • переменной xj0x_j\leqslant 0 соответствует ограничение вида \leqslant;
  • переменной без ограничения на знак соответствует двойственное ограничение-равенство.
Built with LogoFlowershow