Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по ПиОА(Т).doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
538.62 Кб
Скачать

Многомерная минимизация Метод градиентного спуска

Общая задача нелинейного программирования без ограничений состоит в минимизации функции , заданной во всем n–мерном евклидовом пространстве. Функция называется целевой функцией.

Как правило, численные методы нахождения экстремума состоят в построении последовательности векторов , удовлетворяющих условию: . Методы построения таких последовательностей называются методами спуска. В этих методах элементы последовательности вычисляются по формуле:

где – направление спуска; – длина шага в этом направлении.

Как известно, градиент функции в некоторой точке направлен в сторону наискорейшего локального возрастания функции. Следовательно, спускаться нужно в направлении, противоположном градиенту. Вектор, противоположный градиенту, называется антиградиентом. Выбирая антиградиент в качестве направления спуска, приходят к итерационному процессу вида:

, (2)

где

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

В методе наискорейшего спуска величина определяется из условия

,

т.е. на каждом шаге решается одномерная задача минимизации. Геометрическая интерпретация этого метода достаточно проста (рис. 3). Заметим, что на двух последовательных шагах направления спуска ортогональны.

Если – ограниченная снизу, непрерывно дифференцируемая функция и для некоторой начальной точки множество также ограничено, то для метода наискорейшего спуска последовательность либо сходится к точке минимума при , либо достигает точки минимума за конечное число шагов.

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

В этом случае полагаем .

Здесь

Рисунок 3 – Метод градиентного спуска

Метод Хука–Дживса

Процедура Хука–Дживса представляет собой комбинацию исследующего поиска с циклическим изменением переменных и ускоряющего поиска по образцу.

Исследующий поиск. Для проведения исследующего поиска необходимо знать величину шага, которая может быть различной для разных координатных направлений и изменяться в процессе поиска. Исследующий поиск начинается в некоторой исходной точке. Если значение целевой функции в пробной точке не превышает значение в исходной точке, то шаг поиска рассматривается как успешный. В противном случае надо вернуться в предыдущую точку и сделать шаг в противоположном направлении с последующей проверкой значения целевой функции. После перебора всех n– координат исследующий поиск завершается. Полученную в результате точку называют базовой точкой.

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

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

– текущая базовая точка,

– предыдущая базовая точка,

– точка, построенная при движении по образцу,

– следующая (новая) базовая точка.

Приведенная последовательность характеризует логическую структуру поиска по методу Хука–Дживса.

Алгоритм метода:

1. Выбрать начальную базисную точку b1 и шаг длиной h1 для каждой переменной

2. Вычислить f(х) в базисной точке b1 с целью получения сведений о локальном поведении функции f(х). Эти сведения будут использоваться для нахождения подходящего направления поиска по образцу, с помощью которого можно надеяться достичь большего убывания значения функции. Функция f(х) в базисной точке b1, находится следующим образом:

а) Вычисляется значение функции f(b1) в базисной точке b1.

б) Каждая переменная по очереди изменяется прибавлением длины шага. Таким образом, мы вычисляем значение функции , где единичный вектор в направлении оси x1. Если это приводит к уменьшению значения функции, то b1 заменяется на . В противном случае вычисляется значение функции , и если ее значение уменьшилось, то b1 заменяем на . Если ни один из проделанных шагов не приводит к уменьшению значения функции, то точка b1 остается неизменной и рассматриваются изменения в направлении оси х2, т. е. находится значение функции и т. д. Когда будут рассмотрены все n переменных, мы будем иметь новую базисную точку b2.

в) Если , т. е. уменьшение функции не было достигнуто, то исследование повторяется вокруг той же базисной точки b1, но с уменьшенной длиной шага. На практике удовлетворительным является уменьшение шага (шагов) в десять раз от начальной длины.

г) Если , то производится поиск по образцу.

3. При поиске по образцу используется информация, полученная в процессе исследования, и минимизация функции завершается поиском в направлении, заданном образцом. Эта процедура производится следующим образом:

а) Разумно двигаться из базисной точки b2 в направлении , поскольку поиск в этом направлении уже привел к уменьшению значения функции. Поэтому вычислим функцию в точке образца:

В общем случае:

б) Затем исследование следует продолжать вокруг точки .

в) Если наименьшее значение на шаге 3б) меньше значения в базисной точке b2 (в общем случае bi+1), то получают новую базисную точку b3 (bi+2), после чего следует повторить шаг 3а). В противном случае, не производить поиск по образцу из точки b2 (bi+1), а продолжить исследования в точке b2 (bi+1).

4. Завершить этот процесс, когда длина шага (длины шагов) будет уменьшена до заданного малого значения.