Глава 1 - qwerty.name

advertisement
Математические методы оптимизации:
конспект лекций.
Е.Ю. Щетинин
ОГЛАВЛЕНИЕ
Глава 1.
МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИИ В ОПТИМИЗАЦИИ ... 5
1.1. Определение границ объекта оптимизации ......................................... 5
1.2. Выбор управляемых переменных ......................................................... 6
1.3. Определение ограничений на управляемые переменные ................... 6
1.4. Выбор числового критерия оптимизации............................................. 7
1.5. Формулировка математической задачи оптимизации ........................ 8
Глава 2.
ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ОДНОМЕРНОЙ
ОПТИМИЗАЦИИ.......................................................................................... 8
2.1. Предварительные сведения .................................................................... 9
2.1.1. Минимум функции одной переменной . .................................. 9
2.1.2. Унимодальные функции . ........................................................ 10
2.1.3. Выпуклые функции .................................................................. 11
2.1.4. Условие Липшица ..................................................................... 13
2.1.5. Классическая минимизация функции одной переменной .... 15
2.2. Прямые методы ..................................................................................... 16
2.2.1. Метод перебора ......................................................................... 16
2.2.2. Методы исключения отрезков ................................................. 18
2.2.3. Метод парабол........................................................................... 26
Глава 3
МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ ФУНКЦИЙ МНОГИХ
ПЕРЕМЕННЫХ ........................................................................................ 30
3.1. Предварительные сведения .................................................................. 30
3.1.1. Основные понятия линейной алгебры .................................... 30
3.1.2. Минимум функции многих переменных ................................ 33
3.1.3. Дифференцируемые функции многих переменных .............. 34
3.1.4. Необходимые и достаточные условия минимума дифференцируемой
функции ...................................................................................... 35
Упражнения ........................................................................................ 36
3.2. Выпуклые множества и выпуклые функции ...................................... 37
3.2.1. Свойства выпуклых функций .................................................. 37
3.2.2. Выпуклые квадратичные функции ......................................... 41
Упражнения ........................................................................................ 43
3.3. Общие методы n–мерной минимизации ............................................. 43
Упражнения ........................................................................................ 47
3.4. Прямые методы безусловной минимизации ...................................... 47
3.4.1. Минимизация по правильному симплексу ............................ 48
3.4.2 Поиск точки минимума по деформируемому симплексу..... 50
3.4.3. Метод циклического покоординатного спуска ..................... 52
3.4.4. Алгоритм Хука– Дживса .......................................................... 54
3.4.5. Методы случайного поиска ..................................................... 55
3.4.6. Метол сопряженных направлений .......................................... 57
Упражнения ........................................................................................ 61
3.5. Методы безусловной минимизации, использующие производные функции
62
3.5.1. Метод градиентного спуска ..................................................... 63
3.5.2. Метод наискорейшего спуска.................................................. 65
3.5.3. Метод сопряженных градиентов ............................................. 66
3.5.4. Метол Ньютона ......................................................................... 69
3.5.5. Квазиньютоновские методы .................................................... 71
Упражнения ........................................................................................ 74
Библиографический список ......................................................................... 76
2
Глава 1
МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ В ОПТИМИЗАЦИИ
Оптимизация – это выбор наилучшего решения. Математическая теория
оптимизации включает в себя фундаментальные результаты и численные методы,
позволяющие находить наилучший вариант из множества возможных
альтернатив без их полного перебора и сравнения.
Для того чтобы использовать результаты и вычислительные процедуры
теории оптимизации на практике, необходимо, прежде всего, сформулировать
рассматриваемую задачу на математическом языке, т.е. построить
математическую модель объекта оптимизации. Математическая модель – это
более или менее полное математическое описание исследуемого процесса или
явления.
В большинстве реальных ситуаций дать исчерпывающее математическое
представление оптимизируемой системы с учетом всех взаимосвязей ее частей,
взаимодействий с внешним миром, всех целей ее функционирования бывает
затруднительно или невозможно. Поэтому при построении математической
модели необходимо, как правило, выделять и учитывать в дальнейшем только
наиболее важные, существенные стороны исследуемого объекта с тем, чтобы
было возможным его математическое описание, а также последующее решение
поставленной математической задачи. При этом неучтенные в математической
модели факторы не должны существенно влиять на окончательный результат
оптимизации. Таким образом, математическое моделирование является сложной
и ответственной творческой задачей, требующей от исследователя глубоких
знаний в соответствующей области, практического опыта, интуиции и
критического анализа получаемых результатов.
Несмотря на то, что общего рецепта построения математических моделей
оптимизации не существует, можно условно разбить процесс математического
моделирования на следующие основные этапы.
1.1. ОПРЕДЕЛЕНИЕ ГРАНИЦ ОБЪЕКТА ОПТИМИЗАЦИИ
Необходимость этого этапа диктуется невозможностью учета и
исчерпывающего описания всех сторон большинства реальных систем. Выделив
главные переменные, параметры и ограничения, следует приближенно
представить систему как некоторую изолированную часть реального мира и
упростить ее внутреннюю структуру.
Например, при оптимизации работы одного из цехов предприятия в
некоторых
случаях
можно
пренебречь
влиянием
особенностей
функционирования других цехов, систем снабжения и сбыта всего предприятия,
его взаимодействием с другими организациями, конъюнктурой рынка и многими
другими факторами. Тогда цех будет рассматриваться как изолированная
система, а его связи с внешним миром либо считаются зафиксированными, либо
вовсе не учитываются.
3
Может оказаться, что первоначальные границы объекта оптимизации
выбраны неудачно. Это становится ясным при дальнейшем анализе системы и ее
математической модели, при интерпретации результатов поиска оптимального
решения, сопоставлении их с практикой и т.д.
Тогда в одних случаях границы системы следует расширить, а в других –
сузить. Например, если выясняется, что влияние на работу исследуемого цеха
других подразделений предприятия нельзя игнорировать при ее оптимизации, то
необходимо включить в систему и эти подразделения. С другой стороны, может
оказаться, что сам цех состоит из нескольких в большой степени независимо
работающих участков, которые без значительного упрощения реальной ситуации
можно рассматривать изолированно. Тогда для облегчения поиска оптимального
решения разумно исследовать каждый участок как отдельную систему.
В инженерной практике следует, насколько возможно, стремиться упрощать
системы, подлежащие оптимизации, разбивать сложные системы на более
простые подсистемы, если есть уверенность, что это повлияет на окончательный
результат в допустимых пределах.
1.2.
ВЫБОР УПРАВЛЯЕМЫХ ПЕРЕМЕННЫХ
На этом этапе математического моделирования необходимо провести
различие между теми величинами, значения которых можно варьировать и
выбирать с целью достижения наилучшего результата (управляемыми
переменными), и величинами, которые фиксированы или определяются
внешними факторами. Определение тех значений управляемых переменных,
которым соответствует наилучшая (оптимальная) ситуация, и представляет
собой задачу оптимизации.
Одни и те же величины, в зависимости от выбранных границ оптимизируемой
системы и уровня детализации её описания, могут оказаться либо управляемыми
переменными, либо нет. Например, в упомянутой ситуации с оптимизацией
работы цеха объем поставок какого–либо сырья из другого цеха в одних случаях
следует считать фиксированным или не зависящим от нашего выбора, а в других
случаях – регулируемым, т.е. управляемой переменной.
1.3. ОПРЕДЕЛЕНИЕ ОГРАНИЧЕНИЙ НА УПРАВЛЯЕМЫЕ
ПЕРЕМЕННЫЕ
В реальных условиях на выбор значений управляемых переменных, как
правило, наложены ограничения, связанные с ограниченностью имеющихся
ресурсов, мощностей и других возможностей. При построении математической
модели эти ограничения обычно записывают в виде равенств и неравенств или
указывают множества, которым должны принадлежать значения управляемых
переменных. Совокупность всех ограничений на управляемые переменные
определяет так называемое допустимое множество задачи оптимизации.
Например, если годовой объем выпускаемой цехом продукции данного вида
является управляемой переменной, то ее значения, во–первых, не могут быть
4
отрицательными
и,
во–вторых,
ограничены
производительностью оборудования цеха.
сверху
максимальной
1.4. ВЫБОР ЧИСЛОВОГО КРИТЕРИЯ ОПТИМИЗАЦИИ
Обязательной составной частью математической модели объекта
оптимизации является числовой критерий, минимальному или максимальному
значению которого (в зависимости от конкретной задачи) соответствует
наилучший вариант поведения исследуемого объекта. Величина этого критерия
полностью определяется выбранными значениями управляемых переменных, т.е.
он является функцией этих переменных и называется целевой функцией.
В инженерной практике используется широкий спектр критериев оптимизации. Это могут быть критерии экономического характера, например,
себестоимость, прибыль, капитальные затраты и т.д., технические или
физические параметры системы – продолжительность технологического
процесса, потребляемая энергия, максимальная механическая нагрузка,
достигнутая скорость движения и другие.
Следует отметить, что во многих случаях выбор критерия оптимизации не
является очевидным и однозначным. Часто бывает трудно поставить в
соответствие всей совокупности целей функционирования системы какой–либо
один критерий. Это объясняется различными причинами такими, как сложность
целевой функции, описывающей большую совокупность разнородных целей,
неопределенность формулировок некоторых целей, препятствующая описанию
их с помощью количественных характеристик, наличие противоречивых целей,
важность каждой из которых зависит от точки зрения и т.д. Например, невозможно найти решение, обеспечивающее одновременно минимальные затраты,
максимальную надежность, минимальное энергопотребление и максимальное
быстродействие.
Выход из этого положения определяется в каждом конкретном случае.
Например, из многих критериев, характеризующих различные цели оптимизации,
выбирают один, считая его основным, а остальные – второстепенным. Далее
второстепенные критерии либо не учитываются, либо учитываются частично с
помощью дополнительных ограничений на управляемые переменные. Эти
ограничения обеспечивают изменение второстепенных критериев в заданных
диапазонах приемлемых значений.
Другой путь состоит в формулировке комплексного критерия, т.е. целевой
функции, включающей с разумно выбранными весовыми коэффициентами
целевые функции, соответствующие различным целям.
1.5. ФОРМУЛИРОВКА МАТЕМАТИЧЕСКОЙ ЗАДАЧИ ОПТИМИЗАЦИИ
Объединяя результаты предыдущих этапов построения математической модели,
ее записывают в виде математической задачи оптимизации, включающей
построенную целевую функцию и найденные ограничения на управляемые
переменные. В достаточно общем виде математическую задачу оптимизации
можно
сформулировать
следующим
образом; минимизировать
5
(максимизировать) целевую функцию с учетом ограничений на управляемые
переменные.
Под минимизацией (максимизацией) функции п переменных f (x)=(x1 ,.., xn) на
заданном множестве U n–мерного векторного пространства Еn понимается
определение хотя бы одной из точек минимума (максимума) этой функции на
множестве U, а также, если это необходимо, и минимального (максимального) на
множестве U значения f (x). При записи математических задач оптимизации в
общем виде обычно используется следующая символика:
f (x) min (max),
х U
где f (x) – целевая функция, а U – допустимое множество, заданное
ограничениями на управляемые переменные.
Глава 2
ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ЗАДАЧ ОДНОМЕРНОЙ
ОПТИМИЗАЦИИ
В этой главе рассматривается простейшая математическая модель
оптимизации, в которой целевая функция зависит от одной переменной, а
допустимым множеством является отрезок вещественной оси:
f (x) min,
х a b.
(2.1)
Как уже отмечалось, максимизация целевой функции (f (x)  max)
эквивалентна минимизации противоположной величины (–f (x)  min), поэтому
мы будем рассматривать только задачи минимизации.
К математическим задачам вида (2.1) приводят прикладные задачи
оптимизации с одной управляемой переменной. Кроме того, необходимость в
минимизации функций одной переменной возникает при реализации некоторых
методов решения более сложных задач оптимизации.
2.1. ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
2.1.1. МИНИМУМ ФУНКЦИИ ОДНОЙ ПЕРЕМЕННОЙ
Пусть функция f (x) определена на множестве U вещественной оси R.
Напомним некоторые основные понятия.
1. Число х*  U называется точкой глобального (абсолютного) минимума или
просто точкой минимума функции f (x) на множестве U, если f (x*)  f (x) для
всех х U.
6
f ( x) называют глобальным (абсолютным) минимумом
Значение f * = f (x*) = min
u
или просто минимумом функции f (x) на множестве U.
Множество всех точек минимума f (x) на U будем в дальнейшем обозначать
через U*.
2. Число ~
x U называется точкой локального минимума функции f (x), если
f ( x )  f ( x ) для всех xU, достаточно близких к ~x , т.е. если существует  > 0
такое, что это неравенство выполняется для любого x  x x U , x  ~
x  .


3. Пусть функция f (x) ограничена снизу на множестве U, т.е. f (x)  А > –∞
для всех хU. Число f  называется точной нижней гранью функции f (x) на
множестве U ( f*  inf f ( x) ), если f (x)  f  при всех хU и для любого  > 0
U
найдется точка x U такая, что f (x) < f  +  (т.е. среди значений f (x) на
множестве U найдутся как угодно близкие к f ).
Для неограниченных снизу функций f (x) полагают f  = – ∞.
Замечания:
1. Глобальный минимум f (x) является и локальным минимумом, а обратное,
неверно.
2. Множество точек минимума U* функции f (x) на множестве U может быть
пустым, состоять из конечного или бесконечного числа точек.
Например:
а) если f (x)= ln x, U = (0;1],то U* = Ø;
б) если f (x)= х2, U = [– 1; 1], то U* = {0} – конечное множество;
в) если f (x) = sin2 x, U = R, то U=Z – бесконечное множество.
3. Если U* = Ø, то inf f ( x)  min f ( x) . Таким образом, точная нижняя грань
U
U
обобщает понятие минимума функции на случай U* = Ø.
Пример 2.1. Точная нижняя грань функции, не имеющей точек минимума.
Пусть f ( x) 
1
, U = [1; + ∞). Покажем, что:
x
а) U* = ø, т.е. f (x) не имеет на U точек минимума;
f ( x)  0
б) inf
U
а) (Доказательство от противного.) Предположим, что U*  Ø , т.е. существует
хотя бы одна точка х*  [1;+ ∞), такая, что
f (x*)  f (x)
для всех х  [1; + ∞). Выберем произвольное число х0 > х *. Очевидно,
7
(2.2)
1
= f (x0), т.е. получаем противоречие с
x * x0
неравенством (2.2). Поэтому исходное предположение неверно и U*= ø.
х0  [1; +∞), причем f (х*) =
1

б) Для всех х  [1;+ ∞) имеем: f ( x) 
1
 0, т.е. число 0 удовлетворяет
x
первому из неравенств для точной нижней грани f (x).
1

Далее, пусть  > 0. Возьмем произвольное x > mах( , 1). Тогда, очевидно, x
 [1;+ ∞) и f (x) <
