Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ_ТЕКУЩИЕ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
832.95 Кб
Скачать

I. Введение

Задача: найти безусловный минимум функции f(x), заданной на всем пространстве En.

(Многие алгоритмы решения задач с ограничениями включают данную задачу как некоторый этап.)

2 Подхода к решению задач:

1. задача нахождения экстремума заменяется задачей поиска решений уравнений вида f '(x)=0.

2. нахождение такой последовательности точек х1, х2, х3..., что f(х1)<f2)<... прямой метод решения задач оптимизации.

Различие между этими методами несущественное, т.к. метод 1 также приводит к построению последовательности {xk}.

Последовательности векторов {xk}, при которых f(х0)>f1)>...>fn) называется релаксационными, а методы их построения называются методами спуска.

Методы спуска различаются выбором направления спуска и длины шага вдоль этого направления. Точки {xk} вычисляются по формуле

хk+1 = xk + kpk,

где pk направление спуска

k длина шага.

Скорость сходимости методов спуска важнейшая их характеристика.

1. Линейная сходимость (сходимость со скоростью геометрической прогрессии)

|| хk+1- x*||<=q||xk - x*||,

где x* точка минимума f(x)

q константа 0<q<1

2. Сверхлинейная скорость сходимости

||хk+1- x*||<=qk||xk - x*|| если qk →0 при k→∞.

3. Квадратичная сходимость

||хk+1- x*||<=с||xk - x*||2, с>=0.

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

а) Методы нулевого порядка (методы поиска) используют только значения самой целевой функции;

б) методы первого порядка требуют кроме того вычисления первых производных минимизируемой функции.

Наименьшего числа итераций требуют методы второго порядка (общее число машинных операций при этом не всегда минимально!)

II Градиентные методы  методы 1-ого порядка

Градиент скалярной функции f(x) в некоторой точке xk направлен в сторону наискорейшего возрастания функции и ортогонален линии уровня (поверхности постоянного значения f(x), проходящей через заданную точку).

Антиградиент вектор, противоположный градиенту f '(xk) направлен в сторону наискорейшего убывания функции. Выбрав в качестве направления спуска pk в

хk+1 = xk + kpk т.е. pk= -f '(xk)

антиградиент в точке xk, получим итерационный процесс

хk+1 = xk - kf '(xk) k >0, k=1, 2, ... (1)

В координатной форме (1) запишется как

= k (xk ) i=1,2,...n (2)

Итерационные процессы, в которых направление движения на каждом шаге совпадает с градиентом, называются градиентными методами.

Отличаются градиентные методы выбором шага k.

Часто в (1) вместо градиента f '(xk)=f(xk) используют нормированный (единичный) градиент f(xk) / ||f(xk)||.

Наиболее распространенные 2 способа выбора шага:

1. Метод с дроблением шага

2. Метод наискорейшего спуска. (минимизируется на каждом функция f(xk-f '(xk)) от ).

II.1. Градиентные методы с дроблением шага. Методы с постоянным шагом

В выражении (1) хk+1= xk - kf '(xk) выбрав достаточно малый шаг k получим

(3) f(xk-f '(xk))< f(xk), т.е. f(хk+1)< f(xk).

Проблема: при малом k слишком много шагов

при большом k может нарушиться неравенство (3)

Пример: необходимо минимизировать функцию f(x)=ax2; a>0

Формула (1) принимает вид [ = xk - kf '(x)]

хk+1=(1 - 2ka)xk

Если k=const, то процесс сходится, при 0<k< и расходится при k> . (В данном случае х*=0, и процесс будет сходиться, если | хk+1|<| xk|, т.е. |1 - 2ka |<1

, т.к. а>0, то >0, , )

Если k = , то x1 = - x0; x2 = x0; x3 = - x0; и т.д., т.е. происходит зацикливание.

Если k> , процесс расходится: пусть = > . Тогда хk+1=(1-4)xk= -3xk. Пусть x0=1, тогда x1=-3; x2=9; x3=-27 и т.д.

В методе градиентного спуска с дроблением шага k выбирается так, чтобы выполнялось неравенство:

(4) f(xk-f '(xk)) - f(xk)<= -k|| f '(xk)||,

т.е. fk+1) - f(xk)<= -k|| f '(xk)||,

где 0<<1

Требование (4) на выбор шага более жесткое, чем требование (3). В (3) необходимо только, чтобы fk+1)<f(xk).

Алгоритм, реализующий метод с дроблением шага:

1. Выбирается >0.

2. На k-ом шаге (на каждом шаге) проверяем выполнение условия (4). Если условие выполняется, переходим к следующей итерации. В противном случае дробим до тех пор, пока условие (4) не выполнится.

41