- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •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
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
8. ЧИСЛЕННЫЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Известно достаточно много численных методов решения сформулированной в 7.1 общей задачи нелинейного программи рования. Во многих из них использованы идеи, реализованные в численных методах безусловной минимизации (см. 4 -6 ). Глав ное отличие состоит в том, что при решении задачи нелиней ного программирования необходимо учитывать ограничения, задающие допустимое множество Cl С М71, на котором нужно найти точку ж* Е Cl минимума целевой функции /о (ж). В этой главе рассмотрены наиболее часто применяемые на практике численные методы решения такой задачи.
8.1. Метод условного градиента
Для численного решения общей задачи нелинейного про граммирования
/о(ж )-nnin, ж € ^ С К п, (8.1 )
где /о(ж) — целевая функция, определенная на допустимом множестве можно применить модификацию одного из ме тодов спуска. Однако непосредственное использование мето дов спуска может привести к тому, что точка ж*, найденная на некоторой к-й итерации, например, при помощи рекуррент ных соотношений вида (4.20) или (4.36), выйдет за пределы допустимого множества, т.е. х к £ Cl. Избежать этого в случае замкнутого ограниченного выпуклого множества Cl и непре рывно дифференцируемой на нем выпуклой целевой функции можно следующим образом.
Пусть на к-й итерации известна точка x k~l Е П (на первой итерации (к = 1) выбрана начальная точка ж0 Е fi). Используем главную линейную часть
Л(®) = (grad/0(®*-1), х - хк~1) |
(8.2) |
приращения
А Д = /о(®) “ / о ^ -1) = (grad/oC®*-1), х - ®*-1) + о(|® - ®*_1|)
целевой функции fo(x) в точке х к~ 1 для нахождения вспомога тельного приближения х к из условия
fk{xk) = min(grad / 0(ж*-1), ж - ж*-1). |
(8.3) |
В силу замкнутости и ограниченности множества Q и непре рывности линейной функции Д(ж) такая точка х к всегда су ществует и лежит на границе д£1 этого множества (если таких точек несколько, то можно выбрать любую из них).
Для некоторых множеств, имеющих достаточно простую структуру, решение задачи (8.3) удается представить в яв ном виде. Например, если множество П является п-мерным замкнутым шаром радиуса R с центром в точке жо Е Rn, т.е. fi = {ж Е М71: |ж— Жо| ^ i?}, то, используя неравенство Коши — Буняковского в виде
(grad/o(®fc-1), х — ®0) ^
^—|grad/0(®fc-1)||® —®0|^ -Igrad/ol®*-1) ^
иучитывая (8.2), находим
Д(®) = (grad/0(®fc-1), ® - ®о) + (grad/0(®fc_1), ®о - ®fc_1) >
^ — |grad/o(®A:_1)| Д + (grad/о(®*-1), ®0 —®Л_1).
Правая часть этого неравенства равна наименьшему возможно му значению Д(®) в искомой точке хк. Таким образом, имеем
Д(®*) = (grad/o(®fc_1), хк- ®fc_1) =
= — |grad/0(®fc_1)| Д + (grad/0(®A:_1), ®о —®fc_1),
и л и
(grad/o(®fc 1), х к- ж 0) = -|grad/0(®fc г)1
Это равенство можно удовлетворить, если принять
x k = x ° - R grad/0(a;fc_1) |grad/0(®fc-1)| ’
В случае П = {(ал, хп) € Rn: Xj G [aj, bj], j = 1, n } коор динаты точки x k, которая расположена на границе dQ n-мер- ного параллелепипеда П и в которой функция (8.2)
|
t |
t \ w |
(fc-i)\ dfo(xk |
1 |
|
|
Л ( * ) = £ ( х , - Х > |
' ) — g — |
|
||
|
|
j = 1 |
|
|
|
примет минимальное значение, равны |
|
||||
|
|
*3 ч |
df0{xk~l) |
> 0; |
|
|
~ W _ |
dx-j |
(8.4) |
||
|
J |
|
|||
|
|
|
|||
|
хз ~ |
dfo(xk *) |
|
||
|
|
bj, |
< 0, |
|
|
|
|
dxj |
|
||
|
|
|
|
|
|
o r |
/ _ « — 1 \ |
|
|
|
|
а при |
gx— - = 0 можно выбрать любое значение Щ ; G [oj, bj]. |
||||
Если |
П = { ж е Е п: (aj, ж) < 6j, |
г = 1 , т } |
— многогранное |
множество, то (8.3) может быть сведено к решению основной задачи линейного программирования. Если же
П = { х € Мп: (сц, х) < bi, г = 1 , т, Вх = d} ,
где В — матрица размера I х п и d € К , то для нахождения ж* получим общую задачу линейного программирования. Для решения обеих этих задач после их приведения к стандартной задаче линейного программирования обычно используют сим плекс-метод.
Предположим, что задача (8.3) решена и точка х к найдена. Если х к= ж*-1 , т.е. f k{xk) = 0, то из (8.3) для любых ж G П име ем (grad/о(ж*-1), ж — ж*-1) ^ 0. Тогда, согласно теореме 3.15,
Спуск в возможном направлении из точки x k~l Е позволя ет на каждой к-й итерации продолжить построение релаксаци
онной последовательности |
для которой последователь |
|
ность {fo{xk)} является невозрастающей. |
|
|
Рассмотрим теперь вопрос о выборе значения |
£ (0,1] в |
(8.5). Один из возможных вариантов — это поиск минимума функции
Фк{х) = М х к 1 + хрк), рк - х к - х к 1, |
(8.6) |
по аргументу х в полуинтервале (0, 1].
Для квадратичной целевой функции /о(ж), имеющей вид
/о (х) = ^ (Qx, х) + (с, sc), где Q — положительно определен
ная матрица порядка п, точка х*к 6 (0, 1] минимума функции >+>к{х) единственна и может быть представлена в явном ви де. Действительно, пусть рк — возможное направление спус ка. Подставляя х = х к~ 1 + хрк в квадратичную функцию и учитывая, что матрица Q симметрическая и в данном слу чае (Qxk~l + с,р к) = (grad/о(ж*-1), рк) = - ( w k,p k), где w k = = —grad/(®fc_1), получаем
Фк{я) = y ( Q p fc,pfc) - x ( w k,p k) + ^{Q xk~1 ,x k~1) + (с, ж*-1).
Случай (Qpk,p k) = 0 Для положительно определенной матрицы соответствует равенству рк = х к — х к~1 = 0 и уже рассмотрен
выше. При (Qpk,p k) Ь> 0 имеем относительно х |
квадратный |
трехчлен, достигающий минимума при значении |
|
(wk,p k) |
(8.7) |
> о, |
|
k ~ ( Q p k,Pk) |
|
поскольку для направления спуска рк |
|
(wk,p k) = -(grad/o^* 1) , х к - х к ' ) > 0
и в данном случае grad/о (ж*-1) и р к не являются ортогональ ными векторами. Если х к > 1 , то точка минимума лежит за
пределами множества П и в (8.5) следует принять |
щ = 1 , т.е. |
х к= х к. В противном случае в (8.5) принимаем х* |
= х*к. |
Для произвольной выпуклой функции fo(x) выбор значения Хк из условия минимума функции фк{х) потребует примене ния методов одномерной минимизации (см. 2). Отметим, что если целевая функция /о (ж) выпукла, то и функция фк{х) вы пукла (см. теорему 3.7) и в любой стационарной точке х* этой функции в силу теорем 3.14 и 3.15 она достигает наименьшего значения. Если /о (ж) — строго выпуклая функция, то, согласно теореме 3.7, и функция (8.6) строго выпукла на отрезке [0,1]. В этом случае, согласно теоремам 3.14 и 3.15, стационарная точ ка функции ipiДх), если она существует, единственна и в этой точке функция достигает наименьшего значения.
Можно избежать минимизации функции фк(х) (8.6), выби рая значение Хк € (0,1] в (8.5) так, чтобы fo(xk) < /о(ж*-1), т.е. чтобы последовательность {ж*} была релаксационной. Тогда, согласно теореме 4.2, справедлива оценка вида (4.12)
/о(*°)-/о(®*) ^ |
т е N, |
\ v f r [ |grad/0(xfc-1)| |
где т]= diamft — диаметр ограниченного множества to. Условием прекращения итераций может быть выполнение
одного или всех неравенств (4.18) и (4.19). При некоторых ограничениях метод условного градиента работоспособен и в случае, когда целевая функция не является выпуклой*
Пример 8.1. Найдем решение задачи квадратичного про граммирования на множестве
П = {(ял, х 2 ) е R2: ц 6 [0,1], х 2 € [0, 2]}
*См .: Васильев Ф.П., а такж е: Пшеничный Б .Н ., Данилин Ю.М.