1
=0+  , т.е. для числа 0 выполняется и второе неравенство из
1/ 
определения точной нижней грани. Поэтому f*  inf f ( x)  0 .
U
Если множество точек минимума функции f (x) на U – пусто, то задача
минимизации f (x) теряет смысл. В этом случае можно ограничиться поиском
точки ~x *  U , в которой значение f (x) с заданной погрешностью  приближает
точную нижнюю грань функции f (x) на множестве U, т.е. f ( ~
x * )  f*   .
Широкий класс функций, для которых U*   , определяет хорошо известная
из математического анализа теорема Вейерштрасса, согласно которой
непрерывная на замкнутом ограниченном множестве функция достигает на этом
множестве своих минимального и максимального значений. Таким образом,
пример (2.1) с непрерывной целевой функцией f (x) всегда имеет решение.
2.1.2. УНИМОДАЛЬНЫЕ ФУНКЦИИ
Если функция f (x) на множестве U имеет, кроме глобального, локальные
минимумы, отличные от него, то минимизация f (x), как правило, сильно
затрудняется. В частности, многие методы поиска точки минимума f (x)
приспособлены только для функций, у которых каждый локальный минимум
является одновременно и глобальным. Этим свойством обладают унимодальные
функции.
Определение 2.1. Функция f (x) называется унимодальной на отрезке [а; b],
если она непрерывна на [а; b] и существуют числа  и , a      b , такие, что:
1) если а < , то на отрезке [a; ] функция f (x) монотонно убывает;
2) если  < b, то на отрезке [; b] функция f (x) монотонно возрастает;
3) при х  [; ] f (x) =f * = min f ( x ) .
a;b
Множество унимодальных на отрезке [а; b] функций мы будем обозначать
через Q [а; b].
Отметим, что возможно вырождение в точку одного или двух отрезков из [a; ],
[; ] и [; b]. Некоторые варианты расположения и вырождения в точку
отрезков монотонности и постоянства унимодальной функции показаны на рис.
2.1.
8
Рис. 2.1.
Из определения 2.1 вытекают следующие основные свойства унимодальных
функций:
1. Любая из точек локального минимума унимодальной функции является и
точкой ее глобального минимума на отрезке [а; b].
2. Функция, унимодальная на отрезке [а; b], является унимодальной и на
любом меньшем отрезке [с; d]  [а; b].
3. Пусть f (x)  Q [а; b] и a  x1  x2  b . Тогда:
если f ( x1 )  f ( x2 ) , то x*  [a; x2];
если f ( x1)  f ( x2 ) , то x*  [x1; b],
где х* – одна из точек минимума f (x) на отрезке [a; b].
2.1.3. ВЫПУКЛЫЕ ФУНКЦИИ
Определение 2.2. Функция f (x), заданная на отрезке [a; b], называется
выпуклой на этом отрезке, если для всех х', х"  [а; b] и произвольного числа  
[0; 1] выполняется неравенство
f [x'+(1– )x"]  f (x')+(l – )f (x").
(2.4)
Перечислим основные свойства выпуклых функций.
1. Если функция f (x) выпукла на [a; b], то на любом отрезке [х'; х"]  [a; b] ее
график расположен не выше хорды, проведенной через точки графика с
абсциссами х' и х" (рис. 2.2).
Пусть х' и х" – произвольные точки отрезка
[a; b], причем х' < х". Легко проверить, что при
любом   [0;1] точка x = x’ + (1–)x" лежит
на отрезке [x’; х"] и при непрерывном
изменении  от 0 до 1 пробегает этот отрезок
от точки х" (при  = 0) до точки x' (при  = 1).
Рис. 2.2. Взаимное расположение
Рассмотрим хорду графика f (x), проходящую через
 f ( x) точки
 (1   ) f(х',f
( x) . (х')) и (х",f (х")).
Ордината y точки этой хорды, соответствующая абсциссе c, равна. Поэтому
неравенство (2.4) графика выпуклой функции и хорды означает, что f (x) y , т.е.
при любом расположении x, на отрезке [х'; х"] точка графика функции f (x) лежит
не выше соответствующей точки хорды.
9
2. Из курса математического анализа известны следующие условия
выпуклости функции:
а) для того чтобы дифференцируемая на
отрезке [а; b] функция f (x) была выпуклой на этом
отрезке, необходимо и достаточно, чтобы
производная f '(x) не убывала на [а; b];
б) для того чтобы дважды дифференцируемая на
отрезке [а; b] функция f (x) была выпуклой на этом
отрезке, необходимо и достаточно, чтобы при всех
Рис. 2.3.
х[а; b] выполнялось неравенство f "(x) 0.
3 Условие выпуклости для дифференцируемой на отрезке [а; b] функции f (x)
означает, что на этом отрезке любая касательная к графику f (x) лежит не выше
этого графика (рис. 2.3).
Уравнение касательной к графику f (х) в точке (x0 , f (x0)), x0 [а; b] имеет вид:
у(х)=f (x0)+f ’(x0)(x–x0). По формуле конечных приращений для любого х[а; b]
имеем: f (х)=f (x0)+f ’()(x–x0), где точка  лежит между x и x0. Поэтому
f (х) – у(х)=[ f ’() – f ’(x0)](x–x0),
х[а; b] ,
откуда с учетом того, что производная f ’(x) выпуклой функции не убывает,
получаем:
f (x)–y(x) 0
(2.5)
для всех х[а; b].
4. Если f (x) – выпуклая дифференцируемая на отрезке [а; b] функция и в
точке х* [а; b] выполняется равенство
f ’(x*) = 0
(2.6)
то х* является точкой глобального минимума f (х) на [а; b].
С учетом (2.6) уравнение касательной у(х)=f (х0)+f ’(х0)(х–х0) к графику f (x)
для точки x0 =х* принимает вид у(х) =f (x*). Поэтому из (2.5) следует, что
f (x)  f (x*) для всех х[а; b], т.е. х* – точка глобального минимума f (x).
Благодаря свойству 3 выпуклых функций данное свойство приобретает
простой геометрический смысл: поскольку касательная к графику f (x) в точке с
абсциссой х* горизонтальна, а этот график расположен не ниже касательной, то
х* есть точка минимума f (x) (рис. 2.3).
Таким образом, равенство (2.6) для выпуклой дифференцируемой функции
является не только необходимым условием глобального минимума (как для
всякой дифференцируемой функции), но и его
достаточным условием.
5. Можно показать, что всякая выпуклая
непрерывная на отрезке [а; b] функция является и
унимодальной на этом отрезке. Обратное, вообще
говоря, неверно (рис. 2.4).
Таким образом, кроме перечисленных свойств,
выпуклые функции обладают также и всеми
Рис. 2.4. График унимодальной,
но не выпуклой функции
10
свойствами унимодальных функций.
Замечание. При исследовании выпуклости функций на практике неравенство
(2.4) удается использовать только в редких случаях. Поэтому для
дифференцируемых достаточное число раз функций обычно применяют
дифференциальные критерии выпуклости (см. свойство 2 выпуклых функций).
Непосредственная проверка унимодальности с помощью определения 2.1
также в большинстве случаев вызывает затруднения, и для обоснования
унимодальности достаточно гладких функций часто используют те же критерии
выпуклости. Если функция оказывается выпуклой, то можно утверждать (см.
свойство 5), что она унимодальна. Разумеется, при отрицательном результате
проверки функции на выпуклость нельзя сделать вывод о том, что она не
унимодальна.
2.1.4. УСЛОВИЕ ЛИПШИЦА
Применение некоторых методов одномерной минимизации возможно только в
случае, если скорость изменения целевой функции f (х) на любом участке отрезка
[а; b] ограничена некоторым числом, одним и тем же для всех участков. В этом
случае говорят, что f (х) удовлетворяет на [а; b] условию Липшица. Целевые
функции большинства практических задач оптимизации
указанным свойством обладают.
Определение 2.3. Функция f (х) удовлетворяет на
отрезке [а; b] условию Липшица, если существует такое
число L > 0 (константа Липшица), что
f ( x)  f ( x)  L x  x
(2.7)
Рис. 2.5. График функции
f  x   x , x  0;1 , не
для всех х' и х", принадлежащих [а; b].
Замечания:
1. Если неравенство (2.7) выполняется с константой L, то оно
справедливо и при всех L  L . Поэтому для функции,
удовлетворяющей условию Липшица, существует бесконечное множество
констант L из (2.7).
При использовании алгоритмов минимизации, включающих L как параметр,
наилучшие результаты достигаются, как правило, если в качестве L берется
минимальная из констант Липшица.
2. Из условия (2.7) непосредственно следует непрерывность f (х) на отрезке [а; b].
Поэтому, согласно теореме Вейерштрасса, функция f (х), удовлетворяющая на
отрезке [а; b] условию Липшица, имеет на нем хотя бы одну точку минимума.
3. Условие (2.7) означает, что модуль углового коэффициента любой хорды
графика f (х) не превосходит L.
Переходя в (2.7) к пределу при x  x  0 , убеждаемся, что если в некоторой
точке существует касательная к графику функции f (х), то модуль ее углового
коэффициента также не может превышать L. Так, функция f (х)= x на отрезке
[0; 1] условию Липшица не удовлетворяет, потому что при x  0 угловой
коэффициент касательной к ее графику k неограниченно возрастает (рис. 2.5).
удовлетворяющей условию
Липшица
11
4. Если функция f (х) имеет на отрезке [а; b] непрерывную производную, то
она удовлетворяет на этом отрезке условию Липшица с константой
L  max f ( x) .
a; b
По формуле конечных приращений для произвольных точек х', х" [а; b]
имеем: f ( x)  f ( x)  f ( )( x  x) , где – некоторая точка, лежащая между х' и
х". Отсюда с учетом условия f ( )  max f ( x)  L получаем неравенство (2.7) для


a; b
f (х).
5. Если a=x0 <x1<…<xn =b, а функция f (х) непрерывна на [а; b] и
удовлетворяет условию (2.7) на каждом из отрезков [xi, xi+1], i = 0, 1,..,п – 1, с
константой Li, то она удовлетворяет условию Липшица и на всем отрезке [а; b] с
константой L 
max
Li .
0  i  n 1
2.1.5. КЛАССИЧЕСКАЯ МИНИМИЗАЦИЯ ФУНКЦИИ ОДНОЙ
ПЕРЕМЕННОЙ
Из математического анализа известны следующие условия локального
экстремума функции f (х), дифференцируемой достаточное число раз.
x и достигает в этой точке
1. Если функция f (х) дифференцируема в точке ~
~
локального экстремума, то f ( x )  0 (необходимое условие экстремума).
2. Пусть функция f (х) п раз дифференцируема в точке ~
x и в этой точке все
производные f (х) до п – 1–го порядка включительно равны нулю, f (n) ( ~
x )  0.
~
Тогда, если n – нечетно, то x не является точкой локального экстремума
функции f (х). Если же n – четное число, то:
а) при f (n) ( ~
x – точка локального минимума f (х);
x)  0 ~
б) при f (n) ( ~
x – точка локального максимума f (х) (достаточное условие
x)  0 ~
экстремума).
Перечисленные условия позволяют предложить следующий путь решения
задачи минимизации (2.1):
1) с помощью условия 1 находим все точки возможного экстремума функции
f (х) на интервале (а; b), т.е. корни уравнения
f ( ~
x)  0
(2.8)
(стационарные точки), принадлежащие интервалу (а; b);
2) найденные стационарные точки исследуем в соответствии с условием 2,
выделяя из них только точки локальных минимумов f (х);
3) значения f (х) в точках локальных минимумов и на концах отрезка [а; b]
сравниваем между собой. Наименьшему из этих значений соответствует точка
глобального минимума f (х) на [а; b].
3амечание. Применение условия 2 требует вычисления высших производных
функции f (х), поэтому в большинстве случаев бывает проще сравнить значения
12
f (х) во всех стационарных точках, не интересуясь их характером. С учетом этого
можно предложить следующий алгоритм минимизации f (х) на отрезке [а; b]
(классический метод).
Шаг 1. Решить уравнение (2.8) на интервале х  (а; b), т.е. найти все
стационарные точки x1, .., xk–1 (а; b). Положить x0 = а, xk = b.
Шаг 2. Вычислить значения f (х) функции f (х) в точках xi, i = 0, .., k.
Шаг 3. Найти f *  min f ( xi )  f ( xm ) . Положить х* = xm .
0ik
Пример 2.2. Классический метод минимизации.
Решить задачу f (х) =х3 – Зх +1  min, х  [–2; 2].
Шаг 1. Находим корни уравнения f '(х) = Зx2 – 3 = 0 из интервала (–2; 2):
x1 = –1, x2 = 1. Полагаем x0 = –2, x3 = 2.
Шаг 2. Вычисляем значения f (х) в точках xi, i = 0, .., 3: f (х0) = –17, f (х1) = 3,
f (х2) = –1, f (х3) = 1.
Шаг 3. Находим f *= min(–l 7, 3, –1, 1) = – 17 = f (х0). Поэтому x* = х0 = –2, f
*=–17.
При решении практических задач оптимизации классический метод имеет
ограниченное применение. Это объясняется тем, что, во–первых, во многих
случаях значения целевой функции f (х) находятся из измерений или
экспериментов, а измерение производной f '(х) затруднительно или невозможно
и, во–вторых, даже когда производная f '(х) задана аналитически или поддается
измерению, решение уравнения (2.8) зачастую вызывает затруднения.
2.2. ПРЯМЫЕ МЕТОДЫ
Для решения задачи минимизации функции f (х) на отрезке [а; b] на практике,
как правило, применяют приближенные методы. Они позволяют найти решение
этой задачи с необходимой точностью в результате определения конечного числа
значений функции f (х) и ее производных в некоторых точках отрезка [а; b].
Методы, использующие только значения функции и не требующие вычисления
ее производных, называются прямыми методами минимизации.
Большим достоинством прямых методов является то, что от целевой функции
не требуется дифференцируемости и, более того, она может быть не задана в
аналитическом виде. Единственное, на чем основаны алгоритмы прямых методов
минимизации, это возможность определения значений f (х) в заданных точках.
Рассмотрим наиболее распространенные на практике прямые методы поиска
точки минимума. Самым слабым требованием на функцию f (х), позволяющим
использовать эти методы, является ее унимодальность. Поэтому далее будем
считать функцию f (х) унимодальной на отрезке [а; b].
2.2.1. МЕТОД ПЕРЕБОРА
Метод перебора или равномерного поиска является простейшим из прямых
методов минимизации и состоит в следующем.
13
Разобьем отрезок [а; b] на п равных частей точками деления xi = а + i(b – а)/п,
i = 0, .., n. Вычислив значения f (х) в точках xi, путем сравнения найдем точку xm ,
0  т  п, для которой
f ( xm ) 
min f ( xi ).
0in
(2.9)
Далее, положим x*  xm , f *  f ( xm ) .
Замечания:
1. Погрешность определения точки минимумах x* функции f (х) методом
перебора не превосходит величины  n  (b  a) / n .
Предположим, что xm, из (2.9) является внутренней точкой разбиения отрезка
[а;b], т.е. 1  m  n  1(случаи m = 0 и т = n рассматриваются аналогично). Тогда
из соотношения (2.9) с учетом свойства (2.3) унимодальных функций следует
что:
а) f ( xm  1)  f ( xm ), т.е. x*  xm  1; b;
б) f ( xm )  f ( xm  1), т.е. x*  a; xm  1 .
Отсюда получаем, что x*  xm  1; b  x*  a; xm  1  = xm  1; xm  1.
Длина последнего отрезка равна 2(6 – а)/п, а точка xm является его серединой.
Поэтому xm  x*  (b  a) / n   n .
Таким образом, чтобы обеспечить требуемую точность  определения точки
х*, число отрезков разбиения п необходимо выбрать из условия  n  (b  a) / n  
, т.е. n  (b  a) /  .
2. Пусть реализация метода перебора потребовала N вычислений функции
f (х). Это означает, что отрезок [а; b] был разбит на n=N–1 частей и достигнутая
ba
точность определением x* составила  n   N  1 
. Поэтому точность
N 1
решения (N), которую обеспечивает метод перебора в результате N вычислений
f (х), будет
 (N ) 
ba
.
N 1
(2.10)
Пример 2.3. Метод перебора.
Решить задачу f (х)=x4+e–x  min, x  [0; 1] с точностью до  = 0,1.
Функция f (х) унимодальна на отрезке [0; 1] (проверьте!). Найдем число n
1 0
отрезков разбиения: n 
 10 , т.е. можно взять n = 10. Вычислим значения
0,1
f (xi), где xi=0,1i, i = 0, .., 10 и запишем их в табл. 2.1.
14
xi
0,0
f (xi)
1.00 0,90 0,82 0.75 0,70 0,67 0.68
0,1
0,2
0,3
0,4 0,5
0,6
0,7
0,8
0,74 0,86
Таблица 2.1
0,9 1,0
1,06 1,37
В этой таблице подчеркнуто минимальное из вычисленных значений f (x).
Таким образом, х*  0,5, f *  0,67.
2.2.2. МЕТОДЫ ИСКЛЮЧЕНИЯ ОТРЕЗКОВ
В методе перебора, рассмотренном выше, точки xi, в которых определяются
значения f (x), выбирают заранее. Если же для выбора очередной точки
вычисления (измерения) f (x) использовать информацию, содержащуюся в уже
найденных значениях f (x), то поиск точки минимума можно сделать более
эффективным, т.е. сократить число определяемых для этого значений f (x), как,
например, в методе поразрядного поиска.
На один из путей такого более эффективного поиска точки х* указывает
свойство 3 унимодальных функций (см. формулу (2.3)).
Пусть а < x1<х2<b. Сравнив значения f (x) в точках x1 и х2 (пробных точках),
можно сократить отрезок поиска точки х *, перейдя к отрезку [а; х2], если
f ( x1)  f ( x2 ) или к отрезку m [x1; b] если f ( x1)  f ( x2 ) (рис. 2.6). Описанную
процедуру можно повторить необходимое число раз, последовательно уменьшая
отрезок, содержащий точку минимума. Когда длина последнего из найденных
*
отрезков станет достаточно малой, следует положить x  x , где x – одна из
точек этого отрезка, например, его середина. Методы минимизации, основанные
на этом принципе, называются методами исключения отрезков.
Чтобы относительное уменьшение отрезка на каждой итерации не зависело от
того, какая из его частей исключается из дальнейшего рассмотрения, пробные
точки следует располагать симметрично относительно середины исходного
отрезка. В зависимости от способа выбора пробных точек получаются различные
методы исключения отрезков. На практике используются следующие.
Рис. 2.6. Уменьшение отрезка поиска точки минимума методами исключения
отрезков
Первый метод деления отрезка пополам (дихотомии). В этом методе
точки x1 и х2 располагаются близко к середине очередного отрезка [а; b],
т.е:
15
x1 
b  a 
b  a 
,
, x2 
2
2
(2.11)
где  > 0 – малое число. При этом отношение длин нового и исходного отрезков
b  x1 x2  a
близко к 1/2, этим и объясняется название метода.


ba
ba
Отметим, что для любых точек x1 и х2 величина  > 1/2, поэтому указанный
выбор пробных точек объясняется стремлением обеспечить максимально
возможное относительное уменьшение отрезка на каждой итерации поиска х*.
В конце вычислений по методу дихотомии в качестве приближенного
значения х* берут середину последнего из найденных отрезков [а; b], убедившись
ba
предварительно, что достигнуто неравенство
 .
2
Опишем алгоритм метода деления отрезка пополам.
Шаг 1. Определить x1 и х2 по формулам (2.11). Вычислить f (x1) и f (x2).
Шаг 2. Сравнить f (x1) и f (x2). Если f ( x1)  f ( x2 ) , то перейти к отрезку
[а; x2], положив b = x2 , иначе – к отрезку [x1; b], положив а = x1 .
ba
Шаг 3. Найти достигнутую точность  n 
. Если  n   , , то перейти к
2
следующей итерации, вернувшись к шагу 1. Если  n   , то завершить поиск х*,
перейдя к шагу 4.
 ab

, f *  ( x) .
Шаг 4. Положить x*  x 
2
Замечания:
1. Число  из (2.11) выбирают на интервале (0;2) с учетом следующих
соображений:
а) чем меньше , тем больше относительное уменьшение длины отрезка на
каждой итерации, т.е. при уменьшении  достигается более высокая скорость
сходимости метода дихотомии;
б) при чрезмерно малом  сравнение значений f (x) в точках x1 и х2 ,
отличающихся на величину , становится затруднительным. Поэтому выбор 
должен быть согласован с точностью определения f (x) и с количеством верных
десятичных знаков при задании аргумента х.
2. Число п итераций метода дихотомии, необходимое для определения точки
х* с точностью до , определяется неравенством
n  log 2
b  a 
.
2  
(2.12)
Обозначим длину исходного отрезка [а; b] через 0. Длина отрезка,


полученного после первой итерации, будет 1 = 0  , после второй итерации
2
2
16

 ba
1 1
2  1  
    ,
после
третьей
–
2
2
4
4 2

 ba
1 1 1
3  2  
      , и т.д.
2
2
8
8 4 2
Таким образом, в результате п итераций длина отрезка поиска точки х* станет
ba  1
1
1 b  a 
1 
 .
n 
 

 ...   
 1 

n
n
n

1
n
n
2
2
 2
 2 
2
2

При этом будет достигнута точность определения точки минимума  n  n .
2
Находя п из условия
n 
ba 
1 
  ,
 1 

n

1
n
 2 2
2
(2.13)
получаем неравенство (2.12).
3. Величина  может быть выбрана достаточно малой, поэтому, пренебрегая
ba
ею в (2.12), получаем:  n 
. На каждой итерации метода дихотомии
n

1
2
вычисляют два значения f (x). Поэтому после N вычислений f (x) производят
n=N/2 итераций и достигают точность определения х* :
 N    N

2
ba
.
N
1
22
(2.14)
Пример 2.5. Метод деления отрезка пополам.
Решить задачу, приведенную в примерах 2.3 и 2.4:
f ( x)  x 4  e  x  min , x [0;1] , =0,1.
Выберем =0,02.
Итерация 1.
Шаг 1. x1 = 0,49, x2 = 0,51. f (x) = 0,670, f (x2) = 0,688.
Шаг 2. f (x1) > f (x2), поэтому полагаем a = x1 = 0,49.
Шаг 3. (b–а)/2 = 0,255 > 0,1, т.е. переходим к следующей итерации.
Результаты вычислений на остальных итерациях записаны в табл. 2.2.
Таблица 2.2
17
Номер
итерации
а
b
2
0,49
1
b–a
2
x1
x2
f (x1)
f (x2)
0,26 0,73 0,7 0,771 0,792
5 55
Сравнение
f (x1) и f (x2)
f (x1) < f (x2)
3
4
0,49 0,75 0,13 0,61 0,6 0,683 0,691 f (x1) < f (x2)
5 0,07 3 0,07
33< 0,1 – точность достигнута
0.49 0,63
3
0,49  0,633
Таким образом, x* 
 0,56 , f *  f (0,56)  0,67 (сравните с
2
результатами решения примеров 2.3 и 2.4).
Метод золотого сечения. Рассмотрим такое симметричное расположение
точек x1 и х2 на отрезке [а; b], при котором одна из них становится пробной
точкой и на новом отрезке, полученном после исключения части исходного
отрезка. Использование таких точек позволяет на каждой итерации метода
исключения отрезков, кроме первой, ограничиться определением только одного
значения f (x), так как другое значение уже найдено на одной из предыдущих
итераций.
Найдем точки x1 и х2 , обладающие указанным свойством.
Рассмотрим сначала отрезок [0; 1] и для определенности предположим, что
при его уменьшении исключается правая часть этого отрезка. Пусть х2 = , тогда
симметрично расположенная точка х1 = 1– (рис. 2.7).
Рис. 2.7. Определение пробных точек в методе золотого сечения
Пробная точка х1 отрезка [0; 1] перейдет в пробную точку х2 = 1– нового
отрезка [0; т]. Чтобы точки х2 = , и х2 = 1– делили отрезки [0; 1] и [0; ] в одном
1

