2013-07-29 3 views

ответ

7

Я не уверен, есть ли способ выбрать начальный симплекс в методе Nelder-Mead, но следующее, что делается в обычной практике.

Построения исходного симплекса S получается из генерации n+1 вершин x0,..,xn вокруг того, что вы называете пользователь «угадать» вершину xin в N мерном пространстве. Наиболее частый выбор

x0=xin 

и остальные n вершины затем генерируется так, что

xj=x0+hj*ej 

где ej единичный вектор j -м оси координат в R^n и hj является шаг- размер в направлении ej.

hj = 0.05 if (x0)j is non-zero 
hj = 0.00025 if (x0)j=0 

с (x0) j j-й компонент x0. Обратите внимание, что это выбор в процедуре Matlab fminsearch, которая основана на схеме Нельдера-Мида.

Вы можете найти более подробную информацию в

F. Gao, L. Han, "Implementing the Nelder-Mead simplex algorithm with adaptive parameters", Comput. Optim. Appl., DOI 10.1007/s10589-010-9329-3

2

Я думаю, что нет никакого общего правила, чтобы определить лучший начальный симплекс оптимизации Nelder-Мида, поскольку это требуется по крайней мере, смутное знание ответа поверхность.

Однако может быть разумной политикой для установки точек таким образом, чтобы симплекс охватывал практически весь возможный диапазон. Алгоритм Nelder-Mead автоматически сжимает симплекс и приближается к оптимальному. Практическое преимущество этой политики состоит в том, что вы получите лучшее общее представление о функции ответа.

Мы провели несколько испытаний с HillStormer ("http://www.berkutec.com"). Эта программа позволяет протестировать эти политики на testfunctons, и мы обнаружили, что это plicy работает довольно хорошо.

Пожалуйста, помните, что первая симплексная операция является отражением. Если начальный симплекс покрывает весь разрешенный диапазон, отражение обязательно даст предельные значения. Но HillStormer позволяет использовать линейные ограничения и может избежать этой проблемы.

Дополнительную информацию вы можете найти в системной справке HillStormer.

B. Kühne