русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Метод Нелдера-Мида


Дата добавления: 2013-12-24; просмотров: 4627; Нарушение авторских прав


Пример

Симплекс планирование

Всегда привлекательно воспользоваться безградиентными методами. Они связаны с простыми вычислениями, устойчивы к локальным экстремумам. При последовательном симплекс планировании (ПСП) для каждого шага к оптимуму требуется один опыт. План эксперимента располагается в вершинах симплекса. Симплексом называется правильный выпуклый многогранник, имеющий k+1 вершину в k – мерном факторном пространстве. Для k=2 правильным симплексом будет равносторонний треугольник с вершинами (1, 2, 3). При k=3 – тетраедр.

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


Рис. Поиск экстремального значения. Траектория при ПСП.

Начнём с постановки опытов 1, 2, 3 в вершинах начального симплекса. Начальный симплекс располагают в факторном пространстве на основе априорной информации об объекте исследования. Результаты опытов ранжируют по величине отклика. Выбирают наихудший результат. В данном случае это точка 1. На грани 2 – 3, противолежащей точке 1 строят новый правильный симплекс 2, 3, 4. Причём построение этого симплекса состоит в расчёте координат одной точки 4. Ранжируют, выбирают наихудший результат и рассчитывают вершину следующего симплекса – точку 5. Координаты каждой новой вершины симплексов . Рассчитывают по формуле

Здесь: k - число факторов; u - номер опыта (т.е вершины симплекса); - координата i -го фактора в наихудшем опыте.

Если на протяжении k+1 шага в эксперименте одна вершина симплекса сохраняет своё положение, то такая ситуация называется зацикливанием. В этом случае рекомендуется повторить поиск оптимума из другой точки факторного пространства и с симплексом другого размера. Окончание поиска в тойже области свидетельствует о нахождении оптимума.



Метод Нелдера-Мида (поиск по деформируемому многограннику) является развитием симплексного метода Спендли, Хекста и Химсворта. Идея метода состоит в сравнении значений функции в (n+1)вершинах симплекса и перемещении в направлении оптимальной точки с помощью итерационной процедуры. В симплексном методе, предложенном первоначально, регулярный симплекс использовался на каждом этапе. Нелдер и Мид предложили несколько модификаций этого метода, допускающих, чтобы симплексы были неправильными. В результате получился очень надежный метод прямого поиска, являющийся одним из самых эффективных, если n<=6.

Симплекс перемещается с помощью трех основных операций: отражения, растяжения и сжатия. Смысл этих операций представлен следующей процедурой (ищем минимум функции).

А. Найдем значения функции f1=f( x1), f2=f(x2) ... fn+1=f(xn+1) в вершинах симплекса.

Б. Найдем наибольшее значение функции fh, следующее вниз за наибольшим значением функции fg , наименьшее значение функции fl и соответствующие им точки xh, xg и xl.

В. Найдем центр тяжести всех точек, за исключением точки xh. Пусть центром тяжести будет и вычислим f(x0)=f0.

Г. Перемещение начнём от точки xh. Отразив точку xh относительно точки x0, получим точку xr и найдем f(xr) = fr. Операция отражения иллюстрируется рис. Если α > 0 - коэффициент отражения, то положение точки xr определяется следующим образом: xr-x0= α(x0-xh), т.е. xr=(1+ α)x0 - α xh.

Замечание. α = |xr-x0|/|x0 -xh|.

Д. Сравним значения функций fr и fl.

1. Если fr<fl, то мы получили наименьшее значение функции. Направление из точки x0 в точку xr наиболее удобно для перемещения. Таким образом, мы производим растяжение в этом направлении и находим точку xe и значение функции fe=f(xe). Рисунок иллюстрирует операцию растяжения симплекса. Коэффициент растяжения можно найти из следующих соотношений: xe-x0=g(xr-x0), т.е. xe=gxr+ (1-g)x0.

Рис. Операции отражения и растяжения

Замечание. g= |xe-x0|/|xr-x0|.

а) Если fe>=fl, то заменяем точку xh на точку xe и проверяем (n+1)-ую точку симплекса на сходимость к минимуму (шаг З). Если сходимость достигнута, то процесс останавливается; в противном случае возвращаемся на шаг Б.

б) Если fe=fl , то отбрасываем точку xe. Очевидно, мы переместились слишком далеко от точки x0 к точке xr. Поэтому следует заменить точку xh на точку xr, в которой было получено улучшение (шаг Д, 1) проверить сходимость и, если она достигнута, вернуться на шаг В.

2.Если fr>fl, но fr <=fgто xr является лучшей точкой по сравнению с другими двумя точками симплекса и мы заменяем точку xh на точку xr и, если сходимость не достигнута, возвращаемся на шаг Б, т.е. выполняем пункт 1б, описанный выше.

3.Если fr>fl и fr>fgто перейдем на шаг Е.

Е. Сравним значения функций fr и fh.

1. Если fr<fh, то заменяем точку xh на точку xr и значение функции fh на значение функции fr. Запоминаем значение fr>fg из шага Д.2, приведенного выше. Затем переходим на шаг Е.2

2. Если fr>fh, ясно, что мы переместились слишком далеко от точки xh к точке x0. Пытаемся исправить это, найдя точку xc (а затем и fc) с помощью шага сжатия, показанного на рис.

Если fr > fh, то сразу переходим к шагу сжатия и находим точку xc из соотношения xc-x0=b(x0-xh),

где (0<b<1)- коэффициент сжатия. Тогда xc=(1+b)x0-bxh.

Если fr<fh, то сначала заменим точку xh на точку xr, а затем произведем сжатие. Тогда точку xc найдем из соотношения xc-x0=b (xr-x0), т.е. xc=bxr+(1-b)x0. (рис. ).

Ж. Сравниваем значения функций fc и fh.

1. Если fc<fh, то заменяем точку xh на точку xc, и если сходимость не достигнута ,то возвращаемся на шаг Б.

2. Если fc>fh, то очевидно, что все наши попытки найти значение меньшее fh закончились неудачей, поэтому мы переходим на шаг З.

З. На этом шаге мы уменьшаем размерность симплекса делением пополам расстояния от каждой точки симплекса до xl-точки, определяющей наименьшее значение функции.

Рис. Шаги сжатия для fr > fh и для fr < fh

Таким образом, точка xi заменяется на точку . Затем вычисляем fi для i=1,2,...,(n+1), проверяем сходимость и, если она достигнута, возвращаемся на шаг В.

И. Проверка сходимости основана на том, чтобы стандартное отклонение (n+1)-го значения функции было меньше некоторого заданного малого значения ( В этом случае вычисляется .

Если , то все значения функции очень близки друг к другу, и поэтому они, возможно, лежат вблизи точки минимума функции xl. Коэффициенты α, b, g в вышеприведенной процедуре являются соответственно коэффициентами отражения, сжатия и растяжения. Нелдер и Мид рекомендуют брать α =1, b=0.5 и g=2. Рекомендация основана на результатах экспериментов с различными комбинациями значений. Эти значения параметров позволяют методу быть эффективным, но работать в различных сложных ситуациях.



<== предыдущая лекция | следующая лекция ==>
Оптимизация функции отклика | Общая характеристика планов эксперимента


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.009 сек.