Министерство образования РФ
Метод симплексов (Нелдера- Нида)
Метод покоординатного спуска
Нужны направления. Раньше их задавал градиент, теперь его нет. Возможен случайный выбор, а можно по координатным осям.
Алгоритм:
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 (выбир. равнобедренный треугольник)
вычисление отраженной точки
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- шагов. Это один из лучших методов прямого поиска.
Московская государственная академия