и том же отношении, должно выполняться равенство 
или  2  1   ,
 1
5 1
 0,61803 … Таким образом,
откуда находим положительное значение  
2
5 1
3 5
х1 = 1– =
, x2   
.
2
2
Для произвольного отрезка [а; b] выражения для пробных точек примут вид
x1  a 
3 5
5 1
(b  a ) ; x2  a 
(b  a) .
2
2
(2.15)
Замечания:
1. Точки x1 и х2 из (2.15) обладают следующим свойством: каждая из них делит
отрезок [а; b] на две неравные части так, что отношение длины всего отрезка к
18
длине его большей части равно отношению длин большей и меньшей частей
отрезка. Точки с таким свойством называются точками золотого сечения отрезка
[а; b]. Это и объясняет название рассматриваемого метода.
2. На каждой итерации исключения отрезков с пробными точками (2.15) одна
из них x переходит на следующий отрезок и значение f (x) в этой точке
вычислять не следует. Если новым отрезком становится [а; х2], то на него
переходит пробная точка x  x1 исходного отрезка, становясь его второй
пробной точкой (х2’= х1) (рис. 2.7). В случае перехода к отрезку [х1; b] пробная
точка x  x2 исходного отрезка становится первой пробной точкой отрезка [х1; b].
3. Легко проверить, что х1=а+b–х2 , и x2=а+b–х1. Поэтому на каждой итерации
метода золотого сечения недостающую пробную точку нового отрезка можно
найти по перешедшей на него пробной точке с помощью сложения и вычитания,
не используя формул (2.15).
4. В конце вычислений по методу золотого сечения в качестве приближенного
ab
значения х* можно взять середину последнего из полученных отрезков x 
.
2
На каждой итерации отрезок поиска точки минимума уменьшается в одном и
5 1
том же отношении  
, поэтому в результате п итераций его длина
2
становится  n   n (b  a) . Таким образом, точность n определения точки х*
после п итераций находят из равенства
n
1  5  1
 (b  a ) ,
n 
 
2
2  2 
n
(2.16)
а условием окончания поиска точки х* с точностью  служит неравенство n  .
Опишем алгоритм метода золотого сечения.
Шаг 1. Найти х1 и х2 по формулам (2.15). Вычислить f (x1) и f (x2). Положить
5 1
ba

, n 
.
2
2
Шаг 2. Проверка на окончание поиска: если n > , то перейти к шагу 3, иначе
– к шагу 4.
Шаг 3. Переход к новому отрезку и новым пробным точкам. Если f (x1)  f (x2)
то положить b=x2 , x2=x1 , f (x2)  f (x1), x1=b–(b–a) и вычислить f (x1), иначе –
положить a=x1, x1= x2 , f (x1) = f (x2), x2=b+(b–a) и вычислить f (x2). Положить n =
n и перейти к шагу 2.
ab
Шаг 4. Окончание поиска: положить x*  x 
, f *  f (x) .
2
Пример 2.6. Метод золотого сечения.
Решить задачу, приведенную в примере 2.3: f (x) =x4 +е–xmin, x [0; 1],  = 0, 1.
И т е р а ц и я 1.
Шаг 1. Находим: x1 = 0,382, x2 = 0,618, f (x1) = 0,704, f (x2) = 0,685, n = 0,5.
19
Шаг 2. n = 0,5 >  =0,1, поэтому переходим к шагу 3.
Шаг 3. f (x1) > f (x2), поэтому полагаем a = 0,382, x1 = 0,618, f (x1) = 0,685, x2 =
0,764, n = 0,309 и вычисляем f (x2) = 0,807. Переходим к следующей итерации,
начиная с шага 2.
Результаты вычислений на остальных итерациях представлены в табл. 2.3
(стрелки указывают значения, переходящие на данную итерацию с предыдущей).
Таблица 2.3
Сравнение
f (x1) и f (x2)
Номер
Итерации
a
2
3
0,382
0,382
1,000 0,309 0,618 0,764 0,685 0,807
0,764 0,191 0,528 0,618 0,668 0,685
f (x1) < f (x2)
f (x1) < f (x2)
4
0,382
0,618 0,118 0,472 0,528 0,673 0,668
f (x1) > f (x2)
5
0,472
0,618 0,073
b
n
x1
x2
f (x1) f (x2)
0,073 < 0,1 – точность достигнута
0,472  0,618
Таким образом, x* 
 0,55 , f *f (0,55) = 0,67 (сравните с
2
решением примеров 2.3–2.5).
Замечание. Число итераций, необходимое для достижения заданной точности
, можно найти из условия n   с учетом соотношения (2.16):
 2 
 2 
n  ln 
ln  2,1ln 

.
b a
b a
Так как N вычислений f (x) позволяют выполнить N – 1 итераций метода
золотого сечения, то достигнутая в результате этих вычислений точность
определения х* составляет
N 1
1  5  1

 ( N )   N  1  
(b  a ) .
(2.17)
2  2 
Второй метод деления отрезка пополам. Этот метод, использующий на
каждой итерации три пробные точки, обеспечивает последовательное
уменьшение длины отрезка, содержащего х*, ровно вдвое. Рассмотрим способ
исключения отрезков, применяемый в рассматриваемом методе.
Разделим отрезок [a; b] на четыре равные части пробными точками
ba
xi  a 
i , i=1,2,3. Сравним значения f (x1) и f (x2). Если f (x1)  f (x2), то
4
уменьшенный вдвое отрезок поиска точки х* найден – это [а; х2]. Если f (x1) >
f (x2), то произведем еще одно сравнение значений f (x): при f (x2)f (x3), перейдем
к отрезку [x1; х3], а в противном случае – к отрезку [x2; b].
Отметим, что каким бы ни оказался новый отрезок, одна из уже
использованных пробных точек переходит на его середину, становясь новой
точкой x2 . Таким образом, для проведения следующей итерации на вновь
20
полученном отрезке потребуется вычисление не более двух новых значений f (x)
(либо только в точке x1, либо еще и в точке x3).
Перечислим основные шаги алгоритма второго метода деления отрезка
пополам.
ab
. Вычислить значение f (x2) и перейти к шагу 2.
2
ab
Шаг 2. Положить x2 
. Вычислить значение f (x1) и перейти к шагу 3.
2
Шаг 3. Сравнить f (x1) и f (x2). Если f (x1)  f (x2), то продолжить поиск на
отрезке [а;x2], положив b= x2, x2= x1, f (x1) = f (x2), и перейти к шагу 5, иначе –
x b
положить x3  2
, вычислить значение f (x3) и перейти к шагу 4.
2
Шаг 4. Сравнить f (x2) и f (x3). Если f (x2)  f (x3), то перейти к отрезку [x1; x3],
положив a= x1, b = x3, иначе – продолжить поиск на отрезке [x2; b], положив а =
x2, x2 = x3, f (x2)= f (x3). Перейти к шагу 5.
ba
Шаг 5. Проверка на окончание поиска. Вычислить  n 
и сравнить с .
2
Если n > , то перейти к следующей итерации, вернувшись к шагу 2, иначе –
завершить поиск, положив х*  x2 , f *  f (x2).
Пример 2.7. Второй метод деления отрезка пополам.
Решить задачу, приведенную в примере 2.3: f (x) = x4 +e–x  min, x[0;1],
=0,1.
И т е р а ц и я 1.
Шаг 1. Находим x2=0,5, f (x2) = 0,669. Переходим к шагу 2.
Шаг 2. Определяем x1 = 0,25, f (x1) = 0,783. Переходим к шагу 3.
Шаг 3. f (x1) > f (x2), поэтому полагаем x3 = 0,75, вычисляем f (x3) = 0,789 и
переходим к шагу 4.
Шаг 4. f (x1) < f (x2), поэтому полагаем а = 0,25, b = 0,75 и переходим к шагу 5.
Шаг 5. Находим n = 0,25 > 0,1, т.е. переходим к следующей итерации,
начиная с шага 2.
Результаты вычислений на остальных итерациях записаны в табл. 2.4.
Шаг 1. Положить x1 
Таблица 2.4
Номер
итерации
2
3
4
21
а
b
n
x1
x2
x3
Сравнение
f (x1) f (x2) f (x3) f (x1) и f (x2)
0,250 0,750 0,25 0,375 0,500 0,625 0,707 0,669 0,688 f (x1) > f (x2)
f (x2) < f (x3)
0,375 0,625 0,13 0,438 0,500 0,563 0.669 0,669 0,670 f (x1) > f (x2)
f (x2) < f (x3)
0,438 0,563 0,06
0,06 < 0,1 – точность достигнута
Таким образом, x*  x2 = 0,5, f *  f (x2) = 0,67. Сравните этот ответ с результатами решения предыдущих примеров.
Замечание. На первой итерации второго метода деления отрезка пополам
вычисляется не более трех значений f (x) а на остальных – не более двух.
Поэтому N вычислений f (x) гарантируют осуществление (N–1)/2 итераций, и
достигнутая точность определения x* составляет
 (N ) 
ba
.
N 1
1
2 2
(2.18)
Сравнение методов исключения отрезков и перебора. При сравнении
прямых методов минимизации обычно учитывают количество N значений f (x),
гарантирующее заданную точность определения точки х* тем или иным методом.
Чем меньше N, тем эффективнее считается метод. При этом вспомогательные
операции такие, как выбор пробных точек, сравнение значений f (x) и т.п., не
учитываются. Во многих практических случаях определение значений целевой
функции требует больших затрат (например, времени ЭВМ или средств для
проведения экспериментов) и вспомогательными вычислениями можно пренебречь. А эффективность метода минимизации особенно важна именно в таких
случаях, поскольку позволяет сократить указанные затраты.
Эффективность методов минимизации можно также сравнивать, на основании
гарантированной точности (N) нахождения точки х*, которую они обеспечивают
в результате определения N значений f (x). Из анализа формул (2.10), (2.14),
(2.17) и (2.18) следует, что наиболее эффективным из сравниваемых методов
является метод золотого сечения, за ним идут методы деления отрезка пополам и
наименее эффективен метод перебора. Этот вывод иллюстрирует табл. 2.5
значений достигнутой точности (N) в зависимости от количества N найденных
значений f (x) на отрезке длины 1 для указанных методов.
Таблица 2.5
Методы
минимизации
Количество найденных значений
f (x)
N = 5 N = 11
N = 21
N = 51
Метод золотого 0,073 4,1 10–3 3,3 10–5
сечения
1,8 10–11
Методы
0,125 1,6 10–2 4,9 10–4
деления
отрезка
пополам *)
Метод перебора 0,250 0,100
0,050
1,5 10–8
0,020
22
* ) Из формул (2.14) и (2.18) следует приблизительно одинаковая
эффективность обоих методов деления отрезка пополам. В табл. 2.5
представлены значения (N) для второго из них
2.2.3. МЕТОД ПАРАБОЛ
Поиск точки минимума методами исключения отрезков основан на сравнении
значений функции в двух точках. При таком сравнении разности значений f (x) в
этих точках не учитываются, важны только их знаки.
Учесть информацию, содержащуюся в относительных изменениях значений
f (x) в пробных точках, позволяют методы полиномиальной аппроксимации,
основная идея которых состоит в том, что для функции f (x) строится
аппроксимирующий многочлен, и его точка минимума служит приближением к
х*. Для эффективного использования этих методов на функцию f (x), кроме
унимодальности, налагается дополнительное требование достаточной гладкости
(по крайней мере, непрерывности).
Обоснованием указанных методов является известная из математического
анализа теорема Вейерштрасса об аппроксимации [4], согласно которой
непрерывную на отрезке функцию можно с любой точностью приблизить на этом
отрезке некоторым полиномом .
Для повышения точности аппроксимации можно, во–первых, увеличивать
порядок полинома и, во–вторых, уменьшать длину отрезка аппроксимации.
Первый путь приводит к быстрому усложнению вычислительных процедур,
поэтому на практике используются аппроксимирующие полиномы не выше
третьего порядка. В то же время уменьшить отрезок, содержащий точку
минимума унимодальной функции, не представляет особого труда.
В простейшем методе полиномиальной аппроксимации –
методе парабол используются полиномы второго порядка.
На каждой итерации этого метода строят квадратный
трехчлен, график которого (парабола) проходит через три
выбранные точки графика функции f (x) (рис. 2.8).
Опишем метод парабол. Рассмотрим унимодальную на
отрезке [а; b] функцию f (x), достигающую минимума во
Рис. 2.8.
внутренней точке этого отрезка. Выберем три точки х1, х2 и
х3 отрезка [а; b], для которых выполняются неравенства:
х1 < х2 < х3 , f (x1)  f (x2)  f (x3). *
(2.19)
Из унимодальности f (x) следует, что х*  [х1; х3].
Построим квадратный трехчлен q(x) = а0 + a1(x–x1) + a2(x–x1)(x–x2), график
которого проходит через точки (x1, f (x1)), (x2, f (x2)) (x3, f (x3)) графика функции
f (x). Будем считать, что если хотя бы одно из неравенств (2.19) для f (xi) является
*
Если окажется, что
x =х2 , то в качестве второй пробной точки (помимо х2) можно взять любую другую
x2  x3
x1  x2
точку интервала (x1; x3) например,
23
2
или
2
.
строгим (если f (x1)= f (x2) = f (x3), то поиск точки х* на этом закончен, так как из
унимодальности функции f (x) следует, что она достигает минимума в каждой
точке отрезка [х1; х3]). Тогда из (2.19) следует, что ветви искомой параболы
направлены вверх, а точка минимума x трехчлена q(x) принадлежит отрезку
[х1; х3].
Определяя коэффициенты а0, a1 и a2 из системы уравнений:
q(x1) = f (x1) = f 1 ;
q(x2) = f (x2) = f 2 ;
q(x3) = f (x3) = f 3 ,
где q(x) = а0 + a1(x–x1) + a2(x–x1)(x–x2).
находим
f  f1
1  f3  f1
, a2 
a0  f1 , a1  2
x2  x1
x3  x2  x3  x1
f 2  f1 
.
x2  x1 
Точку минимума x квадратного трехчлена q(x) вычислим, приравняв его
производную к нулю. Получим
( f  f1)( x3  x2 )
a  1
1
x   x1  x2  1    x1  x2  2
2
a2  2 
x2  x1
 f 3  f1 f 2  f1 



x x

 3 1 x2  x1 
(2.20)
Число x из (2.20) служит очередным приближением метода парабол к х*.
Далее описанная процедура повторяется для новых точек x1, x2, x3,
удовлетворяющих неравенствам (2.19).
Выбрать эти точки среди x1, x2, x3, и x можно с помощью перехода от
исходного к новому отрезку [x1; x3], содержащему точку х*, методом исключения
отрезков. Для этого перехода используют пробные точки x2 и x и сравнивают
значения f (x) в этих точках *). Начало и конец нового отрезка, а также пробная
точка, попавшая на него, образуют тройку точек, обладающих свойством (2.19).
Заметим, что на каждой итерации метода парабол, кроме первой,
определяется только одно новое значение f (x).
Условием окончания поиска служит близость к нулю разности  чисел x ,
найденных на данной и предыдущей итерациях, т.е. неравенство ||  , где –
заданное число, характеризующее точность определения х*.
Перечислим основные шаги алгоритма метода парабол.
Шаг 1. Выбрать точки x1, x2, x3, удовлетворяющие условиям (2.19). Перейти к
шагу 2.
24
Шаг 2. Найти x по формуле (2.20). На первой итерации перейти к шагу 4, на
остальных – к шагу 3.
Шаг 3. Проверка на окончание поиска. Сравнить модуль разности значений
x на данной и предыдущей итерациях  с числом . Если ||  , то поиск
завершить, полагая х*  x , f *  f (x), иначе – перейти к шагу 4.
Шаг 4. Вычислить значение f ( x ). Перейти к шагу 5.
Шаг 5. Определить новую тройку чисел x1, x2, x3. Присвоить f (x1), f (x2) и f (x3)
соответствующие значения f (x) найденные ранее. Перейти к шагу 2.
Пример 2.8. Метод парабол.
Решить задачу f (x) =х4 + е–x  min, х [0; 1] с точностью ||   = 0,0025.
Итерация 1.
Шаг 1. Выберем точки х1 = 0,25, х2 = 0,5, х3, = 0,75. Функция принимает в
этих точках значения, соответственно f 1 = 0,7827, f 2 = 0,6690, f 3 = 0,7888,
удовлетворяющие неравенствам (2.19). Переходим к шагу 2.
Шаг 2. По формуле (2.20) находим: x = 0,4968. Переходим к шагу 4.
Шаг 4. Вычисляем f ( x ) = 0,6694. Переходим к шагу 5.
Шаг 5. На данной итерации имеем: x1 < x < x2 < x3, f ( x ) > f (x2), следовательно, x*[ x ; x3]. Поэтому полагаем: x1 = x = 0,4968, f (x1) = f ( x ) = 0,6694, а
точки х2 , x3 и значения f (x) в них не изменяются. Переходим к следующей
итерации, начиная с шага 2.
Итерация 2 .
Шаг 2. Находим x = 0.5224. Переходим к шагу 3.
Шаг 3.  =0.4968–0,5224= 0,026 > 0,0025, поэтому переходим к шагу 4.
Шаг 4. Вычисляем f ( x ) =0,6676. Переходим к шагу 5.
Шаг 5. На этой итерации x1 < x2 < x < x3, f (x2) > f ( x ), поэтому x*[x2; x3] и
полагаем x1 = x2 = 0,5, f (x1) = f (x2) = 0,6690, x2 = x = 0,5524, f (x2) = f ( x ) = 0,6676,
а точка x3 и значение f (x3) остаются прежними. Переходим к следующей
итерации.
Итерация 3.
Ш а г 2. Находим x = 0,5248. Переходим к шагу 3.
Ш а г 3. Определяем  =0,5224–0,5248=0,0024 < 0,0025, т.е. требуемая
точность достигнута. Поэтому полагаем х* = x = 0,525.
Отметим, что в результате пяти вычислений f (x) точка х* была найдена с
весьма высокой точностью (сравните с точным до четвертого знака значением
х*= 0,5283 )
25
Глава 3
МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ ФУНКЦИЙ МНОГИХ
ПЕРЕМЕННЫХ
В этой главе рассматриваются задачи оптимизации, сводящиеся к поиску
точек минимума функции многих переменных на всем пространстве. В
большинстве случаев такая задача бывает сложнее задачи минимизации функции
одной переменной, так как с ростом размерности пространства переменных, как
правило, возрастают объем вычислений и сложность алгоритмов, а также
затрудняется анализ поведения целевой функции.
3.1. ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ
3.1.1. ОСНОВНЫЕ ПОНЯТИЯ ЛИНЕЙНОЙ АЛГЕБРЫ
Будем рассматривать функции многих переменных f =f (x1 , …, xn) как
функции, заданные в точках х n–мерного евклидова пространства Еn : f =f (х).
Точки х  Еn представляют векторами–столбцами координат: x = (х1 ,.. , хn)T , где
символ «Т» – знак транспонирования*.
Перечислим основные определения и из курса линейной алгебры,
которые будут использованы в дальнейшем:
1. В пространстве Еn определены следующие операции:
 сложение х + у = (x1 + y2 , …, xn + yn)
 умножение на действительное число х = (x1 , …, xn)   R;
