На основе рассмотренных способов выбора случайных направлений построен ряд эффективных алгоритмов поиска.
Метод Нелдера — Мида (называется также поиском по деформируемому многограннику) является развитием симплексного метода Спендли, Хекста и Химсворта. Эта конфигурация рассматривается в методе Спендли, Хекста и Химсворта. Идея метода состоит в сравнении значений функции в
вершинах симплекса и перемещении симплекса в направлении оптимальной точки с помощью итерационной процедуры. В симплексном методе, предложенном первоначально, регулярный симплекс использовался на каждом этапе. Нелдер и Мид предложили несколько модификаций этого метода, допускающих, чтобы симплексы были неправильными. В результате получился очень надежный метод прямого поиска, являющийся одним из самых эффективных, если .В методе Спендли, Хекста и Химсворта симплекс перемещается с помощью трех основных операций: отражения, растяжения и сжатия. Смысл этих операций станет понятным при рассмотрении шагов процедуры.
1. Найдем значения функции
, , ..., в вершинах симплекса.2. Найдем наибольшее значение функции
, следующее за наибольшим значением функции , наименьшее значение функции и соответствующие им точки , , .3. Найдем центр тяжести всех точек, за исключением точки
: .и вычислим
.4. Удобнее всего начать перемещение от точки
. Отразив точку относительно точки , получим точку и найдем . Если – коэффициент отражения, то положение точки определяется следующим образом: ,т.е.
, .5. Сравним значения функций
и .Если
, то мы получили наименьшее значение функции. Направление из точки в точку наиболее удобно для перемещения. Таким образом, мы производим растяжение в этом направлении и находим точку и значение функции .Коэффициент растяжения
можно найти из следующих соотношений: ,т.е.
, .6. Если
, то заменяем точку на точку и проверяем -ю точку симплекса на сходимость к минимуму (см. п. 2). Если сходимость достигнута, то процесс останавливается; в противном случае возвращаемся к п. 2.7. Если
, то отбрасываем точку . Очевидно, мы переместились слишком далеко от точки к точке . Поэтому следует заменить точку на точку , в которой было получено улучшение (шаг 5), проверить сходимость и, если она не достигнута, вернуться к п. 2.8. Если
, но , то является лучшей точкой по сравнению с другими двумя точками симплекса и мы заменяем точку на точку и, если сходимость не достигнута, возвращаемся к п. 2.9. Если
и , перейдем к п.10.10. Сравним значения функции
и .Если
, то переходим непосредственно к шагу сжатия в п. 11.Если
, то заменяем точку на точку и значение функции на значение функции . Запоминаем значение из п 8. Затем переходим к п. 11.11. В этом случае
, поэтому ясно, что мы переместились слишком далеко от точки к точке . Попытаемся исправить это, найдя точку (а затем ) с помощью шага сжатия. Если , то сразу переходим к шагу сжатия и находим точку из соотношения: ,где
– коэффициент сжатия.Тогда
.