Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка с теорией.DOC
Скачиваний:
145
Добавлен:
01.05.2014
Размер:
4.7 Mб
Скачать

1.6. Методы нулевого порядка (методы прямого поиска)

1.6.1. Методы аппроксимации

В их основе лежит аппроксимация градиента и матрицы вторых производных с помощью конечных разностей.

Пусть ej - орт j-й оси.

f (x + ej)  f(x) + (f/x)j + O(2)

f/xj  ( f(x + ej) - f(x) )/   ( f(x + ej) - f(x - ej) )/ (2)

Здесь под градиентом понимается конечная разность. Если  слишком мала, то слишком велики погрешности при вычислении производных. Если  велика, то из-за O(2) погрешности тоже велики. Таким образом, проблема этих методов - выбор .

      1. Метод покоординатного спуска

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

Алгоритм:

  1. j :=1

  2. min f(x-ej)=f(x’’), x’’:= x’- *ej

  3. j:=j+1, x= x’’

  4. if j  n then goto 2)

  5. if not (условие окончания цикла) then goto 1

Достоинство:

Требуется min функции вдоль только одной прямой.

1.6.3. Метод симплексов (Нелдера-Мида)

Алгоритм:

1.Фиксируем xo…xn ( n+1- точка)

Если n =2 , то выбираем равнобедренный треугольник.

2

.

т.е. вычисляем отражённую точку.

Если f(xj) < f(xj), то xj := xj; k:=0, иначе k:=k+1

где k- количество идущих подряд неудачных отражений

3. Если k<n, то (если j<n, то j:=j+1 , иначе j:=0) goto 2.

4.Иначе сжатие: xl = argmin f(xj), 0 j  n - ищем вершину, в которой функция минимальна (то есть наименьшее значение из всех существующих вершин.

5. Cжатие: xj = xl + ( xj - xl), j (сжатие в  раз).

6. Если ||x0 – x1||, то j:=0, goto 2.

7. Печать xl.

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

Существует много модификации метода.

1.6.4. Метод Пауэлла (сопряженных направлений)

Идея: Для двух точек x0,x1 делается шаг в произвольном направлении p0. Получаем точки x2,x3. Следующий шаг делаем в направлении p1. Находится x*.

p1= x3-x2 x2 x3p1

x*

p0 p1

x0 x1

Утверждается, что (Ap1,po)=0.

Поэтому для квадратичной функции метод сойдется за n-шагов. Это один из лучших методов прямого поиска.

1.7. Методы прямого поиска в задачах одномерной минимизации.

Схема метода: xk+1 = xk + tkSk , где Sk -направление.

Необходимо определить tk.. Для этого надо найти минимум функции одной переменной (t) = f(xk + tSk). Будем искать точку локального минимума, поэтому ограничимся унимодальными функциями, т.е. имеющими один минимум. Больше ничего о функции неизвестно. Только можно вычислить (измерить) значения функции в точках.

1.7.1. Метод квадратичной интерполяции.

Пусть функция задана на прямой, даны при этом точки a<b<c, и , точка минимума в [a, c]

Через эти точки проведем параболу:

Положим:

, т.е. имеем 3 уравнения и 3 неизвестных g0, g1, g2.

Находим g0, g1, g2

Рассмотрим два случая:

Так поступаем до тех пор, пока точка не окажется в достаточно малой окрестности одной из трех точекa, b, c. После чего такую точку считаем точкой минимума.

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