Приборостроения и информатики

Министерство образования РФ

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

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

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

Алгоритм:

1) j:=1

2) min f(x-gej)=f(x’’), x’’:= x’- g*ej

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

4) if j £ n then goto 2)

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

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

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

Алгоритм:

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

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

2.

вычисление отраженной точки

xj

xj

Если 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 + g(xj - xl), "j (сжатие в g раз)

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

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

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

Идея:

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

p1= x3-x2 x2 x3p1

x*

p0 p1

x0 x1

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

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

Московская государственная академия


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: