Санкт-Петербургский государственный университет
Опубликован: 08.06.2009 | Доступ: свободный | Студентов: 663 / 131 | Оценка: 4.65 / 4.35 | Длительность: 07:44:00
Специальности: Программист
Лекция 5:

Задача ГП с ограничениями

< Лекция 4 || Лекция 5: 123 || Лекция 6 >

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

Как и в случае задачи ГП без ограничений, задаче ГП с ограничениями можно сопоставить двойственную задачу. При некоторых предположениях о свойствах прямой и двойственных задач оптимальные значения их целевых функций равны. Это дает возможность получить решение прямой задачи, решив двойственную задачу.

Двойственная задача к задаче GP (задача DGP ) имеет вид:

\mbox{ Задача DGP:}
\qquad
  v(l,w)=\Bigl(\prod\limits_{i=1}^{n}(c_{i}/w_{i})
  ^{w_{i}}\Bigl)\Bigl(\prod\limits_{k=1}^{p}{l_{k}(w)}^{l_{k}(w)}\Bigl)\rightarrow\max ( 65)

при ограничениях:

l_{k}(w) = \sum\limits_{i\in [k]}w_{i},\quad k=\overline{0,p}, ( 66)
l_{0}(w) =1, ( 67)
\sum\limits_{i=1}^{n}w_{i}a_{ij}=0, \quad
 j=\overline{1, m}, ( 68)
w_{i},\ l_{k} \geq 0,\ k=\overline{0,p},\ i=\overline{1,n}.

Ограничение (67) называется условием нормальности, ограничения (68) - условиями ортогональности. Для функции v(l,w) полагаем, что y^y =
y^{-y} = 1 для y = 0.

Пример 34 Запишем двойственную задачу для задачи ГП из примера 31.

Определим двойственную функцию (65) для задачи ГП. Поскольку в задаче пять мономов, следовательно, двойственная функция имеет пять переменных. Вектор коэффициентов задачи c =
(40, 20, 20, 1/3, 4/3), l_{1}(w) = w_4 + w_5. Следовательно, двойственная функция для задачи ГП имеет вид:

v(w) = \left(\frac{40}{w_1}\right)^{w_1}\left(\frac{20}{w_2}\right)^{w_2}
  \left(\frac{20}{w_3}\right)^{w_3}\left(\frac{1/3}{w_4}\right)^{w_4}\left(\frac{4/3}{w_5}\right)^{w_5}
  (w_4 + w_5)^{(w_4 + w_5)}.

Запишем теперь условия ортогональности (68). Поскольку в прямую задачу входят три переменные x_1,\ x_2,\ x_3, то условия ортогональности состоят из трех равенств. В каждом равенстве пять слагаемых, поскольку в задаче пять мономов. Матрица экспонент задчи

A=\left\|
\begin{array}{rlr}
  -1 & -0.5 & -1 \\
  1 & \phantom{-}0 & 1 \\
  1 & \phantom{-}1 & 1 \\
  -2 & -2 & 0 \\
  0 & \phantom{-}0.5 & -1
\end{array}
\right\|,

где j -й столбец образован показателями степеней при j -й переменной (j=1, 2, 3). По формуле (68) условия ортогональности для задачи ГП имеют вид:

\begin{array}{rcrcrcrcrcr}
     -w_1&+&w_2&+&w_3&-&2 w_4&&&=&0, \\
     -0.5 w_1&&&+&w_3&-&2 w_4&+&0.5 w_5&=&0, \\
      -w_1&+&w_2&+&w_3&&&-&w_5&=&0.
\end{array}

Запишем условие нормальности. Поскольку позином g_{0}(x) состоит из трех мономов, то в условие нормальности входят три слагаемых. Согласно формуле (67) условие нормальности имеет вид:

w_1 + w_2 + w_3 = 1.

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

v(w) = \left(\frac{40}{w_1}\right)^{w_1}\left(\frac{20}{w_2}\right)^{w_2}
  \left(\frac{20}{w_3}\right)^{w_3}\left(\frac{1/3}{w_4}\right)^{w_4}\left(\frac{4/3}{w_5}\right)^{w_5}
  (w_4 + w_5)^{(w_4 + w_5)}\rightarrow\max,

при ограничениях

\begin{array}{rcrcrcrcrcr}
     -w_1&+&w_2&+&w_3&-&2 w_4&&&=&0, \\
     -0.5 w_1&&&+&w_3&-&2 w_4&+&0.5 w_5&=&0, \\
      -w_1&+&w_2&+&w_3&&&-&w_5&=&0,  \\
      w_1&+&w_2&+&w_3&&&&&=&1,
\end{array}
w_{i}\geq 0,\ i=\overline{1,5}.

Прежде чем показать, как связаны между собой решения задач GP и DGP, введем следующие определения.

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

Задача DGP называется совместной, если существует по крайней мере один неотрицательный вектор w, удовлетворяющий ее ограничениям.

Методы решения для задачи ГП с ограничениями базируются на теоремах, отражающих связь между прямой и двойственной задачами. Приведем формулировки двух основных теорем. Их доказательства можно найти, например, в [5].

Теорема 9 Если пара векторов (x, w) являются допустимыми решениями задач GP и DGP соответственно, то выполняется неравенство

