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

Задача ГП без ограничений: двойственность

< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Аннотация: Лекция посвящена теории двойственности для задач ГП без ограничений. Приводится формулировка основной теоремы двойственности. Вводится понятие степени трудности задачи ГП. Приводится постановка двойственной задачи в терминах базисных переменных. Для задач ГП со степенью сложности 0 и 1 на примерах показано, как для их решения можно использовать двойственную задачу.

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

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

Рассмотрим определенную в "Задача ГП без ограничений" задачу ГП без ограничений:

g(x)=\sum\limits_{i=1}^{n}c_{i}\prod\limits_{j=1}^{m}{x_{j}}^{a_{ij}}\rightarrow\min, ( 32)
x_j>0,\ c_i>0, \ a_{ij}\in \mathbb{R}.

Двойственной задачей для задачи (32) называется следующая задача:

v(w) = \prod\limits_{i=1}^{n}\Bigl(\frac{c_i}{w_i}\Bigr)^{w_i}\rightarrow\max ( 33)

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

\sum\limits_{i=1}^{n}w_{i}a_{ij} = 0,\ j = \overline{1,m}, ( 34)
\sum\limits_{i=1}^{n} w_{i}=1, ( 35)
w_i>0,\ i=\overline{1,n}. ( 36)

Функция v(w) называется двойственной функцией для функции g(x), переменные w_i,\ i=\overline{1,n} называются двойственными переменными. Ограничения (34) называются условиями ортогональности, ограничение (35) называется условием нормальности.

Систему ограничений (34)--(35) можно записать в матричном виде. Здесь и далее будем использовать матричную форму записи, принятую в теории двойственности: вектор двойственных переменных - левый элемент умножения, матрица ограничений - правый. Тогда получим формулу

w\overline{A}=b, ( 37)

где \overline{A}=||A|\mathbf{1}||,\ b_j=0,\ j=\overline{1,m},\ b_{m+1}=1.

Прямая и двойственная задачи связаны следующей теоремой, доказательство которой имеется, например, в [5]:

Теорема 7 (теорема двойственности) Если задача (32) разрешима и достигает своего минимума в точке x^{*}, то двойственная задача (33) также разрешима и достигает своего максимума в некоторой точке w^{*}. При этом выполняются следующие равенства:

g(x^*) = v(w^*), ( 38)
c_i\prod\limits_{j=1}^{m}({x^{*}_j})^{a_{ij}} = v(w^*)
w_{i}^{*}, \ i=\overline{1,n}. ( 39)

Из теоремы двойственности следует, что для нахождения оптимального решения прямой задачи ГП можно попытаться сначала найти оптимальное решение двойственной задачи. Если решение двойственной задачи существует, то оптимальное решение прямой задачи удовлетворяет уравнениям (39). В противном случае прямая задача не имеет оптимального решения.

Такой подход особенно просто реализовать, когда двойственная задача имеет единственное допустимое решение, которое, естественно, будет и оптимальным. Приведем примеры.

Пример 27 Докажем, используя теорему двойственности, что следующая задача ГП не имеет оптимального решения:

g(x) = x_1^{2} + 2x_1x_2+ x_2^{-2} \rightarrow  \min,
x_j>0,\ j=1, 2.

Определим сначала двойственную функцию для позинома g(x), используя формулу (33). Позином состоит из трех мономов, следовательно, двойственная функция имеет три переменные: w_1, w_2, w_3. Вектор коэффициентов позинома c = (1, 2, 1). Следовательно, двойственная функция для позинома g(x) имеет вид:

v(w) =
  \left(\frac{1}{w_1}\right)^{w_1}\left(\frac{2}{w_2}\right)^{w_2}\left(\frac{1}{w_3}\right)^{w_3}.

Запишем теперь условия ортогональности для позинома (формулы (34)). Поскольку в позином g(x) входят две переменные x_1,\ x_2, то условия ортогональности состоят из двух равенств. Матрица экспонент позинома g(x)

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

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

\begin{array}{rcrcrcr}
     2w_1&+&w_2&&&=&0, \\
     &&w_2&-&2w_3&=&0. 
\end{array} ( 40)

Запишем условие нормальности (формулы (35)):

w_1 + w_2 + w_3 = 1.

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

v(w) =
\left(\frac{1}{w_1}\right)^{w_1}\left(\frac{2}{w_2}\right)^{w_2}\left(\frac{1}{w_3}\right)^{w_3}\rightarrow\max

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