n
 скалярное произведение <х, у> =  xi yi с известными свойствами .
i 1
2. Напомним определение длины (нормы) вектора х:
1
 n 2 2
x   x, x     xi 


i 1 
и расстояния между векторами x и у (точками пространства Еn):
1
2
 n

 ( x, y)  x  y    ( xi  yi ) 2  .
i  1

Для норм произвольных векторов х, у  Еn справедливо неравенство
треугольника
x y  x  y
(3.1)
Скалярное произведение оценивается по модулю неравенством Коши–
Буняковского
*
В дальнейшем, там, где это не приводит к недоразумениям, символ «Т» будем опускать.
26
 x, y   x y .
(3.2)
3. Остановимся на основных понятиях, связанных с числовыми матрицами.
Матрица A = (а i j ), i = 1, .., т; j= 1, …, n, представляет собой прямоугольный
массив (таблицу) чисел, состоящий из т строк и п столбцов. Таким образом,
вектор–столбец х является матрицей размера n1.
Матрица AT = (а i j ), которая получается из матрицы A = (а i j ), если поменять
местами ее строки и столбцы, называется транспонированной по отношению к
матрице A.
Квадратная матрица A называется симметрической, если AT =A. Матрицы
одинакового размера A = (а i j ) и B = (а i j ) можно складывать: A + В = (а i j + b i j ).
Результатом умножения матрицы A на число , является матрица A =(а i j ).
Произведением Aх матрицы A = (а i j ) размера m n на вектор–столбец хEm
называется вектор–столбец b  Em, координаты котoрого вычисляют по формуле
bi   aij x j  a i , x , i=l,..,m, где a i  (aij ,..., ain )T – вектор коэффициентов i–й
строки матрицы A.
Для матриц A = (а i j ) и B = (b k l ) соответственно размера m n и n r
определено произведение AB = С =(c s t ), где элемент c s t матрицы С размера m r
определяется равенством с st 
n
 a sk bkt .
k 1
Можно показать, что (AB) = BT AT .
Если рассматривать n –мерные векторы–столбцы х и у как матрицы размера
n 1, то формулу для их скалярного произведения можно получить по правилу
умножения матриц хT и у :
 y1 
 
 .  n
 x, y  x T y  ( x1,..., xn ) .    x j y j .
(3.3)
 
 .  j 1
y 
 n
Заметим, что для х и у  En произведение хуT задает квадратную матрицу:
 x1 
 x1 y1 . . . x1 yn 
 


.
.
.
 


T



.
. .
(3.4)
x  y  . ( y1,..., yn ) 
 


. 
 . 
 .
x 
x y . . . x y 
n n
 n
 n 1
T
Если A – квадратная симметрическая матрица размера n n, то для любых
векторов х и у  En <Aх,у>=<х, Aу>, так как <Aх,у>= (Aх)Tу = xTATy= xTAy =<х,
Aу > .
27
Каждой квадратной матрице размера n n можно поставить в соответствие
число – определитель матрицы A (обозначается detA или |A|), которое вычисляют
по формуле
n
det A  A   aij Aij ,
i 1
где алгебраическое дополнение A i j элемента A i j определяется соотношением
A i j = (–1)i+j M i j (минор M ij – это определитель матрицы, полученной из матрицы
A вычеркиванием 1–й строки и j–го столбца). Квадратная матрица A называется
вырожденной, если ее определитель равен нулю, и невырожденной в противном
случае.
Для каждой невырожденной матрицы A существует обратная матрица А–1 =
( i j ) такая, что А–1 А =А А–1= Е, где Е – единичная матрица (e i j ):
1, если i  j,
eij  
0, если i  j, i  1,...,n; j  1,...,n.
Элементы обратной матрицы могут быть найдены по формуле
aij 
Aij
det A
,
где А i j – алгебраическое дополнение элемента a i j матрицы А.
4. Пусть А = (a i j ) – симметрическая матрица размера п  п. Тогда функция п
переменных h1,.., hn , Q(h) =
n n
  aij hi h j =
<Ah, h > называется квадратичной
i 1 j 1
формой этих переменных, а матрица A – матрицей квадратичной формы.
Квадратичная форма Q(h) называется положительно определенной, если для
всех h  0 имеет место неравенство Q(h) > 0.
Из курса линейной алгебры известен критерий Сильвестра положительной
определенности квадратичной формы: для того, чтобы квадратичная форма
Q(h)=<Ah,h> была положительно определенной, необходимо и достаточно, чтобы
ее матрица A = (a i j ) была положительно определена, т.е. все ее угловые миноры
были положительными:
a11 ... a1n
a11 a12
1  a11  0;  2 
 0;...;  n  ...
...  0.
a21 a22
an1 ... ann
(3.5)
5. Ненулевой вектор , для которого A = , называется собственным
вектором квадратной матрицы A, а число  – соответствующим ему
собственным значением этой матрицы.
Собственные значения находят из характеристического уравнения det(A– E)
= 0. Если i – собственное значение матрицы А, то нетривиальное решение
28
однородной системы линейных уравнений (A–iE) =0 дает соответствующий
ему собственный вектор. Собственные значения симметрической положительно
определенной матрицы А положительны, и существует ортонормированный
базис в Еn из собственных векторов 1, .., n матрицы А. В этом базисе матрица А
имеет диагональный вид: на ее главной диагонали стоят собственные значения
1, ..., n, а на остальных местах – нули.
6. Нормой матрицы А размера п  п называется число ||А|| = max ||А||.
 1
Очевидно, что для произвольного вектора х  Еn выполняется неравенство
||Аx||  ||А||||x|| .
(3.6)
Норма симметрической положительно определенной матрицы вдовлетворяет
двойному неравенству
l  ||А||  L ,
(3.7)
где l и L – ее наименьшее и наибольшее собственные значения.
Справедлива оценка A 
n n
  a 2ij
.
i 1 j 1
3.1.2. МИНИМУМ ФУНКЦИИ МНОГИХ ПЕРЕМЕННЫХ
Обобщим некоторые определения, сформулированные в гл. 2 для функции
одной переменной, для случая функций многих переменных. Пусть функция п
переменных f (х) определена во всем пространстве Еn .
1. Точка х*Еn , называется точкой глобального минимума функции f (х), если
для всех х*Еn выполняется неравенство f (x*)  f (х). Значение f (x*) =
= min f ( x )  f *
называется минимумом функции. Множество всех точек
En
глобального минимума функции f (х) будем обозначать через U*.
Замечание. Если U*  0, то вместо минимума функции f (х) иногда
рассматривают ее точную нижнюю грань f*  inf f ( x ) , определение которой в n–
En
мерном случае практически не отличается от определения, данного в разд. 2.1.1.
2. Точка ~
x называется точкой локального минимума функции f (х), если
существует –окрестность точки ~
x : Un ( ~
x )={x | (x, ~
x ) < } такая, что для всех
*
~
~
х Un ( x ) выполняется неравенство f ( x )  f (х).
3. Если допустимое множество U в задаче минимизации (максимизации)
функции n переменных совпадает со всем пространством En , то говорят о задаче
безусловной оптимизации
f ( x)  min(max) , x  En .
3.1.3. ДИФФЕРЕНЦИРУЕМЫЕ ФУНКЦИИ МНОГИХ ПЕРЕМЕННЫХ
Многие алгоритмы минимизации и критерии оптимальности в En
используются только для функций, дифференцируемых необходимое число раз.
Напомним некоторые факты, известные из курса математического анализа.
29
1. Если функция дифференцируема в точке х0  En , то ее приращение f (х0)
= f (х0 + x) – f (х0) можно записать в виде
f (х0) = df (х0) +  ( x ),
0
где df ( x ) 
n df ( x 0 )

j 1 dx j
x j – первый дифференциал f (х) в точке х0 .
 df ( x 0 )
df ( x 0 ) 

,...,
2. Вектор f '(х )=
– называется градиентом функции f (х)
 dx1

dx
n 

0
в точке х . В малой окрестности точки х0 градиент указывает направление
наискорейшего возрастания функции f (х), а его норма характеризует скорость
этого возрастания. Градиент в точке х перпендикулярен линии (поверхности)
уровня f (х) = с, проходящей через эту точку. Очевидно, df (х0) = < f '(х0), x > ,
поэтому
 f (х0) = < f '(х0), x > + ( x ).
0
3. Если функция f (x) дважды дифференцируема в точке х0  En , то
1
 f (х ) = df (х ) + d2f (х0) +  ( x 2) , где d2f (х0) =
2
0
0
n n d 2 f (x 0 )

i 1 j 1 dxi dx j
xi x j
второй дифференциал f (x) в точке х0 .
Используя матрицу вторых производных (мaтрицу Гессе, гессиaн)
 d 2 f (x 0 ) 
0
 , второй дифференциал можно записать так:


f (x )  
 dxi dx j 


d2f (х0) = < f (х0) x, x > , поэтому
 f (х0) = < f (х0), x > +
1
< f (х0) x, x > +  ( x 2). (3.9)
2
4. Из формул (3.8) и (3.9) следует, что для малых ||x ||
f (x)  f (х0) + < f (х0), x >
(3.10)
или
f (x)  f (х0) + < f (х0), x > +
1
< f (х0) x, x > ,(3.11)
2
т.е. в малой окрестности точки х0 поведение дифференцируемой функции f (x)
приближенно описывается формулой (3.10), а дважды дифференцируемой –
формулой (3.11), причем представление (3.11) является более точным.
3.1.4. НЕОБХОДИМЫЕ И ДОСТАТОЧНЫЕ УСЛОВИЯ
МИНИМУМА ДИФФЕРЕНЦИРУЕМОЙ ФУНКЦИИ
Из курса математического анализа известны следующие условия минимума
функции n переменных.
30
1. Если в точке х0  En функция f (x) дифференцируема и достигает
локального минимума, то
f (х0) = 0 или
df ( x 0 )
 0 , j = 1,…, n
dx j
(3.12)
(необходимое условие минимумa). Точки, в которых выполнено условие
(3.12), называются стaционaрными точкaми дифференцируемой функции f (x).
2. Если в стационарной точке х0  En , функция f (x) дважды
дифференцируема и матрица ее вторых производных f (х0) положительно
определена, то х0 есть точка локального минимума f (x) (достаточное условие
минимумa).
Условия 1 и 2 лежат в основе классического метода минимизации функций,
дифференцируемых во всем пространстве En . Приведем алгоритм этого метода.
Шаг 1. Решив систему уравнений (3.12), найти все стационарные точки
функции f (x).
Шаг 2. Используя достаточные условия минимума, среди стационарных точек
функции f (x) найти точки локального минимума и, сравнивая значения функции
в них, определить точки глобального минимума.
Пример 3.1. Классический метод минимизации.
Решить задачу f (x) = x2 1 + x2 2 + x2 3 +x1 – x3 – x2x3  min.
Шаг
1.
Запишем
систему
(3.12):
df
df
df
 2 x1  1  0 ;
 2 x2  x3  0 ;
 2 x3  2  x2  0 . Решив ее, получим
dx1
dx2
dx3
1 2 4
стационарную точку x 0   , , .
2 3 3
0
2 0


Шаг 2. Находим гессиан f "(х0 ) =  0 2  1 . Так как, согласно критерию
0 1 2 


Сильвестра, эта матрица положительно определена, заключаем что х0 является
точкой минимума функции f (x).
Минимальное значение f * f (х0 )= –19/12.
Замечание. Классический метод минимизации функций многих переменных
имеет ограниченное практическое применение в основном из–за трудностей в
аналитическом решении системы уравнений (3.12). Кроме того, на практике
часто аналитическое задание функции неизвестно, а ее значения получают в
результате измерений.
УПРАЖНЕНИЯ
1. Проверить справедливость равенств для данных числовых матриц:
31
1 2
  22 28 
 1 2 3 
 3 4   
 ;
a) 
4
5
6
49
64



 
5 6
 2
 1 2 3    20 
 3     ;
b) 
4
5
6

   47 
 4
 1 2 3
c) 2 3
  14 19 24  ;
4
5
6


1 1 
1 2 1 2 
d) A  
 , то A1  
, AA 1  E .
1  1
1 2  1 2 
2. Установить, какая из приведенных ниже квадратичных форм положительно
определена:
a) Q(h) = h21 + 2h22 – 3h23 – 6h1h2 + 8h1h3 – 4h2h3 ;
b) Q(h) = h21 + 5h22 – 3h23 – 4h1h2 – 2h1h3 – 2h2h3 ;
5
c) Q(h) = h21 + h22 – h23 – h1h2 + 2h1h3 – 2h2h3 .
2
3. Проверить, что матрица
 2 1 2 


A   1 2  2
 2 2 5 


имеет собственные значения 1 = 7, 2 = 3 = 1. Найти ее собственные
векторы. Построить ортонормированный базис в E3 из собственных векторов
матрицы 1. Оценить норму матрицы,
4. Проверить, что точки (0, 3, 1), (О, 1, –1), (1, 2, 0), (2, 1, 1), и (2, 3, –1)
являются стационарными точками функции
f (x) = x2 1 + x2 2 + x2 3 + 2x1x2x3 – 4x1x3 – 2x2x3 – 2x1 – 4x2 + 4x3 .
Найти точки минимума этой функции, используя достаточное условие
минимума.
5. С помощью классического метода найти точки минимума функций:
a) f (x) = x2 1 + x2 2 – 3x1x2 ;
b) f (x) = 2x2 1 + x2 2 + x2 3 + 2x1x2x3 + 6x1 + 6x2 + 4x3 .
3.2. ВЫПУКЛЫЕ МНОЖЕСТВА И ВЫПУКЛЫЕ ФУНКЦИИ
Решение задач минимизации в Еn , как правило, сопряжено со значительными
трудностями, особенно для многоэкстремальных функций. Некоторые из этих
32
трудностей устраняются, если ограничиться рассмотрением только выпуклых
целевых функций.
3.2.1. СВОЙСТВА ВЫПУКЛЫХ ФУНКЦИЙ
Определение 3.1. Пусть х,у  Еn . Множество {z}  Еn точек вида
z = x + (1 – )y , [0; 1] (3.16)
называется отрезком, соединяющим точки х и у.
В пространстве Еn, п  3 соотношение (3.16) определяет обычный отрезок,
соединяющий точки х и у. В самом деле, вектор х–у является направляющим
вектором прямой, проходящей через точки х и у, поэтому для любой точки z этой
прямой справедливо представление z = у + (х – у), которое отличается от (3.16)
лишь формой записи. При  = 0 точка z совпадает с одним из концов отрезка
(z=y), а при  = 1 – другим (z=x). При изменении  от 0 до 1 точка z пробегает
отрезок от точки у до точки х.
Определение 3.2. Множество U  Еn называется выпуклым, если с любыми
точками х и у U оно содержит и весь отрезок (3.16). Очевидно, Еn – выпуклое
множество.
Теорема 3.1. Пересечение выпуклых множеств Ui , i=1,.., m, есть выпуклое
множество, если оно содержит более одной точки.
m
Пусть U=  U i . Рассмотрим произвольные точки х1 и x2  U.
i 1
Очевидно, х1 и x2  U2 при любом i = 1, .., т и, так как все Ui – выпуклы,
отрезок [х1, x2]  Ui для всех i. Следовательно, он целиком принадлежит и
множеству U.
Определение 3.3. Функция f (х), заданная на выпуклом множестве U  Еn
называется выпуклой, если для любых точек x, y  U любого   [0; 1]
выполняется неравенство
f [x + (1– )y]  f (x) + (1–)f (y).
(3.17)
Функция f (х) называется строго выпуклой, если для всех   (0; 1)
неравенство (3.17) выполняется как строгое.
Теорема 3.2. Линейнaя комбинaция выпуклых нa выпуклом множестве U
функций f i(х), i = 1, .., т, с неотрицaтельными коэффициентами i , т.е.
m
f ( x )   i f i ( x ) , i  0 есть выпуклaя нa множестве U функция.
i 1
При i  0 функции if i(х), выпуклы, поэтому для них выполняются
неравенства (3.17). Складывая эти неравенства, получаем:
m
f [x  (1   ) y]   f [x  (1   ) y] 
i 1
m
m
i 1
i 1
   i f i ( x)  (1   )  i f i ( y) f ( x ) 
 (1   ) f ( y) , x, y  U ,  [0; 1].
