%% dfeas.latex %%

\documentclass[a4paper,11pt,draft]{article}
\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}
\usepackage[russian]{babel}

\begin{document}

\title{Поиск двойственно-допустимого решения\\в двойственном
симплекс-методе}

\author{А. О. Махорин\footnote{Кафедра прикладной информатики,
Московский авиационный институт, Москва, Россия. E-mail:
{\tt <mao@mai2.rcnet.ru>}, {\tt <mao@gnu.org>}.}}

\date{Август 2008 г.}

\maketitle

\section{Кусочно-линейная целевая функция}

\def\arraystretch{1.2}

Рассмотрим ЛП-задачу в стандартном формате:
$$
\begin{array}{l}
z=c^Tx\rightarrow\min,\\
Ax=b,\\
x\geq 0.\\
\end{array}\eqno(1)
$$
Соответствующая двойственная ЛП-задача имеет вид:
$$
\begin{array}{l}
\zeta=b^T\pi\rightarrow\max,\\
A^T\pi+\lambda=c,\\
\lambda\geq 0,\\
\end{array}\eqno(2)
$$
где $\pi=(\pi_i)$ --- вектор множителей Лагранжа для
ограничений-равенств $Ax=b$, $\lambda=(\lambda_j)$ --- вектор
множителей Лагранжа для условий неотрицательности $x\geq 0$.

