Выбор начального симплекса в алгоритме оптимизации Нелдера-Мида

Каков наилучший способ инициализировать симплекс для использования в симплексном поиске Нелдера-Мида из пользовательской вершины «догадки»?


person craigB    schedule 29.07.2013    source источник


Ответы (2)


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

Построение начального симплекса 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, основанной на схеме Нелдера-Мида.

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

Ф. Гао, Л. Хан, "Реализация симплексного алгоритма Нелдера-Мида с адаптивными параметрами", Comput. Оптим. Приложение, DOI 10.1007/s10589-010-9329-3

person Vitality    schedule 09.10.2013

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

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

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

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

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

Б. Кюне

person Bernhard Kühne    schedule 24.01.2014
comment
страница больше не существует - person Leos313; 09.04.2020