- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •1. ЗАДАЧИ ОПТИМИЗАЦИИ
- •1.1. Основные понятия
- •1.2. Некоторые простые примеры
- •1.3. Задачи оптимального проектирования
- •1.4. Задачи оптимального планирования
- •1.5. Классы задач оптимизации
- •Вопросы и задачи
- •2. МЕТОДЫ ОДНОМЕРНОЙ МИНИМИЗАЦИИ
- •2.1. Предварительные замечания
- •2.3. Оптимальный пассивный поиск
- •2.4. Методы последовательного поиска
- •2.5. Сравнение методов последовательного поиска
- •2.6. Методы полиномиальной аппроксимации
- •2.7. Методы с использованием производных
- •Вопросы и задачи
- •3. МИНИМИЗАЦИЯ ВЫПУКЛЫХ ФУНКЦИЙ
- •3.2. Выпуклые функции
- •3.4. Условия минимума выпуклых функций
- •3.5. Сильно выпуклые функции
- •ф{t) = (grad/(а; + th), h)
- •3.6. Примеры минимизации квадратичных функций
- •3.7. Минимизация позиномов
- •Qj = '%2aijci = Q> J = !.*»•
- •Вопросы и задачи
- •4. ЧИСЛЕННЫЕ МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ
- •4.1. Релаксационная последовательность
- •4.2. Методы спуска
- •4.4. Минимизация квадратичной функции
- •4.5. Сопряженные направления спуска
- •5. АЛГОРИТМЫ МЕТОДОВ ПЕРВОГО И ВТОРОГО ПОРЯДКОВ
- •|iufc|
- •5.3. Метод Ньютона
- •5.4. Модификации метода Ньютона
- •5.5. Квазиньютоновские методы
- •Вопросы и задачи
- •6. АЛГОРИТМЫ ПРЯМОГО ПОИСКА
- •6.1. Особенности прямого поиска минимума
- •6.2. Использование регулярного симплекса
- •6.4. Циклический покоординатный спуск
- •6.5. Метод Хука — Дживса
- •Щ + bjej,
- •6.6. Методы Розенброка и Пауэлла
- •Вопросы и задачи
- •7. АНАЛИТИЧЕСКИЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •7.2. Минимизация при ограничениях типа равенства
- •7.4. Седловая точка функции Лагранжа
- •7.5. Двойственная функция
- •7.6. Геометрическое программирование
- •Вопросы и задачи
- •8. ЧИСЛЕННЫЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •8.1. Метод условного градиента
- •8.2. Использование приведенного градиента
- •8.5. Метод проекции антиградиента
- •СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
- •ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
- •ОГЛАВЛЕНИЕ
- •Математика в техническом университете Выпуск XIV
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
7.6.Геометрическое программирование
Вобщей задаче геометрического программирования
{ у0(х) -A min; |
|
|
|
|||
yk(x )^ l, |
k = l,K , |
|
|
|||
и целевая функция уо{х), и левые части |
ограничений удДж), |
|||||
k = 1 , К, являются позиномамщ |
определенными на |
положи |
||||
тельном ортанте R+. Поэтому мы можем записать |
|
|||||
|
|
то |
|
|
|
|
yo(®) = 5 ^ c 0iPoi(®), |
|
(7.21) |
||||
|
|
t=i |
|
|
|
|
где cot е R+, i = 1, mo, |
|
|
|
|
|
|
|
n |
0(o) |
|
______ |
|
|
Po»(®) = |
I l ^ i 0 |
г = |
1, m 0, |
(7.22) |
||
|
j =i |
|
|
|
|
|
a\f 6 R, г = 1 , mo, j = 1, n. |
|
|
|
|
|
|
Аналогично |
|
|
|
|
|
|
771A: |
|
|
|
|
|
|
Ук{х ) ~ ^ |
|
:iPki{x )i k = |
l ,K , |
(7.23) |
||
2=1 |
|
|
|
|
|
|
где Cfci E R+, к = 1 , AT, г = |
1 , m0, |
|
|
|
|
|
n |
(fc) |
|
____ |
|
_____ |
|
Pkг(®) = П х?; |
/г = 1,Х, |
г = 1, mjt, |
(7.24) |
|||
j=1 |
|
|
|
|
|
|
(A:)
aj • — некоторые действительные числа.
Особенность сформулированной задачи оптимизации в том, что целевая функция и левые части ограничений определены не на всем n-мерном линейном арифметическом пространстве.
Поэтому непосредственное использование приемов решения об щей задачи нелинейного программирования (см. 7.3-7.5) в дан ном случае невозможно. Выходом из положения может быть замена переменных Xj = j = 1 , гг, преобразующая позином в функцию, определенную на всем линейном арифметическом пространстве. Однако в задачах геометрического программи рования проще использовать другой подход, базирующийся на
неравенстве взвешенных средних
тWi
г=1
где у* > 0, Wi > 0, г —1 , т , и
т
J2 wi = !•
г=1
В данном случае удобно преобразовать неравенство таким образом, чтобы в нем не использовались нормированные веса. Для этого выполним замену и){ = А*/А, %= 1 , га, где Л = Ai + ...
+ Am. Тогда неравенство взвешенных средних можно запи сать в виде
771 771 л » /\ 771 \ /\
1 » П ( £ ) |
-*П (£) |
(7.25) |
|||
1=1 |
1=1 |
1 |
1=1 |
1 |
|
Используем это неравенство для оценки позиномов Ук(х). |
|||||
Выберем в качестве весов произвольные числа Аы ^ 0, i = |
1 , г а *, |
||||
k = О, К, и положим |
|
|
|
|
|
|
|
ТЩ |
|
|
|
|
А* = ][> *< , |
k = 0 JC. |
|
|
|
|
|
г= 1 |
|
|
|
Тог^а? учитывая запись позиномов Ук(х) в виде суммы функций ckiPki(x) специального вида, из неравенства (7.25) получаем
У к ( х ) > \ кЦ ( — Р^ Х ) ) Хи/Хк к = 0 ,К . |
(7.26) |
Все части этих неравенств положительны. Поэтому, возведя обе части неравенства для позинома к = 1, К, в степень А* и перемножив левые и правые части всех полученных нера венств, получим новое неравенство
ГКА‘м > П Л2* |
CkiPkii'^) *ki |
||
^ki |
) |
||
к=1 |
к=1 |
|
Для точек х допустимого множества 12 выполняются нера венства Ук{х) ^ 1, к = 1 , К. Значит, левая часть записанного неравенства не превышает единицы и
CkiPkijx)
^ki
Умножая это неравенство на неравенство (7.26) для целевой функции уо(аз) (т.е. при к = 0), возведенное в степень Ао, заключаем, что
^ (* )> П ^ П (^ г М )Л“ |
<7-27> |
|
к=0 х=1 |
кг |
|
Напомним, что последнее неравенство верно при произвольном выборе чисел А*; ^ 0 , i = 1 , m*, к = 0 , К.
Пусть числа Аоь i = 1, гао, связаны равенством |
|
то |
|
Ao = E A 0i = l. |
(7.28) |
1=1 |
|
Тогда, используя выражения (7.22) и (7.24) для Ркг(х), г = 1, т * , к = 0,К, неравенство (7.27) можно преобразовать к виду
/ 0 \ \ n tk \ 71
»и,(п(Э-)П<'П(ё)“П (7.29)
ai = Y l'5 2 aij)Xki' 3 = 1» n■ |
(7.30) |
k=0 i=1 |
|
Пусть числа A^, k = 1, if, г = 1, m*, выбраны так, что выпол няются условия ортогональности, т.е. ау = 0, j = 1 , п. Тогда правая часть в (7.29) не будет зависеть от переменных ау и мы придем к соотношению
|
/ т о |
\ \ К rrik |
ч |
|
уоиК,П(Э“)П лг*П(^)‘‘=ад- |
(7-31) |
|||
где w £ |
— точка с неотрицательными координатами |
^ 0, |
||
к = 0, if, |
г = 1, т * , т |
= т о + mi + ... + тк- Функцию d(tu), |
как и в случае задачи минимизации позинома без ограничений, называют двойственной функцией по отношению к позиному
w>(*).
Если множество ТУ* точек w £ R™, координаты которых удовлетворяют равенству (7.28) и равенствам (7.30) с ау = 0, j = I, п, не пусто, то целевая функция уо(х) на ТУ*, согласно (7.31), ограничена снизу и имеет конечную точную нижнюю грань М > 0, причем М ^ d(w) для любого w £ 1У*. Выбрав произвольную точку w £ ТУ*, можно использовать значение d(w) в качестве оценки снизу точной нижней грани целевой функции.
Очевидно, что если уо(®*) = d(w*) для некоторых точек х* £ О, и w* £ ТУ*, то в точке ж* целевая функция достигает наименьшего значения в Q, а в точке w* двойственная функция достигает наибольшего значения в ТУ*. Можно показать*, что верно и обратное: если целевая функция достигает в Q наимень шего значения в точке ж*, а двойственная функция достигает в ТУ* наибольшего значения в точке ги*, то уо(х*) = d(w*). Таким
См.: Евдоким ов А .Г .
образом, решение задачи минимизации функции уо{х) в П мож но искать, решая задачу поиска точки максимума двойственной функции.
Точку w* и максимальное значение d* = d(w*) двойственной функции d(w) находят как решение задачи
fd(w) —> max; mo
= 1 ,
<г=1
К771*.
. fc=0 г=1
Значение d* является наименьшим значением функции уо(х), которое она принимает в точке х*. Эту точку можно найти, исходя из равенства уо(х*) = d*
Отметим, что неравенство уо(х) ^ d(w) получено путем многократного применения неравенства взвешенных средних (7.25), которое обращается в равенство при выполнении усло вий j/jA/Aj = 1 , г = 1 , т. Следовательно, равенство уо(х*) = = d(w*) означает, что все неравенства (7.26) превращаются в равенства, причем j/jt(®*) = 1, к = 1 , К. А это возможно лишь при выполнении условий
AkckiPki(?'*') , |
i = l,m k, k = 0 |
,K . |
|
Aki |
|||
|
|
Таким образом, точку х* можно найти как решение системы уравнений
|
Poi{x) = — d*, |
г = 1,ш 0; |
< |
С°* |
(7.32) |
|
Pki(x) = i - ^ - , |
i = l,m kt k = l,K , |
<*kcki
где учтено, что в соответствии с (7.28) Ао = 1. Заменой Xj = = е^, j = l,n, и последующим логарифмированием система
(7.32) преобразуется в систему m линейных алгебраических уравнений относительно п неизвестных £j, j = 1 , n.
К задаче геометрического программирования сводятся не которые задачи оптимизации, в которых целевая функция не является позиномом. Например, функция
fo(x) = yi(x) + y2{x)(y3(x))0, х € R” , |
(7.33) |
где yi(®), i = 1, 2, 3, — позиномы, a /3 ^ 0, в общем случае не является позиномом (она будет позиномом либо в случае, когда уз(х) состоит лишь из одного слагаемого, либо в случае нату рального 0). Покажем, что задача минимизации функции fo(x) в Rn равносильна задаче геометрического программирования
y(z) = 2/1(®) +У2 {х)х^ + 1 ->• min
(7.34)
3^71+1
гд е« = (ж, xn+i) = (a:i, х2, ..., i n+ i) 6 ^ .
Отметим, что если х* € R” — точка минимума функции / о(ф), то точка z* = (®*, ®*+1) е R?+1, где ®*+1 = уз(®*), удо влетворяет ограничению задачи (7.34). Поэтому эта точка принадлежит допустимому множеству П задачи (7.34) и
/о(®*) = yi(®*) + У2 (х*) (уз{х*))0 =
=У1(х*)+У2{х*){х„+1)1} = y{z*) ^miny(z). (7.35)
Вто же время из ограничения задачи вытекает, что для любой точки z = (х , хп+\) Е верно неравенство хп+\ > уз(ж).
Следовательно,
y {z )= y i(x )+ y 2 (x)xP+ 1 >
^yi(®) + У2 (х){уз(х)У = /о(®) > /о(®*)
инаименьшее значение функции y(z) на множестве П не может быть меньше fo(x*).
Таким образом, задача минимизации функции /о(аз) в R+ и задача геометрического программирования (7.34) эквива лентны.
Пример 7.4. Найдем минимум функции
предполагая, что коэффициенты а, Ьположительны.
Целевая функция рассматриваемой задачи имеет вид (7.33),
где J/1 (аз) = |
а/{х\х2), у2 (х) = 6, у3(аз) = х\ + х\, (3 = 1 / 2, аз = |
= (a?i, Ж2). |
В соответствии с изложенным выше сформулиро |
ванная задача равносильна задаче геометрического програм мирования
(7.36)
где z = (T I , х2, х3) е R+.
Сопоставляя вид целевой функции y(z) с представлениями (7.21) и (7.22), а вид левой части ограничения с представления ми (7.23) и (7.24), определяем, что в данном случае п = 3, т о = 2,
Перейдем к задаче максимизации двойственной функции d(w). Так как то = т\ = 2, то
w = (Aoi, А02, Ац , А12) G R?.
Для упрощения выкладок введем обозначения А01 = toi, А02 =
= |
w2, Ац = ю3 и А12 = 1U4. Тогда условие нормировки |
(7.28) |
и |
условия ортогональности — уравнения (7.30) при aj |
= 0 — |
приводят к системе уравнений
f W i + W 2 = 1,
—2w\ + 2ws = О,
—w\ + 2w± = О,
\ 0 ,5 U >2 — — г^4 = 0.
Множество решений этой системы есть множество W *, на ко тором необходимо найти наибольшее значение двойственной
функции. |
В системе четыре уравнения и четыре неизвест |
|||
ных. Несложно убедиться в том, что система |
имеет |
един |
||
ственное |
решение w\ = г^з = 1/4, W2 = 3/4, |
= |
1/8. |
Таким |
образом, множество W* содержит единственную точку w* = = (1/4, 3/4, 1/4, 1/8), а задача поиска максимального значения двойственной функции оказывается тривиальной. В соответ ствии с (7.31) двойственная функция d(io) имеет вид
Ее значение d* в точке го* равно |
|
|
|
||||
d* = |
_ а \ 1/4 / _ Ь \ |
3/4/3 \ 3/8/ 1 у / 4 / 1 \ г/8 _ |
!/ 8 |
||||
1/а) |
1з/4У |
\8/ |
\1/4/ |
\ 1/ 8/ |
— |
V108 / |
|
Чтобы найти координаты точки z* = (х|, т?!, |
|
в которой |
|||||
функция y(z) |
достигает на множестве О, наименьшего значе |
ния, решим систему уравнений (7.32), в данном случае прини мающую следующий вид:
a
о = w\d\ Х{Х2
ЬхУ2 = w^d*,
f l |
= |
u>3 |
хз |
|
w$ +w\ |
А |
_ |
w\ |
Хз |
|
год +io| |
Эту систему можно решить и не преобразовывая ее в систе му линейных уравнений с помощью соответствующей замены переменных. В результате будем иметь
* |
ч/бd* |
y/bdt |
2 |
1 |
4Ь |
4Ъ ' |
х3 ~ |
|
Таким образом, исходная функция /о (^1,^2) достигает наи меньшего значения точке х* £ М2 с координатами
* |
_ |
4 / v^3 а |
х 1 |
Xо — |
2 Ь # |
В рассмотренном примере множество W* содержало все го одну точку, которая и была искомой точкой максимума двойственной функции. В общем случае это множество, опреде ляемое линейными ограничениями, представляет собой аффин ное многообразие, и задача определения наибольшего значения двойственной функции на этом множестве может оказаться сложной.
Продемонстрируем использование неравенства взвешенных средних в одном частном случае, когда задача геометрического программирования имеет лишь одно ограничение типа равен ства.
Теорема 7.11. Функция
п |
|
|
У{х) = ^ ^ |
® = (^1 ?3?2? •••j хп) £ } |
(7.37) |
2= 1 |
|
|
где & > 0, i = 1 , п, рассматриваемая при ограничении |
|
п *?=4 |
(7*38) |
|
2=1 |
|
|
А > 0, 7г > 0, г = 1 , гг, достигает |
наименьшего |
значения /х, |
равного |
|
|
/i = 7( А п г ^ |
7Л 1/7 |
(7.39) |
Д О ')