Теорема 3.3 – Пусть g(x) – выпуклaя функция, зaдaннaя в прострaнстве Еn ,
Тогда множество U точек х, удовлетворяющих неравенству g(x)  b, выпукло.
33
Пусть х и y  U и z = х + (1 – )у,   [0; 1]. Из выпуклости функции g(x)
следует, что g(z)  g(x) + (l – )g(y) и, следовательно, g(z)  b, т.е. точка z U и
множество U – выпукло.
Следствие. Пусть gi(x), i=l, .., m, – выпуклые функции в Еn .
Тогда множество точек х, удовлетворяющих системе неравенств
gi(x)  bi i = 1, …, m, выпукло.
Это следует из теорем 3.1 и 3.3.
Приведем свойства выпуклых функций, играющие важную роль в вопросах
минимизации.
Теорема 3.4. Пусть f (x) – выпуклaя нa выпуклом множестве U функция.
Тогда любой ее локальный минимум нa множестве U является одновременно и
глобальным.
Предположим противное, т.е. пусть х0 – точка локального, а х* – точка
глобального минимума f (х) на множестве U, х*х0 и f (х0) > f (х*). Отсюда с
учетом выпуклости функции имеем:
f [x*+(1–)x0] f (x*) + (1– )f (х0)<f (х0).
При  +0 точка х = х* + (1–)х0 попадет в сколь угодно малую
окрестность точки х0 . Поэтому полученное неравенство f (х) < f (х0)
противоречит предположению о том, что х0 – точка локального минимума.
Теорема 3.5. Глобальный минимум строго выпуклой функции f (x) нa
выпуклом множестве U может достигаться лишь в единственной точке.
Предположим, что х1 и х2 – две различные точки глобального минимума. Из
строгой выпуклости f (х) следует, что для всех  (0; 1) выполняется строгое
неравенство f [x1+(1–)x2] <f (x1) + (1–)f (х2) = f * = min f (x), что
U
противоречит предположению о том, что х и х –точки глобального минимума.
Как уже отмечалось, наличие локальных минимумов функции f (x), не
совпадающих с глобальным, сильно затрудняет поиск точки глобального
минимума f (х). Поэтому применение многих методов минимизации обосновано
только для функций, не имеющих точек локального минимума, отличных от
глобального. Согласно теореме 3.4, таким свойством обладают выпуклые
функции. Этим объясняется особая роль свойства выпуклости функции во
многих вопросах оптимизации.
Замечание. Отметим, что не всякая выпуклая в En функция достигает
минимального значения, даже если она ограничена снизу. Например, функция
f (x) = ex является выпуклой в пространстве E1, но достигает минимума
(inf f ( x)  0)
1
2
E1
Введем класс функций, для которых минимум в En обязательно существует.
Определение 3.4. Функция f (х), заданная в En, называется сильно выпуклой,
если существует такое число l > 0 (константа сильной выпуклости), что для всех
х и у  En и любого   [0; 1] выполняется неравенство:
2
f [x  (1   ) y]  f (x)  (1   ) f ( y)   (1   )l x  y .
Очевидно, сильно выпуклая функция является выпуклой и строго
выпуклой.
34
Замечание. Можно показать, что у сильно выпуклой функции точка
глобального минимума существует и единственна.
Следующие утверждения позволяют получить наглядное представление об
особенностях графиков функций, обладающих свойством обычной, строгой и
сильной выпуклости.
Для дифференцируемой в En функции f (х) выпуклость эквивалентна
выполнению неравенства
f (x)  f (x0) + < f (x0), x – x0 >,
(3.18)
строгая выпуклость –
f (x) > f (x0) + < f (x0), x – x0 >,
(3.19)
сильная выпуклость –
f (x)  f (x0) + < f (x0), x – x0 > +
2
l
x  x0
2
(3.18)
для любых х, х0  En
На рис. 3.1 приведена иллюстрация неравенств (3.18)–(3.20) для пространства
E2. График выпуклой, но не строго выпуклой функции f =f (х) (рис. 3.1,а)
расположен не ниже касательной плоскости z = f (х0) + < f '(х0), х– х0 >,
проходящей через произвольную точку поверхности (х 0, f (х0)). График строго
выпуклой функции (рис. 3.1,6) имеет единственную общую точку с этой
плоскостью. Подобное свойство для выпуклой функции одной переменной было
рассмотрено в разд. 2.3.3.
Предположим теперь, что f (х) сильно выпукла и х* – точка ее глобального
минимума. Тогда f '(x*)=0 и неравенство (3.20) принимает вид f (x)  f (x*) +
2
l
+ x  x* .
2
Рис. 3.1. Геометрическая иллюстрация неравенств (3.18) – (3.20) для
функции f (x) двух переменных: A – выпуклaя, но не строго выпуклaя; б – строго
выпуклaя; в – сильно выпуклaя.
2
l
Поверхность z=f (x*)+ x  x * представляет собой параболоид вращения с
2
вершиной в точке (x*, f (х*)). Отсюда видно, что график сильно выпуклой
функции (рис.3.1, в) расположен внутри некоторого параболоида вращения.
Замечание. Из неравенства (3.18) для выпуклой дифференцируемой функции
f (х) следует, что условие f '(x)=0 является не только необходимым, но и
35
достаточным для того, чтобы х* была точкой глобального минимума функции
f (х).
Приведем критерии строгой и сильной выпуклости для дважды
дифференцируемых в Еn функций. Достаточным условием строгой выпуклости
функции f (х) является положительная определенность при x  Еn ее матрицы
Гессе f "(х), а сильной выпуклости – положительная определенность матрицы
f "(х) – lЕ, где Е – единичная матрица, а l > 0. Эти критерии в комбинации с
критерием Сильвестра (3.5) составляют во многих случаях удобный аппарат для
проверки выпуклости функций небольшого числа переменных.
3.2.2. ВЫПУКЛЫЕ КВАДРАТИЧНЫЕ ФУНКЦИИ
Важную роль в ряде вопросов минимизации играют квадратичные функции,
которые в n–мерном случае являются обобщением квадратного трехчлена одной
1
переменной f ( x)  ax 2  bx  c .
2
Определение 3.5. Функция вида
n n
n
f ( x )     ij xi x j   b j x j  c
i 1 j 1
j 1
(3.21)
называется квaдрaтичной функцией п переменных.
Положив  i j =  i j + ji, получим симметрическую матрицу A = ( i j ),
помощью которой выражение (3.21) можно записать в другой форме:
1
(3.22)
f ( x)   Ax, x    b, x  c ,
2
где b = (b, .., bn)  Еn – вектор коэффициентов bj .
Пример 3.3. Функция f (x) = 2x21 – 2x1x2 + 3x1x3 + x22 – 2x2x3 + 4x23 + x1 + 3x3 +
5 является квадратичной. Запишем ее матрицу A, вектор b и коэффициент с из
(3.22):
 4 2 3 
1


 
A    2 2  2  , b =   1 , c = 5.
 3 2 8 
 3


 
Перечислим основные свойства квадратичных функций.
1. Для градиента квадратичной функции (3.22) справедлива формула
f (x) = Ax + b.
(3.23)
Запишем k–ю координату вектора f '(х):
36
f
f

xk xk
n
1 n n

  aij xi x j   b j x j  
 2 i 1 j 1

j 1


n
1 n
  (aik  aki )xi  bk   aki xi  bk .
2 i 1
i 1
2. Гессиан квадратичной функции (3.22) совпадает с матрицей A:
f (x) = A.
(3.24)
Вычислим элемент матрицы Гессе:
 2 f ( x)


xl xk xl
 f

 xk
 
 
 xl
 n

  aki xi  bk   aki .


 i 1

3. Квадратичная функция (3.22) с положительно определенной матрицей A
сильно выпукла.
Так как мaтрицa f "(x)= A симметрична и положительно определена, то все ее
собственные значения i положительны и существует ортонормированный базис
из собственных векторов этой матрицы (см. разд. 3.1.1). В этом базисе:
0
. . .
0 
 1 0 . . . 0 
 1  l




0

0
.


l
.
.
.
0




2
2
 .


.
.
.
.
. 



.
A
, A  lE 
.
.
.
.
.
.




 .


.
.
.
.
. 




0 0 . . .  
 0
0
. . . n  l 
n


Поэтому угловые миноры матрицы A–lЕ равны k =
k
 (i  l )
i 1
и
положительны при 0< l < min i . Таким образом, существует число l > 0, при
котором матрица A – lЕ положительно определена. А это означает, что f (х)
сильно выпукла.
Замечание. Для квадратичной функции f (x) из (3.22) с положительно
определенной матрицей A точка глобального минимума существует и
единственна, так как f (х) сильно выпукла.
Пример 3.4. Квадратичная функция f (х) из примера 3.3 сильно выпукла. D
Матрица f "(х) = A – положительно определена, так как
4 2 3
4 2
1 = 4 > 0; 2 =
 4  0 ; 3 =  2 2  2  22  0 .
2 2
3 2 8
Следовательно, f (х) сильно выпукла по свойству 3 квадратичных функций.
Выпуклые квадратичные функции играют важную роль в теории одномерной
оптимизации. Некоторые алгоритмы, разработанные с учетом свойств таких
37
функций, позволяют найти их точку минимума за конечное число итераций. Во
многих случаях эти алгоритмы оказываются эффективными и для
неквадратичных выпуклых функций, так как в достаточно малой окрестности
точки минимума х* дважды дифференцируемая функция f (х) с положительно
определенной матрицей Гессе f (х) хорошо аппроксимируется сильно выпуклой
1
квадратичной функцией f ( x )  f ( x* )   f ( x* )  ( x  x* ), x  x*  (см. (3.4),
2
*
где f (x ) = 0).
УПРАЖНЕНИЯ
1. Установить, являются ли выпуклыми следующие множества:
a) U ={(x1 , x2) 2x1 + x2  2, 2x1 – x2  –2, x2  0};
b) U ={(x1 , x2) x2 > x21};
c) U ={(x1 , x2) x1x2 < 1, x1 > 0, x2 > 0};
d) U ={(x1 , x2) x1 – x2  2, x21 + x22  4};
e) U ={(x1 , x2 , x3) x3  x21 + x22}.
3.3. ОБЩИЕ ПРИНЦИПЫ n–МЕРНОЙ МИНИМИЗАЦИИ
Для численного решения задач безусловной минимизации:
f (x)  min, x  En разработано много алгоритмов, использующих
итерационные процедуры вида
xk+1 =Ф(xk , xk–1 ,…, x0), x0  En , (3.25)
позволяющие при определенных условиях построить последовательность {хk}
такую, что
 f *  min f (x), если U *  ,
En

lim f (x k )  
*
k 
 f*  inf f (x), если U  ,
En

где U* – множество точек глобального минимума функции f (х).
Последовательность {х}, удовлетворяющая требованию (3.26), называется
минимизирующей для функции f (х). Если, кроме того, для случая U*
дополнительно выполняется условие
lim  ( x k ,U * )  0 ,
k 
(3.27)
то говорят, что минимизирующая последовательность сходится к множеству
U*. Если множество U* состоит из единственной точки х*, то для сходящейся к
U* минимизирующей последовательности lim x k  x * .
k 
38
Замечание. Минимизирующая последовательность может не сходиться к
точке минимума. Например, для f (x) =х2/(1+ х4), x  E1 , последовательность xk=k
является минимизирующей, но не сходится к единственной точке минимума х* =
0.
Вопрос о существовании точки минимума обычно решается с помощью
теоремы Вейерштрасса, которая гласит: если функция f (х) непрерывна в En и
множество U= {х |f (х)  } для некоторого  непусто и ограничено, то f (х)
достигает глобального минимума в En.
Отметим, что если множество U– выпукло, а функция f (х) строго выпукла,
то точка ее минимума единственна (см. теорему 3.5).
Среди итерационных процедур (3.25) можно условно выделить такие,
которые гарантируют отыскание решения задачи за конечное число итераций
(шагов). Однако их удается построить лишь для некоторых специальных типов
задач минимизации. Как правило, приходится иметь дело с бесконечными
последовательностями {хk}, поэтому говорить о достижении решения можно
лишь в пределе.
Важной характеристикой сходящихся минимизирующих последовательностей является скорость сходимости. Говорят, что последовательность {хk}
сходится к точке х* линейно (со скоростью геометрической прогрессии), если
существует такое число q  (0; 1), что выполняется неравенство
(хk, х*)  q(хk–1, х*), т. e. р(хk, х*)  qk(х0, х*).
Сходимость называют сверхлинейной (т.е. более быстрой, чем определяемая
любой геометрической прогрессией), если (хk, х*)  q(хk–1, х*), qk +0 при
k  .
Наконец, термин квaдрaтичнaя сходимость используется, если справедлива
оценка: (хk, х*)  [c(хk–1, х*)]2, c > 0 или (хk, х*)  q 2 , где q = (х0, х*).
Для многих алгоритмов скорость сходимости последовательности {х k} из
(3.25) характеризуется и другими неравенствами, например (хk, х*)  c/k, при с
> 0,  > 0.
Установление факта сходимости последовательности {хk} из (3.25) и оценка
скорости сходимости дают существенную информацию об итерационном
процессе (3.25).
Конкретный вычислительный алгоритм на основе (3.25), в котором может
получаться бесконечная последовательность {хk}, необходимо дополнять
условием остановки (критерием окончания счета). На практике часто пользуются
следующими условиями:
(хk+1, хk) < 1 ;
(3.28)
k+1
k
f (x )–f (x ) < 2 ;
(3.29)
k
 f (x ) < 3 ,
(3.30)
k
где i – заранее заданные параметры точности.
Ниже будут рассмотрены вычислительные алгоритмы простейших процедур
(3.25), как правило, основанные на рекуррентных формулах вида
xk+1= xk + kpk , k = 0, 1, …, (3.31)
где рk – направление поиска точки xk+1 из точки xk , а число k – величина
шага, которая выбирается так, чтобы выполнялось условие
39
k .
f (xk+1) < f (xk).
(3.32)
k
Эти алгоритмы различаются способом построения вектора р и выбора шага
Будем говорить, что в итерационном процессе (3.31) производится
исчерпывающий спуск, если величина шага k находится из решения одномерной
задачи минимизации
Фk()min, Фk() = f (xk +  рk).
(3.33)
Таким образом, при исчерпывающем спуске на каждом шаге полостью
реализуется возможность уменьшить значение целевой функции f (х) при
перемещении из точки xk в направлении, коллинеарном вектору рk. Величина
шага k может быть найдена, например, с помощью методов, описанных в гл. 2.
Теорема 3.6. Для дифференцируемой в Еn функции f (x) в итерационном
процессе (3.31) с выбором шага k в соответствии с (3.33) для всех k 1
выполняется условие
< f (xk+1), рk > = 0.
(3.34)
Запишем необходимое условие минимума функции одной переменной Фk()
из (3.33), используя правило дифференцирования сложной функции:
n f ( x k  1) dx j k  1
dФk ( )
 
 0.
d

x
d

j
i 1
Учитывая, что xj k+1= xj k +  рj k получаем условие (3.34).
Дадим геометрическую иллюстрацию соотношения (3.34) пространстве Е2. При
перемещении из точки xk вдоль прямой, задаваемой вектором pk в направлении
убывания функции, происходит пересечение линий уровня функции f (х) до тех
пор, пока либо не будет достигнута стационарная точка f (xk+1) = 0, либо прямая
не коснется в точке xk+1 некоторой линии уровня функции f (x). Равенство (3.34) и
есть условие касания (рис. 3.2).
Свойство (3.34) позволяет в явном виде найти
величину k для квадратичной функции.
Теорема 3.7. Для квaдрaтичной функции f (х)
=
1/2<Aх,х>+<b,x>+c
величинa
k
исчерпывaющего спускa в итерaционном процессе
(3.31) будет равна
k  
 f (x k ), p k 
 Ax k  b, p k 

.
k
k
k
k
 Ap , p 
 Ap , p 
Рис 3.2.
(3.35)
Умножив равенство (3.31) слева на матрицу А квадратичной функции f (х) и
прибавив к обеим частям вектор b, получим: Axk+1 + b = Axk + b + kApk .
Учитывая, что градиент квадратичной функции равен f (x) = Ax + b, имеем:
40
f (xk+1) = f (xk)+ kApk . Подставляя выражение для f (xk+1) в равенство (3.34),
получаем формулу (3.35).
Определение 3.6. Направление вектора рk называется направлением убывания
функции f (х) в точке хk, если при всех достаточно малых положительных 
выполняется неравенство f (хk +pk ) < f (хk) .
В итерационном процессе (3.31) используются, как правило, направления убывания. Сформулируем признак направления убывания.
Теорема 3.8. Пусть функция f (x) дифференцируема в точке хk . Если вектор
pk удовлетворяет условию
(3.36)
 f ' ( x k ), p k   0 ,
то направление вектора р является направлением убывания.
Из свойства дифференцируемой функции (3.8) и условия (3.36) следует, что
o( ) 

k
k
f ( x k  p k ) = <f (xk), pk > + () =    f (x ), p 
 < 0 при всех
 

достаточно малых  > 0, т.е. вектор рk задает направление убывания функции
f (х) в точке хk.
Геометрически условие (3.36) означает, что вектор рk составляет тупой угол с
градиентом f (xk).
УПРАЖНЕНИЯ
 1

, 0  является
1. Убедиться в том, что последовательность { хk}, хk = 
 k 1 
2
минимизирующей для функции f (х) = (x1 + x2)/(1 + x1 + x22).
2. Проверить, что последовательность { хk }: хk+1 = хk – kf ( хk) является
минимизирующей для функции f (х) =
1 2 1 2
x1 + x2 , если:
2
2
а) k = 1/10;
б) k = 1/(k+1).
Установить скорость сходимости этой последовательности.
3. Пусть множество U* точек минимума функции f (х) в En непусто и
ограничено. Доказать, что для сходимости любой минимизирующей
последовательности { хk } к U* необходимо и достаточно, чтобы
существовало число  > 0 такое, что множество U= { х | f (х) < f * + }
ограничено ( f *= min f (x) ).
En
4. Выяснить, будет ли произвольная минимизирующая последовательность
сходиться к множеству точек минимума функции f (х), если:
f (х) = e
41
x
, x En ;
б) f (х) = ||х||, x En ;
в) f (х) = ||х||/(1+||х||)2 , x En.
5. Для функции f (х) = 4x12+ 4x22 – 6 x1 x2 изобразить линию уровня f (х)=(x1,
x2) = f (2,2) и векторы f '(2,2), f '(2,l), f '(1,–2), f '(–l, –1) с началом в точке (2, 2).
Установить, какие из них задают направления убывания функции f (х) в точке
(2, 2). Выполнить по каждому из этих направлений один шаг исчерпывающего спуска.
3.4. ПРЯМЫЕ МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ
Рассмотрим конкретные вычислительные алгоритмы решения задачи
безусловной минимизации f (х)  min, x En, которые опираются только на
вычисление значений функции f (х), т.е. прямые методы минимизации. Важно
отметить, что для их применения не требуется дифференцируемость целевой
функции и даже ее аналитическое задание. Нужно лишь иметь возможность
вычислять или измерять значения f (х) в произвольных точках. Такие ситуации
часто встречаются в практически важных задачах оптимизации.
Остановимся сначала на вычислительных процедурах вида (3.25), в которых
выбор нового приближения к точке минимума определяется сравнением
значений функции в нескольких точках пространства En.
3.4.1. МИНИМИЗАЦИЯ ПО ПРАВИЛЬНОМУ СИМПЛЕКСУ
Определение 3.7. Правильным симплексом в пространстве En называется
множество из п + 1 равноудаленных друг от друга точек (вершин симплекса).
Отрезок, соединяющий две вершины, называется ребром симплекса.
В пространстве E2 правильным симплексом является совокупность вершин
равностороннего треугольника, в E3 – правильного тетраэдра.
Если х0 – одна из вершин правильного симплекса в En то координаты
остальных п вершин х1 ,..,хn можно найти, например, по формулам:
 x 0 j  d ,
i  j,
i
1
x j  0
(3.37)
i  j,
 x j  d 2 ,
где d1  a ( n  1  1) / n 2 , d2  a( n  1  n  1) / n 2 , a– длина ребра.
Вершину х0 симплекса, построенного по формулам (3.37), будем называть
бaзовой.
В алгоритме симплексного метода используется следующее важное свойство
правильного симплекса. По известному симплексу можно построить новый
симплекс отрaжением какой–либо вершины, например, хk симметрично
относительно центра тяжести хc остальных вершин симплекса. Новая и старая
k

k
x  xk
1
 x c , где xc   x i . В
вершины x и х связаны соотношением:
2
n ik
42
k
результате получается новый правильный симплекс с тем же ребром и вершиk
нами x =2xc – хk , хi, i= 0,.. , n, i k. Таким образом, происходит перемещение
симплекса в пространстве Еn. На рис. 3.3 представлена иллюстрация этого
свойства симплекса в пространстве Е2.
Рис. 3.3. Построение нового симплексa в E2
отрaжением точки х:
2
a — нaчaльный симплекс х0 , х1 , x
2
;
б — новый симплекс х0 , х1 , x ;
центр отрaжения — точкa xc = (х0+ х1)/2
Поиск
точки
минимума функции f (x) с помощью правильных симплексов производят
следующим образом. На каждой итерации сравниваются значения f (х) в
вершинах симплекса. Затем проводят описанную выше процедуру отражения для
той вершины, в которой f (х) принимает наибольшее значение. Если в
отраженной вершине получается меньшее значение функции, то переходят к
новому симплексу. В противном случае выполняют еще одну попытку отражения
для вершины со следующим по величине значением f (х). Если и она не приводит
к уменьшению функции, то сокращают длину ребра симплекса, например, вдвое
и строят новый симплекс с этим ребром. В качестве базовой выбирают ту
вершину х0 старого симплекса, в которой функция принимает минимальное
значение. Поиск точки минимума f (x) заканчивают, когда либо ребро симплекса,
либо разность между значении функции в вершинах симплекса становятся
достаточно малыми. Опишем один из вариантов алгоритма этого метода.
Шаг 0. Выбрать параметр точности , базовую точку х0 , ребро a и построить
начальный симплекс по формулам (3.37). Вычислить f (х0).
Шаг 1. Вычислить значения f (х) в вершинах симплекса х1 , .., xn .
Шаг 2. Упорядочить вершины симплекса х0 , .., хn так, что бы f (х0)  …
f (х1)  f (хn–1)  f (хn).
Шаг 3. Проверить условие
1 n
[ f ( x i )  f ( x 0 )]2   2 . (3.38)

