Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. Battement tendu. Методика преподавания, виды.
  2. I. Задачи и методы психологии народов.
  3. II. Метод они должны иметь поистине универсальный, где нужно соблюдать следующее.
  4. III. Методы строительства
  5. IV. Изучите методику объективного обследования.
  6. IV. Методические указания студентам по подготовке к занятию
  7. PEST-аналіз як ефективний метод дослідження макросередовища діяльності підприємства.

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

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

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

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

B. Найдем центр тяжести всех точек, за исключением точки хh. Пусть центром тяжести будет

(7)

и вычислим f(x0)=f0.

Г. Удобнее всего начать перемещение от точки xh. Отразив точку xh относительно точки х0, получим точку хr и найдем f(xr) = fr. Операция отражения иллюстрируется (Рис 4.). Если а > 0 - коэффициент отражения, то положение точки хr определяется следующим образом:

т.е.

(8)

Замечание:

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

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


Рис. 4.


Рис. 5.

Коэффициент растяжения можно найти из следующих соотношений:

т.е.

(9)

Замечание:

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

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

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

3. Если fr > fe и fr > fg, перейдем на шаг Е.

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

1. Если fr > fh, то переходим непосредственно к шагу сжатия Е,2.

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

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

где - коэффициент сжатия. Тогда

(10)

Если fr < fh, то сначала заменим точку xh на точку xr, а затем произведем сжатие. Тогда точку xc найдем из соотношения

т.е.

(11)

(рис. 7).


Рис. 6.


Рис. 7.

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

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

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

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

Таким образом, точка xj заменяется на точку , т.е. заменяем точку xi точкой

(12)

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

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

(13)

где .

Если , то все значения функции очень близки друг к другу, и поэтому они, возможно, лежат вблизи точки минимума функции xl. Исходя из этого, такой критерий сходимости является разумным, хотя Бокс, Дэвис и Свенн предлагают то, что они считают более "безопасной" проверкой.

Шаги этой процедуры представлены в виде блок-схемы на рис. 8.

Коэффициенты в вышеприведенной процедуре являются соответственно коэффициентами отражения, сжатия и растяжения. Нелдер и Мид рекомендуют брать . Рекомендация основана на результатах экспериментов с различными комбинациями значений. Эти значения параметров позволяют методу быть эффективным, но работать в различных сложных ситуациях.

Начальный симплекс выбирается на наше усмотрение. В данном случае точка x1 является начальной точкой, затем формируются точки

(14)

где k - произвольная длина шага, a ej - единичный вектор.


Рис. 8.


Метод полного перебора (метод сеток)

Многомерные задачи, естественно, являются более сложными и трудоемкими, чем одномерные, причем обычно трудности при их решении возрастают при увеличении размерности. Для того чтобы вы лучше почувствовали это, возьмем самый простой по своей идее приближенный метод поиска наименьшего значения функции. Покроем рассматриваемую область сеткой G с шагом h (Рис. 9) и определим значения функции в ее узлах. Сравнивая полученные числа между собой, найдем среди них наименьшее и примем его приближенно за наименьшее значение функции для всей области.


Рис. 9.

Как мы уже говорили выше, данный метод используется для решения одномерных задач. Иногда он применяется также для решения двумерных, реже трехмерных задач. Однако для задач большей размерности он практически непригоден из-за слишком большого времени, необходимого для проведения расчетов. Действительно, предположим, что целевая функция зависит от пяти переменных, а область определения G является пятимерным кубом, каждую сторону которого при построении сетки мы делим на 40 частей. Тогда общее число узлов сетки будет равно . Пусть вычисление значения функции в одной точке требует 1000 арифметических операций (это немного для функции пяти переменных). В таком случае общее число операций составит 1011. Если в нашем распоряжении имеется ЭВМ с быстродействием 1 млн. операций в секунду, то для решения задачи с помощью данного метода потребуется 105 секунд, что превышает сутки непрерывной работы. Добавление еще одной независимой переменной увеличит это время в 40 раз. Проведенная оценка показывает, что для больших задач оптимизации метод сплошного перебора непригоден. Иногда сплошной перебор заменяют случайным поиском. В этом случае точки сетки просматриваются не подряд, а в случайном порядке. В результате поиск наименьшего значения целевой функции существенно ускоряется, но теряет свою надежность.


Дата добавления: 2015-09-06; просмотров: 238 | Нарушение авторских прав


Читайте в этой же книге: Функции нескольких переменных | Частные производные и полный дифференциал 1-го порядка | Метод градиентного спуска |
<== предыдущая страница | следующая страница ==>
Метод Хука – Дживса| Метод покоординатного спуска

mybiblioteka.su - 2015-2024 год. (0.012 сек.)