g_{0}(x)\geq  v(w).

Равенство

g_{0}(x)=   v(w)

достигается тогда и только тогда, когда выполняются следующие условия:

g_{0}(x) w_{i}= c_i\prod\limits_{j=1}^{m}{x_j}^{a_{ij}},\
    i\in [0],
w_{i}=l_{k}(w)  c_i\prod\limits_{j=1}^{m}{x_j}^{a_{ij}},\ i\in
    [k],\ k=\overline{1,p}.

В следующей теореме сформулированы достаточные условия существования оптимального решения задачи GP.

Теорема 10 Если задача GP совместна и существует допустимое решение w двойственной задачи DGP, то существует вектор x^*, который является оптимальным решением задачи GP.

Связь между ГП и выпуклым программированием

Прежде чем показать, какая связь существует между ГП и выпуклым программированием, напомним определения выпуклого множества, выпуклой функции и задачи выпуклого программирования.

Множество точек S\subset E_N называется выпуклым, если для любых двух точек x и y из S соединяющий их отрезок xy содержится в S.

Функция f, определенная на выпуклом множестве S\subset E_N, называется выпуклой, если для любых двух точек x и y из S выполняется неравенство

f(\alpha_{1}x + \alpha_{2}y)\leq \alpha_{1}f(x) +
  \alpha_{2}f(y),

где \alpha_{1},\ \alpha_2 \geq 0, \alpha_{1}+\alpha_{2}=1.

Задача выпуклого программирования заключается в минимизации выпуклой функции f на выпуклом множестве S, которое содержится в области определения функции f: \min\limits_{S}f.

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

Покажем теперь, что при помощи монотонной замены переменных задачу ГП можно заменить эквивалентной задачей выпуклого программирования.

Выполним следующую замену переменных:

x_{j} = e^{z_j},\ j=\overline{1,m}.

Для записи результатов подстановки мы будем использовать другое обозначение: x_{j} = \exp(z_j), более удобное, когда степень экспоненты является сложным выражением. Выполнив замену, получим положительные показательные функции вида

f_k(z)=g_{k}(e^{z_1}, \dots,  e^{z_m}) =
  \sum\limits_{i\in [k]}c_{i}\exp\left(\sum\limits_{j=1}^{m}a_{ij}z_{j}\right),\ k=\overline{0,p}.

Заметим, что переменные z_j \in \mathbb{R}, тогда как переменные x_j>0.

Таким образом, получим следующую задачу, которую мы будем называть преобразованная задача GP_z :

f_{0}(z)\rightarrow\min

при ограничениях

f_k(z)\leq 1,\ k=\overline{1,p},

где

f_k(z) =
  \sum\limits_{i\in[k]}c_{i}\exp\left(\sum\limits_{j=1}^{m}a_{ij}z_{j}\right),
  \ k=\overline{0,p},\ c_i>0,\ a_{ij}\in \mathbb{R},\
z_j\in\mathbb{R}.

Пример 35 Запишем ГП из примера 31 в виде преобразованной задачи ГП.

Вектор коэффициентов целевой функции g_0 равен

c_{[0]} = (40, 20, 20),
матрица экспонент целевой функции g_{0} равна

A_{[0]}=\left\|
\begin{array}{rlr}
  -1 & -0.5 & -1 \\
  1 & \phantom{-}0 & 1 \\
  1 & \phantom{-}1 & 1 
\end{array}
\right\|,

следовательно, преобразованная целевая функция имеет вид

f_{0}(z) = 40 \exp(-z_1-0.5z_2-z_3) + 20 \exp(z_1+z_3)+20 \exp(z_1 + z_2 +
  z_3).

Вектор коэффициентов ограничения g_1 равен

c_{[1]} = (1/3, 4/3),

матрица экспонент ограничения g_{1} равна

A_{[1]}=\left\|
\begin{array}{rlr}
  -2 & -2 & 0 \\
  0 & \phantom{-}0.5 & -1 
\end{array}
\right\|,

следовательно, преобразованное ограничение имеет вид

f_{1}(z) = 1/3 \exp(-2z_1-2z_2) + 4/3 \exp(0.5z_2 - z_3)\leq 1.

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

f_{0}(z) = 40 \exp(-z_1-0.5z_2-z_3) +
20 \exp(z_1+z_3)+20 \exp(z_1 + z_2 +
  z_3)\rightarrow\min

при ограничении

f_{1}(z) = 1/3 \exp(-2z_1-2z_2) + 4/3 \exp(0.5z_2 - z_3)\leq 1.

Сформулируем основное свойство преобразованной задачи GP_z в виде теоремы, доказательство которой можно найти, например, в [5].

Теорема 11 Преобразованная задача GP_z является выпуклой задачей. Все положительные показательные функции f_{k}(z) выпуклы.

Из теоремы следует, что для решения задач ГП можно использовать методы, разработанные специально для решения задач выпуклого программирования, предварительно преобразовав задачу ГП в задачу вида GP_z.

< Лекция 4 || Лекция 5: 123 || Лекция 6 >
Васильевич Иван
Васильевич Иван

Так это же динамическое программирование на основе математической индукции.