n i 1
Если оно выполнено, то вычисления прекратить, полагая х*  х0 , f *  f (x0).
В противном случае перейти к шагу 4.
1
Шаг 4. Найти x c   x i и выполнить отражение вершины хn:
n i 1
n
n
n
x =2x – х .Если f ( x ) <f (x ), то положить х = x и перейти к шагу 2. Иначе
c
n
– перейти к шагу 5.
43
n
n
 n 1
1
i
Шаг 5. Найти x   x и выполнить отражение вершины хn–1: x = 2x c –
n i 1
c
 n 1
n  1
хn–1. Если f ( x
) < f (хn–1), то положить хn–1 = x
и перейти к шагу 2. Иначе –
перейти к шагу 6.
Шаг 6. Перейти к новому правильному симплексу с вдвое меньшим ребром,
считая базовой вершиной х0 . Остальные п вершин симплекса найти по формуле
хi = (хi + х0)/2, i=1, .., п. Перейти к шагу 1.
Геометрическая иллюстрация работы алгоритма в пространстве показана на
рис. 3.4, где точки х0 , х1 , х2 – вершины начального симплекса, а пунктиром
указаны процедуры отражения.
Рис. 3.4. Поиск точки
минимума функции f  x  с
помощью правильных
симплексов в
Замечания:
1. Следует иметь в виду, что если функция
f (х) многомодальна, то описанным методом
может быть найдена точка локального, а не
глобального минимума f (х).
2. Если ограниченность снизу целевой
функции не очевидна, то в алгоритм метода
следует включить дополнительную процедуру
останова.
пространстве E2
3.4.2. ПОИСК ТОЧКИ МИНИМУМА ПО ДЕФОРМИРУЕМОМУ
СИМПЛЕКСУ
Алгоритм, описанный в разд. 3.5.1, можно модифицировать, добавив к
процедуре отражения при построении нового симплекса процедуры сжатия и
растяжения. А именно, положение новой вершины x̂ n вместо вершины хn,
соответствующей наибольшему значению функции, находится сравнением и
выбором наименьшего среди значений целевой функции в точках;
z1  xc   ( xc  x n ),0    1;
z 2  xc   ( xc  x n ),0    1;
z3  xc   ( xc  x n ),   1;
(3.39)
z 4  xc   ( xc  x n ),   1.
Геометрическая иллюстрация этих процедур для пространства E2 приведена
на рис. 3.5 и 3.6. Так как величина   (0; 1), то выбор точек z1 и z2 соответствует
сжатию симплекса;   1, поэтому выбор точки z3 соответствует отражению, а  >
1 и выбор точки z4 приводит к растяжению симплекса. Численные эксперименты
показывают, что этот
44
алгоритм хорошо работает в пространстве En для п  6. Отметим, что при
деформациях утрачивается свойство правильности исходного симплекса.
Поэтому, не стремясь к правильности начального симплекса, его строят из
произвольной базовой точки х0  En , по формулам
(3.40)
xi  x 0  aei ,
где e i – i–й базисный вектор; – параметр симплекса. На практике хорошо
зарекомендовал себя следующий набор параметров ,  и  для выбора пробных
точек zi в формулах (3.39):
 = 1/2,  = 1 и  =2.
Рис. 3.5. Пробные точки
для перехода к новому симплексу
z1,z2,z3,z4
Рис. 3.6. Новые симлексы
полученные в результате процедур сжатия (а,б); отражения
(в); растяжения(г).
Опишем алгоритм метода поиска точки минимума функции по
деформируемому симплексу.
Шаг 0. Выбрать параметр точности , параметры ,  и , базовую точку х0 ,
параметр  и построить начальный симплекс по формулам (3.37) или (3.40).
Вычислить f (х0).
Шаг 1. Вычислить значения функции в вершинах симплекса х1, . . . , xn .
Шаг 2. Упорядочить вершины х0, . . . , xn так, чтобы f (х0)  …  f (хn).
Шаг 3. Проверить достижение заданной точности (условие (3.38)). Если оно
выполняется, то вычисления завершить, полагая х *  х0, f *  f (х0). Иначе –
перейти к шагу 4.
Шаг 4. Найти x c 
1
x i и пробные точки zk , k=1, …, 4 пo формулам (3.39).

n i 0
Найти f (z*)= min f (zk). Если f (z*) < f (zn). то положить xn=z* и перейти к шагу 2.
Иначе – перейти к шагу 5.
Шаг 5. Уменьшить симплекс, полагая хi = (хi + х0)/2, i = 1,.., n и перейти к
шагу 1.
Замечание. Для того чтобы избежать сильной деформации симплекса,
алгоритм иногда дополняют процедурой обновления. Например, после N шагов
алгоритма из точки х0 снова строят симплекс по формулам (3.37) или (3.40),
полагая а = ||x0–xn||.
С теоретической точки зрения описанные методы минимизации слабо
исследованы, однако практика показывает их работоспособность.
Перейдем теперь к описанию вычислительных процедур вида
45
(3.31): xk+\ = xk +kpk . В зависимости от способа выбора направления pk и
шага k получаются различные алгоритмы минимизации.
3.4.3. МЕТОД ЦИКЛИЧЕСКОГО ПОКООРДИНАТНОГО СПУСКА
Этот метод заключается в последовательной минимизации целевой функции
f (x) сначала по направлению первого базисного вектора е1, затем второго – е2 и
т.д. После окончания минимизации по направлению последнего базисного
вектора еn цикл повторяется.
Опишем этот алгоритм.
Шаг 0. Выбрать х  En , критерий достижения точности (например, (3.28) или
(3.29)), величину . Найти f (x), положить j= 1.
Шаг 1. Решить задачу одномерной минимизации Ф() = f (х + еj) min,  

R, т.е. найти *. Положить x = х +*еj, вычислить f (х).

Шаг 2. Если j < п, то положить х = x , j=j+1 и перейти к шагу 1, иначе –
перейти к шагу 3.

Шаг 3. Проверить условие достижения точности ||х– x || < 



или | f (x) – f ( x )| <. Если оно выполняется, то положить х* = x , f *=f ( x ) и


закончить поиск. Иначе – положить х = x , f (х) = f ( x ), j = 1 и перейти к шагу 1.
Замечание. Для приближенного решения вспомогательной задачи
одномерной минимизации на шаге 1 алгоритма на практике, как правило,
используют метод поразрядного поиска (см. разд. 2.2.2).
Эффективность метода циклического покоординатного спуска существенно
зависит от свойств целевой функции.
Пример 3.5. Решить задачу f (x)=x21+х22  min, х Е2 методом циклического
покоординатного спуска.
Линии уровня этой целевой функции – окружности с центром в начале
координат (рис. 3.7). Выберем произвольную начальную точку х, например
х=(3,3). Очевидно, два шага исчерпывающего спуска сначала по направлению е1
, затем – е2 приведут в точку минимума х* = (0,0).
В примере 3.5 точку минимума функции удалось найти точно за конечное
число шагов. Это скорее исключение, чем правило.
Пример 3.6. Решить задачу f (x)=5x21+5х22 +8x1х2 min, х Е2 методом
циклического покоординатного спуска.
Сначала заметим, что поворот системы координат на угол – 45° (замена
переменных x1 =(y1+ y2) / 2 и x1 =(–y1+ y2) / 2 приводит функцию к виду f 1(y)
=y21+9y22 . Очевидно, линии уровня целевой функции – эллипсы y21/9+y22=c2 (рис.
3.8). Результаты расчетов по приведенному выше алгоритму представлены в
табл. 3.2.
46
Рис. 3.7. К примеру 3.5.
Номер
итерации
0
1
2
3
4
5'
6
7
8
9
10
Рис. 3.8. К примеру 3.6.
x1
x2
5
–4
–4
–2,56
–2,56
–1,64
–1,64
–1,05
–1,05
–0,67
–0,67
5
5
3,2
3,2
2,05
2,05
1,31
1,31
0,84
0,84
0,54
Тaблицa 3.2
f (x)
450
45
28,8
18,43
11,8
7,55
4,83
3,09
1,98
1,27
0,81
Из табл. 3.2 и рис. 3.8 видно, что минимизирующая последовательность {х k}
сходится к точке минимума х* = (0,0). Однако в отличие от решения задачи из
примера 3.5 достижение точки минимума за конечное число шагов не
гарантируется. Траектория поиска точки минимума в данной задаче имеет ярко
выраженный зигзагообразный характер.
Из примера 3.6 видно, что эффективность решения задачи методом
циклического покоординатного спуска можно повысить, если дополнить его
алгоритм периодически повторяющимся поиском точки минимума в
направлениях pi = xi–xi–1 из точек xi. Так, например, если из точки х4 провести
исчерпывающий спуск в направлении p4 = х4 – х2 (координаты точек см. в табл.
3.2), то получим точку (–2,2 10–5 ; 5,6  10–3 ), расположенную значительно ближе
к точке минимума х*=(0,0), чем точки х5, х6, х7.
Такой подход, состоящий в последовательном нахождении направлений
убывания функции и минимизации ее по этим направлениям, лежит в основе
ряда алгоритмов. Рассмотрим один из них.
47
3.4.4. АЛГОРИТМ ХУКА – ДЖИВСА
Этот алгоритм содержит две основные процедуры:
а) исследующий покоординатный поиск в окрестности данной точки,
предназначенный для определения направления убывания f (х);
б) перемещение в направлении убывания.
Опишем алгоритм исследующего покоординатного поиска из заданной
точки х с приращениями по каждой координате j , j = 1, …, n
Шаг 1. Положить x = x , i = 1.
Шаг 2. Сделать пробный шаг y= x – je j, где e j –j–й базисный вектор. Если
f ( x )  f (y), то перейти к шагу 3, иначе – к шагу 4.
Шаг 3. Сделать пробный шаг y= x +je j . Если f ( x )  f (y), то перейти к шагу
5, иначе – к шагу 4.
Шаг 4. Положить x = у.
Шаг 5. Положить j = j + 1. Если j  n, то перейти к шагу 2. В противном
случае исследующий поиск окончен – получена точка x для которой f ( x ) < f (y),
если x  х.
Замечание. В результате исследующего поиска может оказаться, что x =х.
Тогда исследующий поиск считается неудачным. Если при этом норма
приращения  =(1,.., n ) мала, т.е. |||| , где  – заданная точность, то
полагают х* = х. Если заданная точность не достигнута, то полагают =/
(постоянная  >1 – коэффициент уменьшения шага) и повторяют исследующий
поиск.
Приведем теперь полный алгоритм Хука – Дживса.
Шаг 0. Выбрать начальную точку х0 , вектор приращений  =(1,.., n ),
коэффициент уменьшения шага  >1, параметр окончания поиска  > 0.
Шаг 1. Провести исследующий покоординатный поиск из точки х0, т.е. найти
точку x 0 . Если x 0  х , то перейти к шагу 3, иначе – к шагу 2.
Шаг 2. Проверка на окончание поиска. Если ||||<, то прекратить поиск и
положить х*=х0. Иначе – положить =/ и перейти к шагу 1.
Шаг 3. Перемещение из точки х в направлении убывания x 0 – х0 : положить
х1 = x 0 + ( x 0 – х0) = 2 x 0 – х0 .
Шаг 4. Провести исследующий поиск в точке х1 , т.е. найти точку x1 . Если
f ( x1 ) < f ( x 0 ), то положить х0 = x 0 , x 0 = x1 и перейти к шагу 3. Иначе – положить
х0 = x1 и перейти к шагу 1.
Пример 3.7. Рассмотрим графическую иллюстрацию решения задачи
f (х)=(x1+ 1)2+х22 min методом Хука – Дживса из начальной точки х0 =(2,3),
вектор перемещений =(1/2,1).
Целевая функция f (х) представляет собой квадрат расстояния между
точками х и х* =(–1,0). Линии уровня f (х) – это окружности с центром в точке х*.
Поэтому значения f (х) в промежуточных точках алгоритма легко сравнивать,
оценивая их расстояния от точки х* на рис. 3.9. На рисунке пунктиром выделены
траектории исследующего поиска, сплошными линиями – перемещения в
48
направлении убывания. Убедитесь в соответствии графической иллюстрации
описанному алгоритму.
Все
описанные
выше
прямые
методы
безусловной
минимизации
функции
многих
переменных
содержат
детерминированные
процедуры поиска точек с меньшим значением
функции.
Однако разработано довольно много методов
минимизации, где в процедуру поиска точек
минимума намеренно вводят элементы случайности.
Рис. 3.9. К примеру 3.7.
3.4.5. МЕТОДЫ СЛУЧАЙНОГО ПОИСКА
Основой для этих методов служит итерационный процесс
x k 1  x k   k

, k = 0, 1, …,

(3.41)
где k > 0 – величина шага;  =(1 , …, n ) – некоторая реализация n – мерного
случайного вектора .
Будем считать, что координаты вектора , – это независимые случайные
величины, равномерно распределенные на отрезке [–1; 1]. Приведем несколько
алгоритмов метода случайного поиска. Они могут использоваться как
самостоятельные минимизирующие процедуры, или входить в состав других
алгоритмов, например, использоваться для исследующего поиска в алгоритме
Хука – Дживса.
Алгоритм 1 (с возврaтом при неудaчном шaге).
Шаг 0. Выбрать параметр точности  > 0, начальный шаг  >0, коэффициент
уменьшения шага  >1, предельное число неудачных попыток N, начальную
точку х. Вычислить f (х).
Шаг 1. Положить счетчик числа неудачных попыток j= 1.
Шаг 2. Получить реализацию случайного вектора .
Шаг 3. Найти пробную точку y=x+/||||, вычислить f (у).
Шаг 4. Если f (у)< f (х), то положить х = у, f (х) = f (у) и перейти к шагу 3.
Иначе
– перейти к шагу 5.
Шаг 5. Положить j =j + 1. Если j < N, то перейти к шагу 2, иначе к шагу .
Шаг 6. Проверка условия достижения точности. Если  < , то поиск
завершить, полагая х*=х, f *= f (х). Иначе – положить  = /у и перейти к шагу 1.
49
Иллюстрация построения последовательности (3.41) с помощью описанного
алгоритма для функции двух переменных приведена на рис. 3.10, где пунктиром
показаны неудачные попытки определения хk+1 из (3.41), не приводящие к
уменьшению f (х).
Рис. 3.10. Иллюстрация работы алгоритма 1 в пространстве Е2.
Замечание. На практике предельное число неудачных попыток N обычно
полагают равным 3п, где п – число переменных целевой функции.
Алгоритм 2 (наилучшей пробы).
Этот алгоритм отличается от предыдущего только шагами 2 и 3:
Шаг 2. Получить т реализации случайного вектора :
1 , …, m
Шаг 3. Найти пробные точки yi = x   i /  i , i = 1,.., т, выделить f (уi).
Найти уk из условия f (уk)= min f ( y i ) и положить у= уk .
i
3.4.6. МЕТОД СОПРЯЖЕННЫХ НАПРАВЛЕНИЙ
Все описанные до сих пор прямые методы минимизации требуют
бесконечного числа итераций для точного определения точки минимума целевой
функции. Это относится и к сильно выпуклым квадратичным функциям, вопросы
минимизации которых хорошо изучены.
Однако существуют прямые итерационные методы, приводящие к точке
минимума сильно выпуклой квадратичной функции за конечное число шагов.
Как уже отмечалось, от таких методов разумно ожидать высокой эффективности
и в случае выпуклой неквадратичной целевой функции. Опишем один из них.
Рассмотрим сначала проблему поиска точки минимума сильно выпуклой
квадратичной функции двух переменных. Ее линиями уровня являются эллипсы
(рис. 3.11). Пусть р1 и р2 – направления главных осей этих эллипсов (они могут
быть найдены как ортонормированный базис из собственных векторов матрицы
A квадратичной функции). Если из произвольной точки х0E2 выполнить
итерационную процедуру хk = х + kрk , k = l, 2, где величина шага k находится
из условия исчерпывающего спуска, то, очевидно, потребуется не более двух шагов для отыскания точки х*.
50
Рис. 3.11. Минимазация строго выпуклой квадратичной функции двух
переменных по направлениям главных осей методом наискорейшего спуска.
Такого же результата можно достичь и другим способом. Выберем некоторое
направление р1 и две точки х0 и у0 такие, чтобы векторы х0 – у0 и р1 были
неколлинеарны (рис. 3.12). Выполнив исчерпывающий спуск из точек х0 и у0 в
направлении р1 , получим точки х1 и у1 . По свойству исчерпывающего спуска в
точках х1 и у1 имеет место касание соответствующих прямых (направлений
убывания) и эллипсов (линий уровня целевой функции). Так как эллипсы
различаются гомотетией с центром в точке х* , то точки х* , х1 и у1 расположены
на одной прямой. Поэтому, полагая р2 = х1–у1 и решая задачу f (х1 + р2)  min ,
мы находим точку х*. Таким образом, и в этом случае решение задачи минимизации квадратичной сильно выпуклой функции будет получено за конечное
число шагов.
Рис 3.12. Определение направления p2 в процессе
минимзации сильно выпуклой квадратичной функции двух
переменных
Рассмотренному
способу
минимизации
квадратичных
функций
двух
переменных
соответствует, например, такой алгоритм.
Шаг 0. Выбрать начальную точку х0  Е2.
Шаг 1. Положить р1 =е1 . Найти точку х1 с
помощью исчерпывающего спуска из точки х0 по
направлению р1: f (х1) = min f ( x 0  p1 ) .
 R
Шаг 2. а) положить у=х +с;
б) найти точку у из условия исчерпывающего
Рис. 3.13. Минимизация
квадратичной функции с
помощью сопряженных
направлений в E2
спуска из точки у0 по направлению р1: f (y1) = min f ( y 0  p1 ) ;
 R
в) положить р2 = х1–у1, найти точку x2 из условия f (х2)= min f ( x 0  p 2 ) ,
 R
