%% scaling.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{Масштабирование исходных данных}

В пакете GLPK используется следующий формат
ЛП-задачи:\footnote{Подробнее см. справочное руководство по пакету
GLPK.}
$$z=c^Tx_S+c_0,\eqno(1)$$
$$x_R=Ax_S,\eqno(2)$$
$$l_R\leq x_R\leq u_R,\eqno(3)$$
$$l_S\leq x_S\leq u_S,\eqno(4)$$
где $x_S$ --- вектор структурных переменных, $x_R$ --- вектор
вспомогательных переменных, $z$ --- целевая функция, $c$ --- вектор
коэффициентов целевой функции, $c_0$ --- постоянный член целевой
функции, $A$ --- матрица коэффициентов ограничений, $l_R$ --- вектор
нижних границ вспомогательных переменных, $u_R$ --- вектор верхних
границ вспомогательных переменных, $l_S$ --- вектор нижних границ
структурных переменных,\linebreak $u_S$ --- вектор верхних границ
структурных переменных.

Масштабирование задачи состоит в замене исходной матрицы коэффициентов
ограничений $A$ масштабированной матрицей:
$$\widetilde{A}=RAS,\eqno(5)$$
где $R={\rm diag}(r_{ii})$ и $S={\rm diag}(s_{jj})$ --- диагональные
матрицы масштабирования строк и столбцов, соответственно (диагональные
элементы этих матриц предполагаются положительными).

Формат масштабированной задачи совпадает с форматом исходной задачи
(1)---(4), при этом компоненты масштабированной задачи можно определить
исходя из основного соотношения (5) следующим образом.

Из (5) следует, что $A=R^{-1}\widetilde{A}S^{-1}$. Подставляя это
выражение в (2), получим:
$$x_R=R^{-1}\widetilde{A}S^{-1}x_S\Leftrightarrow Rx_R=\widetilde{A}(S^
{-1}x_S)\Leftrightarrow \widetilde{x}_R=\widetilde{A}\widetilde{x}_S,$$
где
$$\widetilde{x}_R=Rx_R\ \ \mbox{и}\ \ \widetilde{x}_S=S^{-1}x_S
\eqno(6)$$
есть масштабированные векторы вспомогательных и структурных переменных.

Из (6) следует, что $x_R=R^{-1}\widetilde{x}_R$. Подставляя это
выражение в (3), получим:
$$l_R\leq R^{-1}\widetilde{x}_R\leq u_R\Leftrightarrow Rl_R\leq
\widetilde{x}_R\leq Ru_R\Leftrightarrow\widetilde{l}_R\leq\widetilde{x}
_R\leq\widetilde{u}_R,$$
где
$$\widetilde{l}_R=Rl_R\ \ \mbox{и}\ \ \widetilde{u}_R=Ru_R\eqno(7)$$
есть масштабированные векторы нижних и верхних границ вспомогательных
переменных.

Из (6) также следует, что $x_S=S\widetilde{x}_S$. Подставляя это
выражение в (1) и (4), получим:
$$z=c^TS\widetilde{x}_S+c_0=(Sc)^T\widetilde{x}_S+c_0=\widetilde{c}^T
\widetilde{x}_S+c_0,$$
$$l_S\leq S\widetilde{x}_S\leq u_S\Leftrightarrow S^{-1}l_S\leq
\widetilde{x}_S\leq S^{-1}u_S\Leftrightarrow \widetilde{l}_S\leq
\widetilde{x}_S\leq\widetilde{u}_S,$$
где
$$\widetilde{c}=Sc\eqno(8)$$
есть масштабированный вектор коэффициентов целевой функции, а
$$\widetilde{l}_S=S^{-1}l_S\ \ \mbox{и}\ \ \widetilde{u}_S=S^{-1}u_S
\eqno(9)$$
есть масштабированные векторы нижних и верхних границ структурных
переменных.

Таким образом, переход от исходной задачи (1)---(4) к масштабированной
задаче в том же формате для заданных масштабирующих матриц $R$ и $S$
состоит в замене компонент исходной задачи масштабированными
компонентами в соответствии с формулами (5), (7), (8) и (9).

\section{Обратное масштабирование решения}

В результате решения масштабированной ЛП-задачи компоненты решения
получаются масштабированными. Поэтому для получения решения исходной
задачи (т.~е. немасштабированного решения) необходимо выполнить
обратное масштабирование компонент решения. Рассмотрим соответствующие
формулы.

Формулы обратного масштабирования вспомогательных и структурных
переменных непосредственно следуют из (6):
$$x_R=R^{-1}\widetilde{x}_R\ \ \mbox{и}\ \ x_S=S\widetilde{x}_S.
\eqno(10)$$

Чтобы вывести формулы обратного масштабирования двойственных
переменных (множителей Лагранжа), обратимся к двойственной системе
ограничений-равенств, которая для задачи (1)---(4) имеет следующий вид:
$$(I\:|-A)^T\pi+
\left(\begin{array}{@{}c@{}}\lambda_R\\\lambda_S\\\end{array}\right)=
\left(\begin{array}{@{}c@{}}0\\c\\\end{array}\right),\eqno(11)$$
где $\pi$ --- вектор множителей Лагранжа для ограничений-равенств (2),
\linebreak $\lambda_R$ --- вектор множителей Лагранжа для
ограничений-неравенств (3),\linebreak $\lambda_S$ --- вектор множителей
Лагранжа для ограничений-неравенств (4). (Множители $\lambda_R$ есть
переменные, двойственные к вспомогательным переменным $x_R$,
а множители $\lambda_S$ --- переменные, двойственные к структурным
переменным $x_S$.)

Запишем систему (11) в развернутом виде:
$$\left\{\begin{array}{@{}r@{\ }c@{\ }l}
\pi+\lambda_R&=&0,\\
-A^T\pi+\lambda_S&=&c.
\end{array}\right.$$
Из первого равенства следует, что $\pi=-\lambda_R$. Подставляя это
выражение во второе равенство, получим основное равенство для
двойственных переменных:
$$A^T\lambda_R+\lambda_S=c.\eqno(12)$$

В случае масштабированного решения равенство (12) содержит
масштабированные компоненты:
$$\widetilde{A}^T\widetilde{\lambda}_R+\widetilde{\lambda}_S=
\widetilde{c}.\eqno(13)$$
Из (5) следует, что $\widetilde{A}^T=(RAS)^T=SA^TR$. Подставим это
выражение, а также выражение (8) в (12):
$$SA^TR\widetilde{\lambda}_R+\widetilde{\lambda}_S=Sc\Leftrightarrow
A^T(R\widetilde{\lambda}_R)+(S^{-1}\widetilde{\lambda}_S)=c
\Leftrightarrow A^T\lambda_R+\lambda_S=c,$$
откуда следует, что:
$$\lambda_R=R\widetilde{\lambda}_R\ \ \mbox{и}\ \ \lambda_S=S^{-1}
\widetilde{\lambda}_S,\eqno(14)$$
где $\lambda_R$ и $\lambda_S$ --- немасштабированные векторы
двойственных переменных.

Таким образом, переход от компонент решения масштабированной задачи
$\widetilde{x}_R$, $\widetilde{x}_S$, $\widetilde{\lambda}_R$,
$\widetilde{\lambda}_S$ к соответствующим компонентам решения исходной
(немасштабированной) задачи $x_R$, $x_S$, $\lambda_R$, $\lambda_S$
осуществляется по формулам (10) и (14).

\end{document}