\begin{array}{rcrcrcr}
2w_1&+&w_2&&&=& 0, \\
&&w_2&-&2w_3&=& 0, \\
w_1&+&w_2&+&w_3&=& 1,
\end{array} ( 41)
w_i>0,\ i=1, 2, 3.

Cистема линейных уравнений (41) имеет единственное решение: w_{1}^{*} = -0.5, w_{2}^{*} = 1, w_3^{*} = 0.5, которое не удовлетворяет условию (36): w_i>0\ (i = 
1, 2, 3). Это означает, что не существует допустимого решения двойственной задачи, следовательно, не существует и оптимального решения этой задачи. Из теоремы двойственности следует, что в этом случае прямая задача ГП не имеет оптимального решения.

Пример 28 Решим следующую задачу ГП, используя теорему двойственности:

g(x) = x_{1}^{-5}x_{2}^{2} + 2x_{1}^{2}x_{2}^{-1} + 3x_{1}\rightarrow
  \min,
x_j>0,\ j=1, 2.

Определим сначала двойственную функцию для позинома g(x). Позином состоит из трех мономов, следовательно, двойственная функция имеет три переменные: w_1, w_2, w_3. Вектор коэффициентов позинома c
=(1, 2, 3). Следовательно, двойственная функция для позинома g(x) имеет вид:

v(w) =
  \left(\frac{1}{w_1}\right)^{w_1}\left(\frac{2}{w_2}\right)^{w_2}\left(\frac{3}{w_3}\right)^{w_3}.

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

A=\left\|
\begin{array}{rr}
  -5 & 2 \\
  2 & -1 \\
  1 & 0  
\end{array}
\right\|,

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

\begin{array}{rcrcrcr}
     -5w_1&+&2w_2&+&w_3&=&0, \\
     2w_1&-&w_2&&&=&0. 
\end{array} ( 42)

Запишем условие нормальности (формула (35)):

w_1 + w_2 + w_3 = 1.

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

v(w) =
\left(\frac{1}{w_1}\right)^{w_1}\left(\frac{2}{w_2}\right)^{w_2}\left(\frac{3}{w_3}\right)^{w_3}\rightarrow\max

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

\begin{array}{rcrcrcr}
-5w_1&+&2w_2&+&w_3&=& 0, \\
2w_1&-&w_2&&&=& 0, \\
w_1&+&w_2&+&w_3&=& 1,
\end{array} ( 43)
w_i>0,\ i=1, 2, 3.

Так как система линейных уравнений (43) имеет единственное решение: w_{1}^{*} = 0.25, w_{2}^{*} = 0.5, w_3^{*} = 0.25 и оно удовлетворяет условию w_i>0\
(i=1, 2, 3), то это оптимальное решение двойственной задачи. Теперь мы можем вычислить оптимальное значение двойственной функции. Ограничим точность вычисления значения v(w^*) и наших дальнейших вычислений двумя знаками после запятой:

v(w^*)
  =\left(\frac{1}{0.25}\right)^{0.25}\left(\frac{2}{0.5}\right)^{0.5}\left(\frac{3}{0.25}\right)^{0.25}=
  5.26 .

Согласно теореме двойственности

g(x^*) = v(w^*) = 5.26.
Двойственная переменная w_i показывают, каков вклад монома u_i в минимальное значение целевой функции g(x^*). Следовательно, вклад первого монома в целевую функцию составляет 0.25, вклад второго - 0.5, а вклад третьего - 0.25.

Осталось определить оптимальное решение прямой задачи. Используем для этого формулы (39) из теоремы двойственности. Требуется решить нелинейную систему из трех уравнений с двумя неизвестными:

\begin{array}{rcr}
     x_{1}^{-5}x_{2}^{2}&=&5.26\times 0.25, \\
     2x_{1}^{2}x_{2}^{-1}&=&5.26\times 0.50, \\
     3x_{1}&=&5.26\times 0.25.
\end{array} ( 44)

Из третьего уравнения системы (44) находим, что {x}_{1}^{*} = 0.44. Из второго уравнения получаем, что {x}_{2}^{*} = 0.15. Не должен удивлять тот факт, что при нахождении решения системы (44) не использовалось первое уравнение системы. Это объясняется тем, что в этой системе одно из уравнений (любое) является избыточным.

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

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

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

Олег Корсак
Олег Корсак
Латвия, Рига
Игорь Янковский
Игорь Янковский
Россия, Нальчик