вычисления закончить, положив х = x .
Графическая иллюстрация работы алгоритма представлена на рис. 3.13.
Поиск точки минимума доводится по так называемым сопряженным
направлениям.
*
51
2
Определение 3.8. Ненулевые векторы р1,..,рk называются сопряженными
относительно матрицы A размера (п п) (А–ортогональными), если
<Api, pj> = 0, i  j , i,j = 1, …, k.
(3.42)
Пример 3.8. Направления р1 и р2 , использованные в описанном выше алгоритме
минимизации квадратичной функции двух переменных, являются A–
ортогонaльными.
Рассмотрим скалярное произведение
<Ap2,p1>=<A(x1–y1), p1>=<f (x1) – f (y1), p1> = < f (x1), p1> – <f (y1), p1>.
Так как точки х1 и у1 получены в результате исчерпывающего спуска по
направлению р1, то оба скалярных произведения < f (x1), p1> и <f (y1), p1>
равны нулю (см. (3.34)), поэтому <Ap2, p1> = 0.
Лемма 3.1. Система из п векторов р1 , .., рn, сопряженных относительно
положительно определенной матрицы A, линейно незaвисимa.
Предположим противное, т.е. что существует линейная комбинация, равная
нулю:
n
 i pi
 0,
(3.43)
i 1
где не все i = 0, например k  0. Умножим обе части равенства (3.43)
скалярно на вектор Aрk . Тогда, с учетом свойства (3.42), получим k<Aрk, рk>=0.
В силу положительной определенности матрицы A для ненулевого вектора рk
квадратичная форма <Aрk, рk> принимает положительное значение и,
следовательно, k = 0. Полученное противоречие доказывает лемму.
Таким образом, п ненулевых A–ортогональных векторов образуют базис в En .
Рассмотрим минимизацию в En квадратичной функции
f (х) = 1/2< Aх, х >+< b, х >+с
с положительно определенной матрицей A с помощью итерационного
процесса
xk = xk–1 + k pk , k=1, 2, …,
(3.44)
где векторы рk A–ортогональны.
Лемма 3.2. Если в итерационном процессе (3.44) нa кaждом шaге
используется исчерпывaющий спуск, то величинa шaгa k будет
 f ( x 0 ), p k 
k  
, k=1, 2, …,
(3.45)
 Ap k , p k 
Раскрывая рекуррентную формулу (3.44), получаем
xk  x0 
k
 i p i .
(3.46)
i 1
Из формулы (3.46), учитывая выражение для градиента квадратичной
функции f '(x) = Aх + b, находим
52
k
0
f (x )  f ( x ) 
k
 i Api .
i 1
(Умножая обе части этого равенства скалярно на вектор рk и учитывая
условие исчерпывающего спуска по направлению рk ( < f (xk), рk > = 0) и A–
ортогональность векторов (3.42), получаем
< f (x0), рk > + k <Aрk,рk> = 0.
Так как матрица A положительно определена, квадратичная форма <Aрk,рk>>0
и для величины шага k получаем выражение (3.45).
Теорема 3.9. Последовaтельный исчерпывающий спуск по A–ортогонaльным
нaпрaвлениям (3.44) приводит к точке минимумa квaдрaтичной функции не
более чем зa п шaгов.
Согласно лемме 3.1 векторы р1 ,.. ,рn образуют базис в En , поэтому будем
искать точку минимума х* в виде
x*  x 0 
n
 ui p i ,
(3.47)
i 1
где х0 – произвольная точка En. Подставим выражение (3.47) в необходимое и
достаточное условие минимума сильно выпуклой квадратной функции f '(х*) =
Aх* + b = 0:
n
0
Ax + b +
 ui Api  0 .
i 1
Умножая это равенство скалярно на вектор рk , находим
< f (x0), рk > + uk <Aрk,рk> = 0.
или
uk  
 f ( x 0 ), p k 
k
k
.
 Ap , p 
Коэффициенты разложения uk точки х *– х по базису р1 , совпадают с длинами
шагов k исчерпывающего спуска (3,45) в итерационном процессе (3.44).
Поэтому определение точки х* из (3.47) можно рассматривать как результат п
шагов итерационного процесса (3.44), где k = uk.
Таким образом, точка минимума квадратичной функции будет найдена не
более чем за п шагов.
Вопрос о нахождении базиса из A–ортогональных векторов в пространстве Еn
решается неоднозначно. В качестве такого базиса можно, например, взять
ортогональный базис из собственных векторов матрицы A. Однако их поиск
особенно при п > 2 представляет собой самостоятельную довольно сложную
задачу.
Итерационный процесс (3.44) последовательной одномерной минимизации по
сопряженным направлениям рk можно организовать и без предварительного
53
построения векторов р1 , .., рn, последовательно находя их в процессе
минимизации, как это было сделано выше для функции двух переменных.
Опишем процедуру метода сопряженных направлений для минимизации
функции п переменных, обобщающую приведенный выше алгоритм для п = 2.
Шаг 0. Выбрать начальную точку х0 Еn .
Шаг 1. Положить р1=е1 . Найти точку х1 из условия f (х1)= min f ( x0   p1) .
 R
Шаг 2. а) положить у =х +е ;
0
1
2
б) найти точку у1 из условия f (у1)= min f ( x1  p 2 ) ;
 R
в) положить р1 = х1– у1, найти точку х2 из условия f (х2)= min f ( x1  p 2 ) .
 R
Шаг 3. а) положить у = х + е ;
б) найти у2 , минимизируя f (x) последовательно по направлениям р1 и р2 ,
начиная из точки у1;
1
2
3
в) положить р3 = х2 – у2 найти точку х3 из условия f (х3)= min f ( x 2  p3 ) .
 R
Шаг n. а) положить у = х + е ;
б) найти точку у n, минимизируя f (х) последовательно по направлениям
р1,. ., рn–1, начиная из точки уn–1.
в) положить р n = х n–1 – у n–1, найти точку хn из условия f ( х n)=
n–1
n–1
n
min f ( x n1  p n ) .
R
Замечание. Как и в двумерном случае, можно показать, что направления р1,..,
рn , построенные при выполнении этого алгоритма, являются A–ортогональными.
Поэтому, если f (х) является квадратичной функцией с положительно
определенной матрицей A и все задачи одномерной минимизации решаются
точно, то х* = хn и вычисления на этом завершаются. Если же f (х) не является
квадратичной фунцией или вспомогательные задачи одномерной минимизации
решаются приближенно, то необходимо перейти к следующему шагу.
Шаг n + 1. (проверка условия останова). Если ||x0–xn||  , где  – параметр
точности, то поиск завершить, полагая х* = хn, иначе – положить х0 = хn и перейти
к шагу 1.
Метод сопряженных направлений, описанный выше, относится к числу
наиболее эффективных прямых методов. Недостатком его является
необходимость решать довольно большое количество задач одномерной
минимизации.
УПРАЖНЕНИЯ
1. Проверить, что точки хi , i=0, .., n, удовлетворяющие формулам (3.37),
являются вершинами некоторого правильного симплекса.
2. Выполнить несколько итераций решения задачи f (x)=(x1 + 1)2 + x22min с
помощью правильного симплекса, положить х0 = (5,3) и а = 1. Привести
графическую иллюстрацию.
54
Указание: линии уровня целевой функции – окружности с центром в точке (–
1, 0).
3. Как изменится процедура поиска точки минимума в упражнении 2 при
использовании деформируемого симплекса? Дать графическую иллюстрацию
(положить  = 0,5, = 1 и  = 2).
4. Нарисовать линии уровня целевой функции из примера 3.6 и пояснить
медленную сходимость метода циклического покоординатного спуска.
5. Можно ли в исследующем поиске алгоритма Хука – Дживса использовать
направления р1 , .., рn , отличные от базисных векторов е1 , .., еn ? Должны ли они
быть линейно независимыми?
6. Выполнить четыре итерации решения задачи f (x)=(x1 + 1)2 + x22  min
методом Хука – Дживса. Положить  = 1/2,  = (2,1), х0 = (3,4). Привести
графическую иллюстрацию.
7. Из начальной точки х =(4,3) решить зaдaчу f (x)= 5x21 + 5x22 + 8x1x2  min
методом сопряженных направлений.
Указание: для величины шага k использовать формулу (3.35).
8. Показать, что взаимно ортогональные собственные векторы
симметрической положительно определенной матрицы A являются A–
ортогональными.
9. Проверить, что векторы р1 = (1, 2) и р2 = (5, –1) А–ортогональны
 6  2
относительно матрицы А = 
 . Найти минимум функции f (x)= 3x21 –
 2 6 
2x1x2 + 3x22 + x1 + 2x2, выполняя наискорейший спуск последовательно по
направлениям р1 и р2 .
3.5. МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ, ИСПОЛЬЗУЮЩИЕ
ПРОИЗВОДНЫЕ ФУНКЦИИ
Пусть функция f (x) дифференцируема в En . В этом разделе рассматриваются
итерационные процедуры минимизации вида
X k = x k–1 + k p k, k =1, .., x0  En,
(3.48)
где направление убывания рk определяется тем или иным способом с учетом
информации о частных производных функции f (x), а величина шага а^>0 такова,
что
f (x k) < f (x k–1), k =1,2,..
(3.49)
Так как функция предполагается дифференцируемой, то в качестве критерия
останова в случае бесконечной итерационной последовательности {хk}, как
правило, выбирается условие (3.30): ||f '(xk )|| <, хотя, разумеется, могут быть
использованы и другие критерии.
55
3.5.1. МЕТОД ГРАДИЕНТНОГО СПУСКА
Положим в (3.48) на каждом шаге рk = –f (x k). Если f (x k)  0, то условие
(3.36) очевидно выполнено, т.е. направление вектора рk является направлением
убывания функции f (х), причем в малой окрестности точки xk направление рk
обеспечивает наискорейшее убывание этой функции. Поэтому можно найти
такое k > 0, что будет обеспечено выполнение условия (3.49).
Приведем алгоритм одного из вариантов метода градиентного спуска.
Шаг 0. Задать параметр точности  > 0, начальный шаг  > 0, подобрать х 
En. Вычислить f (х).
Шаг 1. Найти f '(x) и проверить условие достижения точности:
||f '(x)|| < . Если оно выполнено, вычисления завершить, полагая х* = х,
f *=f (х). Иначе – перейти к шагу 2.
Шаг 2. Найти y=x–f '(x) и f (у). Если f (у) < f (х), то положить x =у, f (х) =
f (у) и перейти к шагу 1, иначе – перейти к шагу 3.
Шаг 3. Положить =/2 и перейти к шагу 2.
Замечание. Вблизи стационарной точки функции f (x) величина ||f '(x)||
становится малой. Это может приводить к замедлению сходимости
последовательности {хk}. Поэтому иногда в (3.48) полагают pk = – f '(xk)/ ||f ' (xk)||
, т.е. вместо – f '(xk) используют вектор единичной длины того же направления.
Приведем теоретическое обоснование сходимости градиентного метода с
постоянным шагом k  ;
и
получим
оценку
скорости
вадратичной функции f (х)=
xk+1= xk– f '(xk)
сходимости при
минимизации
(3.50)
выпуклой
1
<Ах, х>+<b, x>+ с.
2
Теорема 3.10. Пусть симметрическaя мaтрицa A квaдрaтичной функции f (х)
положительно определенa, l и L – ее нaименьшее и нaибольшее собственные
знaчения (0 < l  L). Тогдa при любых   (0; 2/L) и х0  En итерaционнaя
последовaтельность (3.50) сходится к единственной точке глобaльного
минимумa функции f (х) линейно (со скоростью геометрической прогресcии (см.
рaзд. 3.4)):
||(xk – x*)|| qk ||(x0 – x*)|| ,
(3.51)
где q = max {|1 – l|, |1 – L|}.
Так как матрица A положительно определена, функция f (х) cильно выпукла
и, следовательно, точка х* существует и единственна. Градиент f '(x) в этой точке
обращается в нуль, т.е. f '(x*)=Аx*+b=0. Для точки хk имеем: f '(xk)=Аxk+b= Аxk+b
– Аx*– b = А(xk–x*). Оценим норму разности
||(xk – x*)|| = ||xk –  f '(xk–1) – x*|| = ||xk–1 – x* –  A(xk–1 – x* )|| = || (E–  A)(xk–1 – x*
)||.
По свойству норм (3,6) имеем:
56
||xk – x*||  ||E–  A||||xk–1 – x*||.
(3.52)
Оценка сверху для нормы матрицы (3,7) дает:
||E–  A||  q = max { |1– l|, |1– L| }.
(3.53)
Зависимость q() представлена на рис. 3.14, из которого видно, что при 
(0; 2/L) величина q < 1. Кроме того, из неравенств (3.51) и (3.53) получаем: ||xk –
x*||  q ||xk–1 – x*|| , т.е. ||xk – x*||  qk ||x0 – x*||.
Из рис. 3.14 видно, что величина q принимает минимальное значение q*=(L –
l)/(L + l) при  =* =2/(L + l). Поэтому от соотношения между L и l существенно
зависит число итераций градиентного метода при минимизации выпуклой
квадратичной функции. Проиллюстрируем это на примере квадратичной функции двух переменных.
При L = l > 0 точка минимума f (х) находится за один шаг.
Пример 3.9. Решить задачу f (x) =x21 +х22  min градиентным методом из
начальной точки х0 = (1,1), положив  =*.
Рис 3.14. Зависимость
оценки знаменателя
геометрической прогрессии
от величины шага 
градиетного метода
В данном случае матрица A квадратичной функции
 2 0
 . Очевидно, l= L= 2. Поэтому * = 2/(L + l) = 1/2 и
A  
 0 2
