- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •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
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
3. МИНИМИЗАЦИЯ ВЫПУКЛЫХ ФУНКЦИЙ
Широкий класс задач мат емат ического программирования
связан с минимизацией.выпуклых функций многих переменных, определенных на выпуклом множ ест ве. Такие задачи относят к задачам выпуклого программирования. В этой главе рас смотрены основные свойства выпуклых множеств и функций и описаны некоторые методы минимизации выпуклой целевой функции в случае, когда на область изменения параметров оптимизации не наложено ограничений.
3.1. В ы пуклы е м н ож ества
Пусть £ — конечномерное линейное пространство и ж1,
х2 — произвольные элементы в £. Множество Е С £ вида
Е= {ж € С: х = А®1 + (1 - Л)®2, Л G [0,1] С М}
будем называть отрезком с концами ж1 и ж2 и обозначать [ж1,®2].
Определение 3.1. Подмножество Cl линейного простран ства £ называют выпуклым множеством, если оно вместе с любыми двумя точками ж1, ®2 € П содержит и отрезок [ж1, ж2], т.е. для любых ж1, ж2 € С1 и А € [0,1] выполняется соотношение Аж1 + (1 —A)®2 G J2. Пустое множество считаем выпуклым по определению.
Пример 3.1. а. Линейное подпространство Н в линейном пространстве £ является выпуклым множеством. В самом деле, для любых элементов ж1, ж2 е Н линейному подпространству И, согласно определению, принадлежит и любая линейная комби
нация ct\xl + 012Х2 |
этих элементов. В частности, это верно и |
при «1 = А, «2 = 1 - |
А, где А 6 [0,1]. |
б. Отрезок Е = [аз1, х 2] в линейном пространстве С являет |
ся выпуклым множеством. Чтобы показать это, выберем две точки у 1, у2 € Е. Тогда, согласно определению отрезка, суще ствуют такие значения ti, £ [0,1], что
у 1 = tlX1 + (1 - t\)x2, |
у 2 = «2*1 + (1 - t2 )x2 |
Пусть А € [0,1] выбрано произвольно. Тогда |
|
Ау 1 + (1 - А)у2 —A(ti®1 + (1 - |
ti)x2) + |
+ (1 —X)(t2X1+ (1 - <г)*2) = {Xti + (1 - A)<2)*I +
+ (A(l —ii) + (1 — A)(l — <г))*2-
Положив А = Xt\ + (1 — X)t2 и A = А(1 —ti) + (1 —A)(l — <2)) нетрудно показать, что А ^ 0, А ^ 0 и А + A = 1. Таким образом, 0 ^ А ^ 1, A —1 — А и
Ау 1 + (1 - А)у2 = А *1 + (1 - А ) * 2 е Е.
Отметим, что одноточечное множество, как частный случай отрезка, является выпуклым множеством.
в. Рассмотрим систему линейных алгебраических уравне ний (СЛАУ) Ах = 6, где А — матрица размера т х п, х — матрица-столбец высоты п, составленная из неизвестных си стемы, а b — матрица-столбец высоты т , составленная из правых частей уравнений. Множество решений рассматрива емой системы есть подмножество линейного арифметического пространства Rn. Это подмножество является выпуклым. В самом деле, если х 1 и х 2 — решения рассматриваемой систе мы, а Л Е [0,1], то в силу свойств решений СЛАУ (или свойств матричных операций)
^(Аа:1+ (1 - Х)х2) = ХАх1+ (1 - Х)Ах2 = АЬ+ (1 - А)Ь*= Ь,
т.е. столбец Аж1 + (1 —А)®2 является решением СЛАУ Аъ = Ь. Рассмотренному примеру можно придать более широкое толкование. Допустим, что А — линейный оператор, действу
ющий в линейном пространстве С. Тогда прообраз А ~1 {у) = = {ж Е С: А х = у } произвольного элемента у ЕС есть выпуклое множество в С. Доказательство этого аналогично тому, кото рое было проведено для множества решений СЛАУ
Подмножество Е в линейном пространстве С назовем аф финным многообразием, если оно вместе с любыми своими элементами х 1 и ж2 содержит и любую их линейную комби нацию вида А®1 + (1 —А)®2, где А Е К — любое число. Ясно, что аффинное многообразие — частный случай выпуклого мно жества. Нетрудно показать, что множество решений СЛАУ, а также прообраз А~1(у) элемента у для линейного операто ра А являются аффинными многообразиями. Другой способ получения аффинного многообразия — образовать множество ®° + У = {у Е С: у = ®° + у0, у 0 Е У }, где х° — произвольный элемент в £, а У С С — произвольное линейное подпростран ство. Это множество является аффинным многообразием. Дей ствительно, если ж1, х 2 Е ®° + У, то х г = ®° + у1, где у* Е У, г = 1, 2. Поэтому для любого числа А
А®1 4- (1 - А)®2 = А(®° -I- у 1) + (1 - А)(®° + у2) =
= ®° + (Ay1 + (1 - А)у2) 6 ®° + У.
Отметим без доказательства, что любое аффинное многообра зие может быть представлено в виде ®° + У. Поэтому в Rn понятие аффинного многообразия равнозначно m-мерной плос кости.
Пример 3.2. Пусть С — нормированное пространство. Тогда любое множество Е вида Е = {® Е С: ||®— ®°|| ^ г}, где ||®|| — норма элемента ж в £, является выпуклым. Докажем это. Для любых элементов ж1, ®2 Е Е и любого числа А Е [0,1] Имеем
|(А®1 + (1 - А)®2) -®°|| = 11А(ж1 -® °) + (1 - А)(®2 — ®°) |^
< АЦ®1 - ®°|| + (1 - А)||®2 - ®°|| < Аг + (1 - А)г = г,
t\e. А®1 + (1 - А)®2 Е Е.
Пример 3.3. Пусть С — евклидово пространство, в кото ром скалярное произведение элементов ж и у будем обозначать (ж, у). Для любого вектора а Е С и любого числа с 6 R множе ство В = { ж Е£: ( ж , а) = с} является аффинным многообразием и, в частности, выпуклым множеством. Чтобы показать это, выберем произвольные элементы ж1, ж2 Е Е и число Л Е R. То гда (ж1, а) = (ж2, а) = с. Следовательно, с учетом свойств скалярного произведения
(Аж1 + (1 - |
А)ж2, а) = |
|
= А (ж1, а) + (1 - А) (ж2, а) = Ас+ (1 - А)с = с, |
что означает |
выполнение соотношения Аж1 + (1 —А)ж2 Е Е. |
Множество Е указанного вида в дальнейшем будем называть гиперплоскостью. Отметим, что термин пгиперплоскость “ в R3 означает плоскость, а в R2 — прямую.
Нетрудно показать, что множество Е = {ж Е £: (ж, а) ^ с} выпуклое, но аффинным многообразием не является. Это ут верждение остается в силе, если в определении множества Е знак заменить знаком п^ “: по существу, это равносиль но замене вектора а вектором —а. Утверждение также будет справедливым, если знак неравенства заменить строгим нера венством. Множество Е в дальнейшем будем называть полу пространством. #
Пусть ж1, |
х к — произвольные элементы в линейном |
|
пространстве С. |
Их линейную комбинацию Ахж1 + |
+ \ьхк |
назовем выпуклой комбинацией, если все коэффициенты
А{, г = 1, /с, неотрицательны, а их сумма равна единице, т.е.
к
Y2 Ai = 1- Отметим, что линейная комбинация Аж1 + (1 — А)ж2, г=1
участвующая в определении отрезка, при A Е [0, 1] является выпуклой.
Теорема 3.1. Для того чтобы множество Е С С было вы пуклым, необходимо и достаточно, чтобы любая выпуклая ком бинация элементов Е принадлежала этому множеству.
◄ Достаточность утверждения теоремы очевидна, и мы оста новимся на доказательстве его необходимости, следуя методу математической индукции по количеству слагаемых в выпук лой комбинации.
Пусть множество Е С С выпукло. Для выпуклой комби нации с к = 2 слагаемыми утверждение теоремы верно (оно равносильно определению выпуклого множества). Пусть утвер ждение теоремы верно для любой выпуклой комбинации, содер
жащей к слагаемых. Выберем в Е элементы аз1, ..., |
х к, х к +1 |
и произвольные неотрицательные числа оц, ..., а*, |
1, сум |
ма которых равна единице. Отметим, что если &ь+ 1 = 1, то все остальные числа а* равны нулю и выпуклая комбинация рассма триваемых элементов совпадает с sc*+1, так что утверждение теоремы в этом случае тривиально и его справедливость оче
видна. Пусть OL\t+i < 1. Положим Л = 1 — afc+i и Д = |
i = 1, к. |
Тогда /% ^ 0, i = 1, к, и |
|
Поэтому, согласно предположению, у — (5\хх + ... + /3*®* 6 Е. Отсюда заключаем, что
a ix 1 + ... + akXk+ ak+\xk + 1 =
= A ^ i® 1 + ... + /3fc£cfc) + (1 - X)xk + 1 =
= Xy + ( l - X)xk + 1 <EE.
Таким образом, произвольная выпуклая комбинация элементов множества Е, содержащая к +1 слагаемых, принадлежит Е. Согласно принципу математической индукции, любая выпуклая комбинация элементов множества Е принадлежит Е. ►
Теорема 3.2. Пересечение любого числа выпуклых мно жеств является выпуклым множеством.
◄ Пусть А — некоторое семейство выпуклых множеств в линейном пространстве С. Рассмотрим множество
Е = р) F.
Feл
Пусть х 1 и ®2 принадлежат Е. Тогда они принадлежат любому множеству F € Л. Поскольку по условию множество F выпукло, для любого A G [0,1] элемент Лаз1 + (1 —А)®2 принадлежит F. А так как F € А выбрано произвольно, то
А®1 + (1 - А)®2 е Р| F = E.
F € A
Значит, множество Е выпукло. ►
Пример 3.4. Рассмотрим в R” множество Е элементов х = (хг, ..., хп), координаты которых удовлетворяют системе неравенств
а ц ®1 + |
Ol2®2 + •••+ |
0,1пх п ^ &1> |
|
< 02 1®1 + 02 2 ^2 + •••+0271^71 ^ ^2 , |
3-1) |
||
|
|
|
|
k Omi® i + |
Om2®2 + |
+ О'ТППЗ'П ^ Ьт . |
|
Множество Е является выпуклым. Чтобы доказать это ут верждение, изменим представление множества. Введем векто ры щ = (a^i, •••, &m)- Тогда с помощью стандартного скаляр ного произведения в W1 систему неравенств (3.1) можно запи сать следующим образом: (ж, а*) ^ Ьг-, г = 1, п. Другими слова ми, множество Е представляет собой пересечение га полупро странств. Поскольку любое полупространство является выпук лым множеством, то и множество Е выпукло. #
Множество Е.СЙП, заданное системой неравенств (3.1), а также любое конечное пересечение полупространств в евклидо вом пространстве будем называть выпуклым многогранным
множеством.
Выпуклую комбинацию ot\xl + ... + с^ж* элементов линейно го пространства назовем строго выпуклой комбинацией, если все ее коэффициенты положительны. В частности, выпук лая комбинация Аж1 + (1 — А)ж2 строго выпукла, если А Е (0,1).
Элемент х Е Е называют крайней точкой множества Е С С (или его вершиной), если этот элемент не может быть представлен в виде строго выпуклой комбинации двух различ ных элементов из Е. Иначе говоря, если х = Аж1 + (1 — А)ж2, где ж1, ж2 Е Е, А Е (0,1), то ж1 = ж2 = ж. Если выпуклое множество не имеет крайних точек, то его называют строго выпуклым множеством.
Пример 3.5. У отрезка [ж1, ж2] е £ крайними точками являются элементы ж1 и ж2, и других крайних точек у отрез ка нет. В R2 у выпуклого многоугольника крайними точками являются его вершины. У круга Е C R 2, заданного уравнени ем х\ + х\ ^ 1, множество крайних точек представляет собой окружность х\ + х\ = 1. #
Никакая внутренняя точка множества Е С Шп не может быть крайней точкой этого множества. Действительно, если ж0 Е Е — внутренняя точка J5, то существует окрестность* U = {ж Е Кп: |ж— ж°| < е}, целиком принадлежащая Е . Значит, множеству Е принадлежат элементы ж1=ж° + баиж 2 = ж °- еа, где а — произвольный вектор, для которого |а| < 1. Очевидно, что ж0 = ОДж1 + 0,5ж2
Все линейное пространство — выпуклое множество. Но, как следует из доказанного, в этом множестве нет крайних точек. Крайних точек также не имеет аффинное многообразие.
Выпуклой оболочкой произвольного подмножества Е ли нейного пространства С называют пересечение всех выпуклых множеств в £, которые содержат в себе множество Е.
* Здесь и далее |ж| обозначает стандартную норму в R n элемента х.
Теорема 3.3. Выпуклая оболочка множества Е совпадает с множеством всех выпуклых комбинаций элементов множе
ства Е.
_
◄ Покажем, что множество Е всех выпуклых комбинаций эле ментов множества Е является выпуклым. Выберем в Е про извольные элементы у 1 и у 2 и рассмотрим их выпуклую ком бинацию у = ay1 + (1—а)у2, а Е [0,1]. Поскольку у 1 и у2 при надлежат Е , их можно представить как выпуклые комбинации элементов множества Е :
Ы
уг = |
|
г = 1,2, |
j - |
1 |
|
где |
____ |
|
|
ki |
|
y>ij ^0, i 1) 2, j |
1, |
^ ^ (Ajj 1, i 1, 2. |
j = i
Подставим эти представления в выражение у = a y 1 + (1 — а)у2:
/ci к\
|
у = |
+ ]Г (1 - |
a)/x2j®2j |
|
j = l |
j = l |
|
В правой |
части равенства |
линейная |
комбинация элементов |
х г\ г = 1 , |
2, j = 1 , fci, принадлежащих множеству Е , является |
выпуклой комбинацией, так как все коэффициенты линейной комбинации неотрицательны, а их сумма равна единице:
ki к\
j = i |
i = i |
|
|
fci |
fci |
= |
+ (i - a) |
= a•1 + (i - a) •1 = i- |
j = l |
j = 1 |
|
Следовательно, элемент у можно представить в виде выпуклой комбинации элементов множества Е } а потому он будет принад лежать Е. В силу того что элементы у 1, у2 и число a Е [0,1] выбирались произвольно, множество Е выпукло.
Пусть выпуклое множество F включает в себя Е. Тогда, согласно условию выпуклости, множество F содержит любую выпуклую комбинацию своих элементов, в частности элементов множества Е. Следовательно, множество F включает в себя множество Е. Таким образом, множество Е является подмно жеством пересечения всех выпуклых множеств, содержащих в себе Е . Но поскольку множество Е само является выпуклым множеством, содержащим Е, то оно совпадает с указанным пе ресечением. ►
Выпуклую оболочку конечного множества S c R n, содер жащего 7П + 1 различных точек жг, называют выпуклым мно гогранником. Если m = п и элементы жг, i = 1 , п+1, не при надлежат какой-либо гиперплоскости, то выпуклую оболочку множества Е = {ж1, ..., ж71-1"1} называют симплексом, а точ ки х %— вершинами симплекса. Отметим, что условие, согласно которому элементы жг, г = 1 , п + 1 , не принадлежат какой-либо гиперплоскости, равносильно линейной независимо сти векторов х г—ж1, г = 2, п + 1 .
Согласно теореме 3.3, любую точку симплекса можно пред ставить в виде выпуклой комбинации его вершин. Отметим, что такое представление единственно. Действительно, если ж1, жп+1 — вершины симплекса и имеют место предста
вления
ж= OL\ ж1+ OL^X 2 + ... + а^+хж*4-1,
X = /З1®1 + fox 2 + ... + /3jk+l£Cfc+1,
то, вычитая из первого равенства второе, получаем
71Е1 + 72Ж2 + ... +7fc+iXA:+1 = О,
где коэффициенты 7* = а,- — /%, i = 1 , п + 1 , удовлетворяют ра венствам
п+ 1 |
п+1 |
п+1 |
j^7*=J 2 ai ~ Ё # = 1- 1=°-
i=i t=i t=i
Предположим, что один из коэффициентов 7*, например 7n+i,
П
отличен от нуля. Тогда 7^+1 = — 7* и
2=1
7 is 1 +72a32 + ... + 7jfc+ia3A:+1 =
= 71 (ж1 - х к+1) + .. . + 1 п(хп - х к+1) = 0. (3.2)
Так как 7^+1 ф 0, то и один из коэффициентов 7*, i — 1, п, отличен от нуля. Значит, в силу равенства (3.2) элементы х г—жп+1, i = 1, п, линейно зависимы. Отсюда заключаем, что существует вектор а, ортогональный всем этим векторам, т.е. (а, х г—x n+l) = 0, г = 1 , п, или
(а, X х) = (а, жп+1), г = 1, п.
Положим с = (а, жп+1). Тогда все элементы ж\ г = 1, п + 1 , удо влетворяют уравнению (а, ж) = с, а значит, принадлежат одной гиперплоскости. Но это противоречит предположению, соглас но которому эти элементы являются вершинами симплекса.
Пример 3.6. В R1 симплексом является отрезок (одномер ный симплекс), в R2 — треугольник (двумерный симплекс), в R3 — тетраэдр (трехмерный симплекс).
Теорема 3.4 ( теорема Каратеодори*). Любую точку х выпуклой оболочки Q произвольного множества Е С Шп можно представить выпуклой комбинацией элементов из -Б, количе ство слагаемых в которой не превышает п + 1 .
◄ Каждую точку х Е можно представить в виде выпуклой комбинации А1Ж1 + ... + Ашжш элементов х г Е 25, г = 1, т. Мы можем считать, что число т — это наименьшее число слага емых в выпуклой комбинации элементов множества Е , равной заданному элементу х. Если тп ^ п + 1 , то утверждение те оремы верно. Поэтому предположим, что т > п + 1. Тогда векторы X х — ж1, i = 2, m, линейно зависимы, поскольку их
*К. Каратеодори (1873-1950) — немецкий математик.
количество превышает размерность линейного пространства. Следовательно, верно равенство
771 |
|
^ 2щ {хг- Х 1) = 0, |
(3.3) |
»=2
в котором хотя бы один из коэффициентов Hi отличен от нуля.
771
Положим Hi = MiТогда с учетом равенства (3.3) получим
i= 2
771 |
71 |
|
]Г^г£Сг= 0, |
£ > = 0 . |
(3.4) |
г= 1 |
г=1 |
|
Поскольку сумма всех коэффициентов Hi равна нулю, а среди них есть коэффициенты, отличные от нуля, то Hi > 0 хотя бы для одного номера г.
Введем параметр а € К и с учетом равенств (3.4) запишем
771 |
771 |
m |
m |
х = ]Р аiXl = ^ Х гХ г - |
|
= ^(A j - а(м)хг. (3.5) |
|
г= 1 |
г = 1 |
г= 1 |
г=1 |
При этом |
|
|
|
71 |
71 |
|
71 |
^ (A i - |
оцц) = Х^Аг - |
= 1 - 0 = 1. |
|
г=1 |
г= 1 |
|
г = 1 |
Подберем такое значение параметра а, при котором линей ная комбинация с коэффициентами —аHi будет выпуклой, а хотя бы один из коэффициентов будет равен нулю. Для этого достаточно выбрать а равным наименьшему отношению Лi/Hi среди тех, для которых Hi > 0. Обозначим номер выбранного отношения через А;, т.е. полагаем а = Хк/Нк- Тогда А* — OL\X{ ^ 0, г = 1 , 7П. Действительно, если для фиксированного номера i имеем Hi ^ 0, то число А; —сщц положительно как разность по ложительного и неположительного чисел. Если же Hi > 0, то