Рассмотрим теперь следующую задачу с сепарабельной кусочно-ли\-нейной
целевой функцией:
$$
\begin{array}{l}
\displaystyle z=\sum_j\varphi_j(x_j)\rightarrow\min,\\
Ax=b,\\
\end{array}\eqno(3)
$$
где
$$
\varphi_j(x_j)=\left\{
\begin{array}{@{}ll}
+\alpha_jx_j,&\mbox{если}\ x_j\geq 0,\\
-\beta_jx_j,&\mbox{если}\ x_j<0.\\
\end{array}
\right.\eqno(4)
$$
График функции $\varphi_j(x_j)$ для $\alpha_j,\beta_j\geq 0$ показан
на рис. 1.

\setlength{\unitlength}{1mm}

\begin{figure}
\begin{center}
\begin{picture}(50,35)(0,0)
\put(25,0){\vector(0,1){35}}
\put(26.5,33){$\varphi_j$}
\put(0,5){\vector(1,0){50}}
\put(47,1.5){$x_j$}
\thicklines
\put(25,5){\line(-3,2){24}}
\put(25,5){\line(1,1){25}}
\thinlines
\qbezier(20,5)(20,6.5)(20.8,7.5)
\put(14,7){$\beta_j$}
\qbezier(30,5)(30,7)(28.5,8.5)
\put(32,7){$\alpha_j$}
\end{picture}

Рис. 1. График функции $\varphi_j(x_j)$ для $\alpha_j,\beta_j\geq 0$.
\end{center}
\end{figure}

Чтобы преобразовать задачу (3) к стандартному формату (1), заменим
свободные переменные в этой задаче разностью неотрицательных
переменных:
$$x=(x_j)=x^+-x^-=(x_j^+-x_j^-),\ \ x^+,x^-\geq 0.$$
В любом базисном решении задачи (3) переменные $x_j^+$ и $x_j^-$
не могут быть базисными одновременно, поскольку в противном случае в
базисной матрице были бы два линейно зависимых столбца. Следовательно,
хотя бы одна переменная $x_j^+$ или $x_j^-$ будет небазисной, а значит,
равной нулю. Поэтому:
$$
x_j=\left\{
\begin{array}{@{}ll}
+x_j^+,&\mbox{если}\ x_j\geq 0,\\
-x_j^-,&\mbox{если}\ x_j<0,\\
\end{array}
\right.
$$
откуда следует, что:
$$\varphi(x_j)=\alpha_jx_j^++\beta_jx_j^-.$$
Таким образом, задача (3) принимает стандартный вид:
$$
\begin{array}{l}
z=\left(\begin{array}{@{}c@{}}\alpha\\\beta\\\end{array}\right)^T
\left(\begin{array}{@{}c@{}}x^+\\x^-\\\end{array}\right)\rightarrow
\min,\\
(A\:|-A)\left(\begin{array}{@{}c@{}}x^+\\x^-\\\end{array}\right)=b,\\
\left(\begin{array}{@{}c@{}}x^+\\x^-\\\end{array}\right)\geq 0,\\
\end{array}\eqno(5)
$$
где $\alpha=(\alpha_j)$, $\beta=(\beta_j)$. Двойственную задачу к (5)
можно получить из (2), подставив компоненты задачи (5) в (1):
$$
\begin{array}{l}
\zeta=\beta^T\pi\rightarrow\max,\\
(A\:|-A)^T\pi+\left(\begin{array}{@{}c@{}}\lambda^+\\\lambda^-\\
\end{array}\right)=\left(\begin{array}{@{}c@{}}\alpha\\\beta\\
\end{array}\right),\\
\left(\begin{array}{@{}c@{}}\lambda^+\\\lambda^-\\\end{array}\right)
\geq 0,\\
\end{array}\eqno(6)
$$
где $\lambda^+=(\lambda_j^+)$ и $\lambda^-=(\lambda_j^-)$ --- множители
Лагранжа для условий $x^+\geq 0$ и $x^-\geq 0$, соответственно.
Двойственную систему ограничений-равенств задачи (6) можно записать в
виде:
$$
\begin{array}{r}
A^T\pi+\lambda^+=\alpha,\\
-A^T\pi+\lambda^-=\beta,\\
\end{array}
$$
откуда следует, что:
$$\lambda^++\lambda^-=\alpha+\beta,$$
а поскольку $\lambda^-\geq 0$, то:
$$\lambda^+=\alpha+\beta-\lambda^-\leq\alpha+\beta.$$
В результате двойственная задача (6) принимает следующий вид:
$$
\begin{array}{l}
\zeta=b^T\pi\rightarrow\max,\\
A^T\pi+\lambda=\alpha,\\
0\leq\lambda\leq\alpha+\beta,\\
\end{array}
$$
где $\lambda=\lambda^+$. Заметим далее, что:
$$\lambda=-A^T\pi+\alpha,$$
поэтому:
$$0\leq-A^T\pi+\alpha\leq\alpha+\beta\ \Leftrightarrow\ -\beta\leq
A^T\pi\leq\alpha.$$
Это позволяет записать двойственную задачу (6) в окончательном виде:
$$
\begin{array}{l}
\zeta=b^T\pi\rightarrow\max,\\
-\beta\leq A^T\pi\leq\alpha.\\
\end{array}\eqno(7)
$$

Обратим внимание, что кусочно-линейная целевая функция в исходной
задаче (3) приводит к двусторонним ограничениям в соответствующей
двойственной задаче (7).

\section{Простой случай поиска допустимого решения}

Рассмотрим вначале в качестве примера задачу отыскания допустимого
решения простой системы ограничений:
$$
\begin{array}{l}
Ax=b,\\
x\geq 0.\\
\end{array}\eqno(8)
$$
Указанная задача эквивалентна задаче (3), в которой целевая функция
имеет смысл суммы невязок (штрафов) для условий неотрицательности
$x_j\geq 0$ (рис. 2):
$$
\varphi_j(x_j)=\left\{
\begin{array}{@{}ll}
\hfill 0,&\mbox{если}\ x_j\geq 0,\\
-\beta_jx_j,&\mbox{если}\ x_j<0,\\
\end{array}
\right.\eqno(9)
$$
где $\beta=(\beta_j)>0$ можно рассматривать как вектор весовых
коэффициентов невязок для отдельных переменных. Подставляя $\alpha=0$
в (7) получим соответствующую двойственную задачу:
$$
\begin{array}{l}
\zeta=b^T\pi\rightarrow\max,\\
-\beta\leq A^T\pi\leq 0,\\
\end{array}\eqno(10)
$$
оптимальное базисное решение которой однозначно определяет некоторое
базисное допустимое решение исходной системы ограничений (8) при
условии, что сумма невязок $\zeta$ в оптимальной точке равна нулю.

\begin{figure}
\begin{center}
\begin{picture}(50,35)(0,0)
\put(25,0){\vector(0,1){35}}
\put(26.5,33){$\varphi_j$}
\put(0,5){\vector(1,0){50}}
\put(47,1.5){$x_j$}
\thicklines
\put(25,5){\line(-3,2){24}}
\put(25,5){\line(1,0){20}}
\thinlines
\qbezier(20,5)(20,6.5)(20.8,7.5)
\put(14,7){$\beta_j$}
\end{picture}

Рис. 2. Невязка $\varphi_j(x_j)$ для условия $x_j\geq 0$.
\end{center}
\end{figure}

\section{Поиск допустимого решения в общем случае}

Рассмотрим теперь задачу отыскания допустимого решения более общей
системы ограничений:
$$
\begin{array}{r@{\ }c@{\ }c@{\ }c@{\ }l}
\multicolumn{5}{l}{(A_F\ A_P\ A_N\ A_Z)\left(
\begin{array}{@{}c@{}}x_F\\x_P\\x_N\\x_Z\end{array}\right)=b,}\\
-\infty&<&x_F&<&+\infty,\\
0&\leq&x_P&<&+\infty,\\
-\infty&<&x_N&\leq&0,\\
&&x_Z&=&0,\\
\end{array}\eqno(11)
$$
где $x_F$, $x_P$, $x_N$, $x_Z$ --- векторы, соответственно, свободных
(неограниченных по знаку), неотрицательных, неположительных, нулевых
переменных. Как и в простом случае (см. предыдущий раздел) указанная
задача эквивалентна задаче (3), в которой целевая функция представляет
собой сумму невязок. Однако теперь возможны четыре типа невязок
$\varphi_j(x_j)$ в зависимости от типа границ переменной $x_j$ (рис. 3).
При этом соответствующая двойственная задача (7) будет следующей:
$$
\begin{array}{c}
\zeta=\beta^T\pi\rightarrow\max,\\
\left(\begin{array}{@{}c@{}}0\\-\beta_P\\0\\-\beta_Z\end{array}\right)
\leq(A_F\ A_P\ A_N\ A_Z)^T\pi\leq
\left(\begin{array}{@{}c@{}}0\\0\\\alpha_N\\\alpha_Z\end{array}\right),
\\
\end{array}
$$
или в окончательном виде:
$$
\begin{array}{r@{\ }c@{\ }c@{\ }c@{\ }l}
\multicolumn{5}{c}{\zeta=b^T\pi\rightarrow\max,}\\
&&A_F^T\pi&=&0,\\
-\beta_P&\leq&A_P^T\pi&\leq&0,\\
0&\leq&A_N^T\pi&\leq&\alpha_N,\\
-\beta_Z&\leq&A_Z^T\pi&\leq&\alpha_Z.\\
\end{array}\eqno(12)
$$

\begin{figure}
\begin{center}
\begin{tabular}{c@{\hspace{10mm}}c}
\begin{picture}(50,35)(0,0)
\put(25,0){\vector(0,1){35}}
\put(26.5,33){$\varphi_j$}
\put(0,5){\vector(1,0){50}}
\put(47,1.5){$x_j$}
\thicklines
\put(25,5){\line(-1,0){20}}
\put(25,5){\line(1,0){20}}
\thinlines
\put(7,7){$\beta_j=0$}
\put(32,7){$\alpha_j=0$}
\end{picture}&
\begin{picture}(50,35)(0,0)
\put(25,0){\vector(0,1){35}}
\put(26.5,33){$\varphi_j$}
\put(0,5){\vector(1,0){50}}
\put(47,1.5){$x_j$}
\thicklines
\put(25,5){\line(-3,2){24}}
\put(25,5){\line(1,0){20}}
\thinlines
\qbezier(20,5)(20,6.5)(20.8,7.5)
\put(14,7){$\beta_j$}
\put(32,7){$\alpha_j=0$}
\end{picture}\\
$-\infty<x_j<+\infty$&$0\leq x_j<+\infty$\\
\\
\begin{picture}(50,35)(0,0)
\put(25,0){\vector(0,1){35}}
\put(26.5,33){$\varphi_j$}
\put(0,5){\vector(1,0){50}}
\put(47,1.5){$x_j$}
\thicklines
\put(25,5){\line(-1,0){20}}
\put(25,5){\line(1,1){25}}
\thinlines
\put(7,7){$\beta_j=0$}
\qbezier(30,5)(30,7)(28.5,8.5)
\put(32,7){$\alpha_j$}
\end{picture}&
\begin{picture}(50,35)(0,0)
\put(25,0){\vector(0,1){35}}
\put(26.5,33){$\varphi_j$}
\put(0,5){\vector(1,0){50}}
\put(47,1.5){$x_j$}
\thicklines
\put(25,5){\line(-3,2){24}}
\put(25,5){\line(1,1){25}}
\thinlines
\qbezier(20,5)(20,6.5)(20.8,7.5)
\put(14,7){$\beta_j$}
\qbezier(30,5)(30,7)(28.5,8.5)
\put(32,7){$\alpha_j$}
\end{picture}\\
$-\infty<x_j\leq 0$&$x_j=0$\\
\end{tabular}

\bigskip

Рис. 3. Невязки $\varphi_j(x_j)$ для различных типов границ $x_j$.
\end{center}
\end{figure}

Заметим, что каждой переменной $x_j$ исходной системы ограничений (11)
соответствует ограничение двойственной задачи (12), при этом тип границ
переменной $x_j$ однозначно определяет границы соответствующего
двойственного ограничения.

\section{Поиск двойственно-допустимого решения для ЛП-задачи общего
вида}

Рассмотрим ЛП-задачу общего вида:
$$
\begin{array}{r@{\ }c@{\ }c@{\ }c@{\ }l}
\multicolumn{5}{l}{z=c^Tx=c_F^Tx_F+c_L^Tx_L+c_U^Tx_U+c_D^Tx_D
\rightarrow\min,}\\
\multicolumn{5}{l}{Ax=(A_F\ A_L\ A_U\ A_D)\left(\begin{array}{@{}c@{}}
x_F\\x_L\\x_U\\x_D\\\end{array}\right)=b,}\\
-\infty&<&x_F&<&+\infty,\\
l&\leq&x_L&<&+\infty,\\
-\infty&<&x_U&\leq&u,\\
l_D&\leq&x_D&\leq&u_D,\\
\end{array}\eqno(13)
$$
где $x_F$, $x_L$, $x_U$, $x_D$ --- векторы, соответственно, свободных
(неограниченных по знаку), ограниченных снизу, ограниченных сверху,
ограниченных с двух сторон переменных.\footnote{Фиксированные
переменные можно рассматривать как переменные, ограниченные с двух
сторон, у которых нижняя и верхняя границы совпадают.}

Из условий оптимальности Куна --- Таккера следует, что соответствующая
двойственная система ограничений для задачи (13) имеет следующий вид:
$$
\begin{array}{r@{\ }c@{\ }c@{\ }c@{\ }l}
\multicolumn{5}{l}{A^T\pi+\lambda=(A_F\ A_L\ A_U\ A_D)^T\pi+
\left(\begin{array}{@{}c@{}}\lambda_F\\\lambda_L\\\lambda_U\\\lambda_D\\
\end{array}\right)=c=
\left(\begin{array}{@{}c@{}}c_F\\c_L\\c_U\\c_D\\\end{array}\right)},\\
-\infty&<&\pi&<&+\infty,\\
&&\lambda_F&=&0,\\
&&\lambda_L&\geq&0,\\
&&\lambda_U&\leq&0,\\
-\infty&<&\lambda_D&<&+\infty,\\
\end{array}\eqno(14)
$$
где $\pi$ --- вектор множителей Лагранжа для ограничений-равенств
$Ax=b$, $\lambda_F$, $\lambda_L$, $\lambda_U$, $\lambda_D$ --- векторы
множителей Лагранжа для границ переменных $x_F$, $x_L$, $x_U$, $x_D$,
соответственно.

Если для решения исходной ЛП-задачи (13) используется двойственный
симплекс-метод, то для начала поиска необходимо иметь базисное
двойственно-допустимое решение, т.~е. базисное решение, удовлетворяющее
двойственной системе ограничений (14). Для отыскания такого начального
базисного решения можно использовать следующий способ.

Заметим, что система ограничений (14) совпадает с системой ограничений
(11), поэтому допустимое решение системы (14) можно найти в результате
решения соответствующей двойственной ЛП-задачи. Чтобы сделать матрицу
системы (14) более наглядной, объединим все двойственные переменные в
один вектор:
$$
\begin{array}{c}
\left(\begin{array}{@{}ccccc@{}}
A_F^T&I&&&\\A_L^T&&I&&\\A_U^T&&&I&\\A_D^T&&&&I\\\end{array}\right)
\left(\begin{array}{@{}c@{}}\pi\\\lambda_F\\\lambda_L\\\lambda_U\\
\lambda_D\end{array}\right)=
\left(\begin{array}{@{}c@{}}c_F\\c_L\\c_U\\c_D\\\end{array}\right),\\
\left(\begin{array}{@{}c@{}}-\infty\\0\\0\\-\infty\\-\infty\\
\end{array}\right)\leq
\left(\begin{array}{@{}c@{}}\pi\\\lambda_F\\\lambda_L\\\lambda_U\\
\lambda_D\\\end{array}\right)\leq
\left(\begin{array}{@{}c@{}}+\infty\\0\\+\infty\\0\\+\infty\\
\end{array}\right).\\
\end{array}\eqno(15)
$$
Рассматривая систему (15) как систему (11) и используя вектор
переменных $(-y)=(-y_F,-y_L,-y_U,-y_D)$ в качестве вектора двойственных
переменных для ограничений-равенств системы (15), можно построить
соответствующую двойственную ЛП-задачу (12), которая в обозначениях
системы (15) будет следующей:
$$
\begin{array}{r@{\ }c@{\ }c@{\ }c@{\ }l}
\multicolumn{5}{l}{-c_F^Ty_F-c_L^Ty_L-c_U^Ty_U-c_D^Ty_D\rightarrow
\max,}\\
\multicolumn{5}{l}{-A_Fy_F-A_Ly_L-A_Uy_U-A_Dy_D=0,}\\
-\beta_F&\leq&-y_F&\leq&\alpha_F,\\
-\beta_L&\leq&-y_L&\leq&0,\\
0&\leq&-y_U&\leq&\alpha_U,\\
&&-y_D&=&0,\\
\end{array}
$$
или, если умножить все компоненты на $(-1)$:
$$
\begin{array}{r@{\ }c@{\ }c@{\ }c@{\ }l}
\multicolumn{5}{l}{c_F^Ty_F+c_L^Ty_L+c_U^Ty_U+c_D^Ty_D=c^Ty\rightarrow
\min,}\\
\multicolumn{5}{l}{A_Fy_F+A_Ly_L+A_Uy_U+A_Dy_D=Ay=0,}\\
-\alpha_F&\leq&y_F&\leq&\beta_F,\\
0&\leq&y_L&\leq&\beta_L,\\
-\alpha_U&\leq&y_U&\leq&0,\\
&&y_D&=&0,\\
\end{array}\eqno(16)
$$
где $\alpha_j$ и $\beta_j$ --- весовые коэффициенты невязок для
переменных $\lambda_j$.

Таким образом, базисное оптимальное решение ЛП-задачи (16) будет
двойственно-допустимым для исходной ЛП-задачи (13) при условии, что
сумма невязок $c^Ty$ в оптимальной точке равна нулю.

С точки зрения реализации рассмотренного метода поиска
двойст\-вен\-но-допустимого решения существенными являются следующие
два обстоятельства.

1. Исходная ЛП-задача (13) и вспомогательная ЛП-задача (16) имеют один
и тот же вектор коэффициентов целевой функции и матрицу коэффициентов
ограничений и отличаются лишь правыми частями
ограничений-равенств\footnote{В пакете GLPK система
ограничений-равенств имеет вид $(I\:|\:-A)x=0$, где $I$ --- единичная
матрица, соответствующая вспомогательным переменным, $A$ --- исходная
матрица, соответствующая структурным переменным. Поэтому правые части
ограничений-равенств равны нулю для обеих задач (13) и (16).} и
границами переменных. Поэтому любой вариант двойственного
симплекс-метода, предназначенного для решения исходной задачи (13),
можно использовать без каких-либо изменений и для решения
вспомогательной задачи (16).

2. Для задачи (16) двойственно-допустимым является любое базисное
решение, поскольку все переменные в этой задаче имеют конечные нижние
и верхние границы. Поэтому решение этой задачи можно начинать с любого
заданного базиса.

\vspace{15mm}

\begin{center}
\rule{40mm}{.5pt}
\end{center}

\end{document}