х 1 = х0 –
1
f '(х0) = (0,0). Легко проверить, что х0 = х1
2
.
При l = L линии уровня целевой функции f (x) –
это
концентрические
окружности,
поэтому
направление антиградиента указывает на центр этих
окружностей, т.е. на точку глобального минимума f (х).
Если L >> l > 0, то линиями уровня являются эллипсы, полуоси которых
сильно различаются. Поэтому направление антиградиента в некоторой точке
может сильно отличаться от направления к точке глобального минимума.
Пример 3.10. Из начальной точки х0=(1, 1) выполнить несколько итераций
поиска точки минимума функции f (х) = x21 + 100х22 градиентным методом,
полагая  =*.
Собственные значения матрицы A этой квадратичной функции равны: l = 2, L
= 200. Линиями уровня f (x) являются эллипсы, сильно вытянутые вдоль oси Ox1.
Поэтому в точке х0 направление вектора антиградиента –f ' (х0) = (– 2, – 200)
сильно отличается от направления к точке глобального минимума х *–х0 = (–1,–1).
Положив в формуле (3.50)  =*2/(l+L)=1/101, получим с учетом выражения для
градиента f '(x)=(2x1, 200x2) следующий закон изменения координат точек
минимизирующей последовательности: x1k+1= xk199/101; x2k+1= –x2k99/101.
Отсюда видно, что последовательность {хk} сходится к точке глобального
минимума медленно и траектория сходимости имеет ярко выраженный
зигзагообразный характер.
В курсе линейной алгебры для симметрической положительно определенной
матрицы вводится число обусловленности матрицы =L/l – отношение
57
наибольшего к наименьшему собственному значению. В задаче минимизации
произвольной (не обязательно квадратичной) сильно выпуклой функции f (х) эта
величина для матрицы ее вторых производных (гессиана) характеризует степень
вытянутости линий (поверхностей) уровня f (х)=с. Очевидно, что всегда   .
Если  велико, то линии (поверхности) уровня сильно вытянуты и говорят, то
функция имеет овражный характер, т.е. резко меняется по одним управлениям и
слабо – по другим, В подобных случаях задачу минимизации называют плохо
обусловленной (см. пример 3.10). Если же  близко к единице, то линии
(поверхности) уровня близки к окружностям (сферам) и задача минимизации
является хорошо обусловленной (см. пример 3.9).
3.5.2. МЕТОД НАИСКОРЕЙШЕГО СПУСКА
В этом варианте градиентного метода также полагают pk =–f '(xk) и величина
шага k из (3.37) находится в результате решения задачи одномерной
минимизации
Фk()  min, где Фk() =f (xk – f '(хk)),  > 0,
(3.54)
т.е. на каждой итерации в направлении антиградиента –f '(xk) совершается
исчерпывающий спуск. Опишем алгоритм метода.
Шаг 0. Задать параметр точности  > 0, выбрать х En .
Шаг 1.Вычислить f '(x) и проверить условие достижения точности: ||f '(x) ||<.
Если оно выполнено, то положить х*= х, f *=f (х) и поиск завершить, иначе –
перейти к шагу 2.
Шаг 2. Решить задачу одномерной минимизации (3.54) для х k = х, т.е. найти
*. Положить x = x–*f '(x) и перейти к шагу 1.
Замечание. Решение задачи (3.54) можно получить одним из способов,
описанных в гл. 2. Если функция f (х) квадратична, то для величины шага
исчерпывающего спуска можно воспользоваться формулой (3.35) при рk=–f (хk).
Пример 3.11. Рассмотрим функцию f (х) = x21 + 100х22 и используем метод
наискорейшего спуска для решения задачи ее минимизации из начальной точки
х0=(1,1).
f
f
Найдем компоненты градиента
 2x1 , и
 200x2 и гессиан
x2
x1
2 0 
 . Величину шага исчерпывающего спуска найдем по формуле
A  
 2 200 
(3.35). Результаты вычислений приведены в табл. 3.3.
Номер
итерации
xk1
xk2
f (xk)
0
1
1
101
Тaблицa 3.3
||f (xk)||
200
58
1
2
9,910–1
9,710–3
–9,910–5
9,710–3
9,810–1
9,510–3
1,98
1,94
3
9.610–3
–9,610–7
9,210–5
1,9210–2
Сравните с решением примера 3.10.
3.5.3. МЕТОД СОПРЯЖЕННЫХ ГРАДИЕНТОВ
До сих пор в итерационной процедуре (3.48) в качестве направления
убывания функции f (х) мы использовали направление антиградиента:
(хk) pk   f  xk . Однако такой выбор направления убывания не всегда бывает
 
удачным. В частности, для плохо обусловленных задач минимизации
направление антиградиента в точке хk может значительно отличаться от
направления к точке минимума х*. В результате траектория приближения к точке
минимума имеет зигзагообразный характер (см. пример 3.10).
В разд. 3.5.6 был описан метод сопряженных направлений, позволяющий
найти точку минимума квадратичной функции за конечное число шагов. Опишем
метод, позволяющий получить сопряженные направления для квадратичной
функции f (х) с использованием ее производных. В этом методе используется
итерационный процесс
хk+1= хk + kрk , k = 0, 1, …; x0 En , p0 = –f (х0),
(3.55)
в котором величина шага  k находится из условия исчерпывающего спуска по
направлению рk. После вычисления очередной точки хk+1, k = 0, 1,… новое
направление поиска рk+1 находится по формуле
рk+1=–f ( хk+1) + kpk , k = 0, 1, …,
(3.56)
где коэффициенты k выбираются так, чтобы при минимизации квадратичной
функции f (х) с положительно определенной матрицей A получалась
последовательность А–ортогональных векторов р0, р1,… Из условия
<Aрk+1,рk+1>=0 имеем:
k  
 Af (x k  1), p k 
.
(3.57)
 Ap k , p k 
Напомним, что для квадратичной функции шаг исчерпывающего спуска по
направлению рk равен
 Af (x k ), p k 
k  
.
(3.58)
k k
 Ap , p 
Можно показать, что процесс (3.55)–(3.58) минимизации квадратичной
функции с положительно определенной симметрической матрицей A дает точки
х0, .., хk и векторы р0, …, рk такие, что если f (xi) при 0  i < k  n–1, то векторы
р0, …, рk A–ортогональны, а градиенты f '(x0), .., f '(xi) взаимно ортогональны.
Обращение градиента в нуль в очередной точке хk итерационного процесса
свидетельствует о достижении точки глобального минимума. Так как
направления рk в (3.55) являются A–ортогональными, рассматриваемый метод
59
гарантирует нахождение точки минимума сильно выпуклой квадратичной
функции не более чем за п шагов (см. теорему 3.9).
С учетом взаимной ортогональности градиентов f '(xi) и условий
исчерпывающего спуска по направлениям рk можно упростить выражения (3.57)
и (3.58). Выразим числитель дроби (3.58):
<f (xk),pk>= <f (xk), –f (xk) + k–1pk–1> = –f (xk)2 +k–1<f (xk), pk–1> =–f (xk)2.
(3.59)
Умножив обе части равенства (3.55) слева на матрицу A и прибавив к ним по
вектору b, получим
f (xk+1)= f (xk)+ k Aрk .
(3.60)
С учетом формулы (3.60) упростим числитель в выражении (3.57) для k
следующим образом:
f (x k 1 )  f (x k )
<Af (xk+1), рk > = <f (xk+1), Aрk > = <f (xk+1),
k
f (x k )
>=
k
2
. (3.61)
В результате выражения для k и k примут вид
k 
k 
f (x k 1 )
2
 Ap k , p k 
f (x k 1 )
;
(3.62)
2
2
f (x k )
.
(3.63)
Выражение (3.63) для коэффициента k не содержит в явном виде матрицу A
квадратичной функции. Поэтому метод сопряженных градиентов может
применяться и для минимизации неквадратичных функций. В этом случае
итерационный процесс метода описывается соотношениями:
xk+1 =xk + kpk , x0  En , p0 = –f (x0), k= 0, 1, …; (3.64)
f (xk + kpk) = min f ( x k  p k ) , k= 0, 1, …;
(3.65)
pk+1= –f (xk+1) + kpk , k= 0, 1, …;
(3.66)
 0
k 
2
f (x k 1 )
f (x k )
2
, k= 0, 1, …;
(3.67)
Разумеется, процесс (3.64)–(3.65) может не приводить к точке минимума
функции f (х), отличной от квадратичной, за конечное число итераций. Далее,
точное определение k из условия (3.65) возможно лишь в редких случаях.
Поэтому реализация каждой итерации метода будет сопровождаться
60
неизбежными погрешностями. Эти погрешности, накапливаясь, могут привести к
тому, что векторы рk перестанут указывать направление убывания функции и
сходимость метода может нарушиться. Поэтому на практике в методе
сопряженных градиентов через N шагов производят обновление метода, полагая
mN = 0, m = 1, 2, .. Номера mN называются моментами обновления метода
(реcтарта). Часто полагают N=n – размерности пространства En . Если N=1, то
получается частный случай метода сопряженных градиентов – метод
наискорейшего спуска.
Опишем алгоритм метода сопряженных градиентов.
Шаг 0. Задать параметр точности  > 0, выбрать x0  En, найти f (х0).
Шаг 1. Положить k= 0, р0 =–f (х0).
Шаг 2. Решить задачу одномерной минимизации f (хk + рk)min,  > 0, т.е.
найти  = k .
Шаг 3. Положить хk+1 = хk + рk и вычислить f '(хk+1). Проверить условие
достижения точности: || f '(хk+1)|| < . Если оно выполняется, то положить х0=хk+1,
f '(x0)=f '(хk+1) и закончить поиск, иначе – перейти к шагу 4.
Шаг 4. Проверить условие k+ 1 = n. Если оно выполняется, то положить
0
х =хk+1, f '(x0)=f '(хk+1) и перейти к шагу 1 (рестарт), иначе – перейти к шагу 5.
Шаг 5. Вычислить коэффициент k = || f '(хk+1)||2/ || f '(хk)||2 и найти новое
направление поиска р k+1 =– f '(хk+1)+ kр k . Положить k=k+1 и перейти к шагу 2.
Замечание. Вблизи точки минимума дважды дифференцируемая функция с
положительно определенной матрицей Гессе f ''(х*), как правило, достаточно
хорошо аппроксимируется квадратичной функцией. Поэтому можно надеяться на
хороший результат применения этого метода для таких функций.
Пример 3.12. Методом сопряженных градиентов найти точку минимума
функции f (x)=4x21 + 3x22 – 4 x1x2 + x1 из начальной точки x0 = (0, 0).
Итерация 1.
Шаг 0. Положим  = 0,01, x0 = (0, 0), найдем f '(х0) = (1, 0)
Шаг 1. Положим k= 0, p0 = – f '(х0) = (–1, 0)
Шаг 2. Решим задачу одномерной минимизации f (х0 + р0)min. Получим
0 = 1/8 (для нахождения 0 можно было воспользоваться формулой (3.35).
Шаг 3. Найдем x1 = х0 + 0р0 = (–1/8, 0) и f '(х0) = (0, 1/2). Точность не
достигнута, перейдем к шагу 4.
Шаг 4. Условие k +1=n не выполняется, перейдем к шагу 5.
Шаг 5. Найдем коэффициент 0 и новое направление спуска p1 = – f '(х1) +
0р0 = (–1/4, –1/2).
Итерация 2.
Шаг 2. Решим задачу одномерной минимизации f (х1 + р1)min. Получим
1 = 1/4.
Шаг 3. Найдем x2 = х1 + 1р1 = (–3/16, –1/8) и f '(х2) = (0, 0). задача решена
точно.
Таким образом, x* = x2 . Решение получено в результате двух итераций метода
сопряженных градиентов, поскольку целевая функция квадратична в En и
одномерные задачи минимизации на шаге 2 алгоритма решены точно.
61
3.5.4. МЕТОД НЬЮТОНА
Пусть функция f (x) дважды дифференцируема в En . Тогда для нее можно
записать разложение по формуле Тейлора в окрестности точки xk :
f (x) = f (хk) + < f '(хk), x–xk > +
1
< f (хk)(x–xk), x–xk > + ( || x–xk ||2 )
2
Отсюда видно, что поведение функции f (x) с точностью до величины порядка
( || x–xk ||2 ) может быть описано квадратичной функцией
Фk(x) =
1
< f (хk)(x–xk), x–xk > + < f '(хk), x–xk > + f (хk). (3.68)
2
Минимизируем функцию Фk(x) вместо f (x). Найдем ее точку минимума xk+1
из условия Фk(x) = 0:
Фk(x) = f (хk)(x–xk) + f (хk) = 0.
(3.69)
k
Пусть матрица Гессе f (х ) положительно определена при всех xEn и,
следовательно, невырождена (det f (хk) > 0). Тогда существует обратная матрица
[f (хk)]–1. Отметим, что квадратичная функция (3.68) с положительно
определенной матрицей f (хk) сильно выпукла и уравнение (3.69) определяет
единственную точку глобального минимума функции Фk(x). Умножим слева обе
части равенства (3.69) на матрицу [f (хk)]–1 и найдем точку минимума xk+1
квадратичной функции (3.68), аппроксимирующей f (x) в окрестности точки
x=xk :
xk+1 = xk – [f (хk)]–1 f (хk) , k = 0, 1, …
(3.70)
0
Итерационный процесс ––, начатый из произвольной точки x En, называется
методом Ньютона минимизации функции многих переменных и является
обобщением метода Ньютона в одномерном случае (см. разд. 2.3.3).
Очевидно, для квадратичной функции с положительно определенной
матрицей A применение метода Ньютона обеспечивает получение точки
глобального минимума ровно за один шаг из любой точки x0En.
Для выпуклой функции, отличной от квадратичной, применение этого метода
обеспечивает, как правило, быструю сходимость. Дело в том, что на каждом шаге
итерационного процесса (3.70) используется информация о поведении функции
f (x) в окрестности точки xk, содержащаяся не только в значениях первых, но и
вторых ее частных производных. Поэтому при прочих равных условиях следует
ожидать более быструю сходимость метода Ньютона по сравнению с
градиентными методами.
При выборе достаточно хорошего начального приближения x0En
минимизирующая последовательность {xk} для сильно выпуклой дважды
дифференцируемой функции f (x) сходится к точке минимума с квадратичной
скоростью (xk, x*) cq 2 , q(0, 1). Если же точка x0 выбрана недостаточно
близкой к точке х*, то последовательность (3.70) может расходиться (см. разд.
2.3.3).
Отметим, что даже сходящаяся последовательность {xk} метода Ньютона не
всегда обеспечивает монотонное убывание f (x), т.е. неравенство f (xk+1) < f (xk)
для некоторых k=0,1,.. может нарушаться Этот недостаток устранен в
обобщенном методе Ньютонa:
k
62
xk+1 = xk – k[f (xk)]–1f (xk),
где величина k > 0 находится на каждом шаге из условия исчерпывающего
спуска по направлению рk = –[f (xk)]–1f (xk).
Недостатком метода Ньютона является необходимость вычисления и
обращения матрицы Гессе на каждой итерации.
Пример 3.13. Найти точку минимума функции f (x)=4x21 + 3x22 – 4 x1x2 + x1,
методом Ньютона из начальной точки х0 = (0,0).
 8  4
Градиент f (x0)=(–1,0), матрица Гессе f "(х0)=А= 
 . Найдем

4
6


1  6 4
обратную матрицу [f (х0)]–1 = 
 . С помощью формулы (3.70) получаем
32  4 8 
x1=x0–k[f (х0)]–1f (x0)=(–3/16, –1/8). Так как f '(x1)=(0,0), то задача решена: х* =
х1. Целевая функция квадратична, поэтому решение задачи получено за одну
итерацию.
3.5.5. КВАЗИНЬЮТОНОВСКИЕ МЕТОДЫ
Стремление уменьшить объем вычислений привело к созданию класса
методов, близких по скорости сходимости к обобщенному методу Ньютона, но
не использующих вторых производных целевой функции f (х) и процедуры
обращения матрицы f "(х). В методах этого типа используется итерационный
процесс
X k+1 = x k –  k H (k) f (хk), (3.71)
где H(k) – некоторая квадратичная матрица размера п п, а величина шага k >
0 выбирается из условия исчерпывающего спуска вдоль направления
рk = –H(k) f (хk).
В частности, если H(k) = –[f (хk)]–1 , то процесс (3.71) представляет собой
обобщенный метод Ньютона.
В квазиньютоновских методах матрица H(k) строится с помощью
рекуррентных формул на каждом шаге процесса (3.71). Вид этих формул
определяет метод. Рассмотрим в качестве примера метод Давидона – Флетчера –
Пауэла (ДФП – метод). Рекуррентная формула для H(k) имеет вид
H(k+1) = H(k) + А(k) + В(k) , H(0) = Е, А(0) = В(0) = 0 .
(3.72)
| Матрицы А(k) и В(k) выражаются на каждом шаге через матрицу H(k) и
векторы–столбцы vk = xk+1 – xk , uk = f (xk+1) – f (xk) следующим образом (см.
(3.4)):
A( k ) 
B
63
(k )

v ( k ) ( v ( k ) )T
 v (k ) , u (k ) 
,
(3.73)
H ( k ) u ( k ) (u ( k ) ) T H ( k )
H
(k ) (k )
u
,u
(k )

.
Пусть в итерационном процессе (3.71)–(3.73) при минимизации выпуклой
дифференцируемой функции f (х) в очередной точке хi градиент f '(хi)  0, т.е.
точка минимума f (х) еще не достигнута. Тогда все направления рk = –H(k)f '(хk),
iявляются направлениями убывания функции f (х).
Для доказательства этого утверждения запишем условие убывания (3.36) для
направления рk :
<р k , f ' (х k) > = –< H (k) f ' (х k ), f ' (х k) > < 0.
Докажем по индукции, что для всех k  i, H(k)– симметрическая положительно
определенная матрица– Очевидно, H(0)=Е обладает этими свойствами. Отметим,
что из соотношений (3.72) и (3.73) следует, что матрица H(k) является
симметрической как линейная комбинация симметрических матриц.
Предположим, что H(k) положительно определена и докажем, что это справедливо
и для матрицы H(k+1) . Рассмотрим квадратичную форму <H(k+1)х,х> при х  0:
(k+1)
<H
х,х> = < H х,х> +
(k)
v k ( v k ) T x, x
 vk , u k 
–
 H ( k ) u k (u k )T H ( k ) x, x 
 H (k ) u k , u k 
.
(3.74)
Представим симметрическую матрицу H(k) в виде H(k) = С СТ = СТС , где С –
некоторая квадратная матрица размера n n Обозначим векторы Cx = q, а Cuk = r,
тогда равенство (3.74) можно записать в виде
(k+1)
<H
х,х> = <q –
2
 q, r  2
+
r2
 vk , x 2
k
k
 v ,u 

q 2 r 2 -  q, r  2
r
2

 vk , x 2
k
k
 v ,u 
.
(3.75)
Из неравенства Коши – Буняковского (3.2) следует, что q r  <q, r> поэтому
из (3.75) получим неравенство:
2 2
(k+1)
<H
х, х> 
2
 vk , xk 2
.
 vk , u k 
Оценим скалярное произведение в знаменателе правой части неравенства
(3.76) с учетом свойства исчерпывающего спуска:
<vk, uk> = < xk+1 – x, f (xk+1) – f (xk)> = k< pk, f (xk+1) – f (xk) > = k< pk, f
(xk) > = k< H(k)f (xk), f (xk) > > 0
Из неравенства (3.76) видно, что <H(k+1)х, х > > 0, т.е. матрица H(k+1) также
положительно определена.
Можно показать, что для квадратичной функции с положительно
определенной матрицей A направления рk в методе ДФП оказываются A–
ортогональными. Отсюда следует, что точка минимума такой квадратичной
функции этим методом будет найдена не более чем за п итераций.
Приведем описание алгоритма метода ДФП.
Шаг 0. Задать параметр точности  > 0, выбрать х  Еn , вычислить f (x),
положить Н=Е.
Шаг 1. Найти направление р = – Н f '(х).
Шаг 2. Решить задачу одномерной минимизации f (х + р)  min,  >0,
64
т.е. найти *.

Шаг 3. Положить x =х+*р и найти f '(x). Проверить условие достижения

точности: || f '( x )|[< . Если оно выполнено, то положить x = f
прекратить поиск, иначе – перейти к шагу 4.
*

Шаг 4. Найти векторы v = x
–x, u = f

'( x ) – f
*

= f (x) и
'(х), матрицы


v  vT
Hu  u T H
A
, B
. Положить H =H + A + B, х = x , f (х)= f ( x ) и
 v, u 
 Hu, u 
перейти к шагу 1.
Пример 3.14. Методом ДФП решить задачу f (x)=4x21+ 3x22– 4x1x2+
x1min.
Итерация 1.
Шаг 0. Положим  = 10–4, х =(0,0), найдем f '(x)=(l,0), положим Н = Е =
1 0
= 
 .
0
1


Шаг 1. Найдем направление р =– Н f (х)=(– 1,0).
Шаг 2. Решим задачу f (х + р)  min, получим * = 1/8.



Шаг 3. Находим x = х+*р = (–1/8, 0), f '( x ) = (0, 1/2). Так как ||f '( x )||= 1/2>,
переходим к шагу 4.


Шаг 4. Находим векторы v = x – x=(–1/8, 0), u = f '( x ) – f '(x) = (–1, 1/2) и
матрицы
v  v T 1/ 8 0 
,
A

 v, u   0 0 
Hu  u T H
1  4  2
,
B
  
 Hu, u 
5   2 1 
13 / 40 2 / 5 
 .
H  H  A  B  
2
/
5
4
/
5




Полагаем х= x , f '(x)=f '( x ) и переходим к следующей итерации, начиная с
шага 1.
Итерация 2.
Шаг 1. Находим направление р=–Hf '(x)=( –1/5, –2/5).
Шаг 2. Решим задачу f (х + р)  min, получим * = 5/16.


Шаг 3. Находим x = (– 3/16, –1/8), f (x) = (0,0). TAx как ||f '( x ) ||= 0 < ,


точность достигнута, поэтому полагаем х* = x =(–3/16, –1/8), f *=f ( x )=3/16.
Есть и другие варианты квазиньютоновских методов. Они различаются
способами построения матриц H (k)Например, в методе Мaк–Кормикa
65
H
( k 1)
H
(k )

( v k  H ( k ) u k )( v k ) T
 vk , u k 
.
Достоинством квазиньютоновских методов является их быстрая сходимость и
отсутствие операции обращения матрицы на каждой итерации.
Недостатком этих методов является необходимость хранения в памяти ЭВМ
матриц H(k), что при решении задач высокой размерности может создать
определенные трудности.
УПРАЖНЕНИЯ
3
1
1. Функция f (x)= x21 + x22 – x1x2 + 2x1 – 4x2 минимизируется градиентным
2
2
методом с постоянным шагом (k). При каких значениях  сходимость
гарантирована? Найти * , выполнить три итерации метода при х0 = (1, 1).
2. Для функции из упражнения 1 выполнить три итерации поиска минимума
по методу наискорейшего спуска при х0 = (1,1).
3. Вычислить антиградиент функции f (х) = 100(x2 – x1)2 + (1– x1)2 в точках (–
1,2; 1), (0, 0), (2, 1) и сравнить полученные направления с направлением в точку
минимума х*= (1,1), изобразив соответствующие векторы па плоскости.
4. Показать, что в методе наискорейшего спуска направления х k+1 – хk и xk –
xk–1 ортогональны.
5. Убедиться в том, что при обновлении метода сопряженных градиентов на
каждой итерации он переходит в метод наискорейшего спуска.
6. Выполнить три итерации в соответствии с методом наискорейшего спуска
методом сопряженных градиентов, методом Ньютона и ДФП–методом для
минимизации функции f (х) =(x1+ 10x2)2 +5(x3 – x4)2 + (x2 – 2x3)4 +10(x1– x4)4 при
х0=(3, –1, 0,1).
7. Показать, что если матрица f (хk) положительно определена и f (хk )  0,
то направление рk = – [f (xk)]–1f (xk) является направлением убывания функции
f (х) в точке хk .
8. Минимизировать методом сопряженных градиентов следующие функции:
а) f (х) = 10x21+ 2x22 – 4x1x2 – 2x1 – 2x2 +1;
б) f (х) = x41+ x42 – 2x21x22 – 4x1 + 3;
в) f (х) = (x21+ x2 –11)2 +( x1 + x22 –7)2.
66
Библиографический список
1.
2.
3.
4.
5.
6.
7.
8.
67
Васильев Ф.П. Численные методы решения экстремальных задач. – М.:
Наука. 1980.
Будак Б.М., Васильев Ф.П. Приближенные методы решения задач
оптимального управления (тексты лекций). – М.: МГУ, 1969. Вып. 2.
Поляк Б. Т. Введение в оптимизацию. – М.: Наука, 1983.
Кудрявцев Л. Д. Математический анализ. Т. 1,2. – М.: Высшая школа, 1970.
Моисеев Н.Н., Иваншов Ю.П., Столярова Е.М. Методы оптимизации. – М.:
Наука, 1978.
Иоффе А.Д., Тихомиров В.М. Теория экстремальных задач. – М.: Наука,
1974.
Гилл Ф., Миррей У., Райт М. Практическая оптимизация. – М.: Мир, 1–Л985.
Сеа Ж. Оптимизация. Теория и алгоритмы. – М.: Мир, 1973.
Related documents
Download