Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
338
Добавлен:
10.12.2013
Размер:
3.98 Mб
Скачать

8.8.2. Метод Хука-Дживса (метод конфигураций)

В этом методе каждая итерация состоит из двух фаз:

1) исследующий поиск;

2) движение по образцу (ускоряющий шаг).

Исследующий поиск аналогичен одному циклу покоординатного спуска. Конечную точку цикла называют базовой. Две последовательные базовые точки определяют направление поиска на 2-й фазе. Точка, получаемая в результате ускоряющего шага, называется временной. Начальная точка одновременно является базовой и временной.

Сначала приведем вариант метода, предложенный Хуком и Дживсом и описываемый в литературе под названием "метод конфигураций". В нем используются только дискретные шаги. Процедура поиска показана на рис. 8.20. Из начальной точкиX(0) делается шаг  по x1 в одну сторону и, если успешно, то значение фиксируется, иначе направление шага изменяется на противоположное. Также делается по остальным координатам. Итогом первого исследующего поиска является точка X(1). В направлении X(1)- X(0) осуществляется движение по образцу, дающее временную точку Y(1)= X(1)+ (X(1)- X(0)), где – коэффициент ускорения (рекомендуется брать от 1 до 2). Из полученной временной точки снова проводится исследующий поиск, приводящий в очередную базовую точку X(2). Ускоряющий шаг в направлении X(2)- X(1) дает временную точку Y(2). Фазы поиска повторяются без изменения величины шага, если f(Y(k))<f(X(k)). В противном случае, если <, поиск заканчивается и X(k) принимается за решение, а иначе следует положить Y(k)= X(k), уменьшить шаг в два раза и перейти к исследующему поиску из точки Y(k). Иначе говоря, после каждого ускоряющего шага проверяется его успешность, и в зависимости от результата выбираются последующие действия..

Модификация метода Хука-Дживса заключается в замене дискретных шагов одномерной минимизацией. В этом варианте исследующий поиск полностью совпадает с одним циклом покоординатного спуска, то есть по каждой координате выполняются не дискретные шаги, а ищется минимум. При движении по образцу также ищется минимум функции только по одной неизвестной – коэффициенту ускорения :

По оптимальному значению * определяется временная точка

Поиск завершается, когда расстояние между двумя смежными базовыми точками становится меньше заданной величины:

.

К этому условию можно добавить и требование по точности функции:

На рис. 8.21 и 8.22 приведены примеры применения метода с одномерной минимизацией. Как видно, такой вариант метода обеспечивает быстрое приближение к области искомого решения. Другим важным достоинством метода является его работоспособность в условиях оврага. Траектория поиска хорошо приспосабливается к изгибам дна оврага (рис. 8.22).

8.8.3. Симплексный метод

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

Симплекс обладает замечательным свойством: если взять только одну точку вне симплекса в качестве новой вершины, то, соединив ее с вершинами прилежащей грани, получим новый симплекс. На рис. 8.23 слева из исходного симплекса с вершинами 1,2,3 построено 2 других симплекса, а справа новый симплекс построен на грани 2,3,4 исходного и новой вершины 5.

Очевидно, что если взять одну из вершин симплекса, то все остальные вершины будут на противоле­жащей грани симплекса. Эти свойства справед­ливы для любой размерности прост­ранства.

Зная значения функции в вершинах симплекса, легко определить направление, в котором функция может улучшиться. В этом направлении строится новый симплекс: определяется самая худшая вершина (по значению функции) и она отражается через центр противолежащей грани, как показано на рис. 8.24. В построенном симплексе значение функции неизвестно только в вершине 4. Таким образом, после построения нового симплекса функция вычисляется всего один разпри любой размерности пространства. Лишь в начальном симплексе необходимо вычислять функцию во всех вершинах.

Последовательное отражение наихудших вершин перемещает симплекс в направлении уменьшения значения функции, что в конечном итоге приводит к отысканию минимума с заданной точностью. Характер движения симплекса представлен на рис. 8.25. Отражение вершин показано пунктирными линиями. Сначала отражается вершина 1, затем в полученном симплексе отражается вершина 3, симплекс 2,4,5 заменяется на 4,5,6 и так далее. Очевидно, что в процессе движения, особенно вблизи экстремума, новая вершина может оказаться не лучше отраженной. Для предотвращения зацикливания либо отражается другая вершина, либо уменьшается размер нового симплекса.

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

где i – номер вершины, j – координата вершины (индекс переменной), n – число переменных (размерность пространства), а приращения 1 и 2 зависят от n и выбранного масштабного множителя :

При =1 все ребра имеют единичную длину.

Вычисление координат новой вершины, получающейся в результате отражения одной из вершин последнего симплекса, производится следующим образом. Пусть отражается вершинаk(например, вершина 1 на рис. 8.24). Тогда сначала определяется центр противолежащей граниC

а затем координаты новой вершины s:

x(s) = x(k) + (xCx(k))

или

x(s) = xС + (xCx(k)), (8.42)

где >0 и – параметры отражения.

Предложен целый ряд методов, основанных на поиске по симплексам, отличающихся способом построения очередного симплекса и значениями параметров отражения. Лучшим из них считается метод Нелдера – Мида. В нем заложено гибкое управление симплексом, при котором он может как уменьшаться, так и увеличиваться, приспосабливаясь к поверхности функции. Оно использует 3 варианта отражения с соответствующими параметрами:

Значения коэффициентов отражения были подобраны экспериментально: = 1; = 0,5; = 2. Предложены и другие наборы значений, однако они дают лучшие результаты только в частных случаях.

В алгоритме Нелдера-Мида используются три вершины: А – с наибольшим значением целевой функции (худшая), В – со следующим значением и L – с наименьшим значением (лучшая). Всегда отражается вершина А.

Сначала производится нормальное отражение. Получаемая в результате точка D считается временной (рис. 8.26). Далее идут проверки:

  • если fL < fD < fB, нормальное отражение приемлемо и временная точка фиксируется;

  • если fB  fD < fA, то выполняется сжатие с = и фиксируется точка Db;

  • если fD  fА, симплекс сжимается с =– и фиксируется точка Db;

  • еслиfD < fL, то производится растяжение ( =), дающее точку Dg, которая фиксируется, если она не хуже временной; иначе она не учитывается и фиксируется временная точка.

В условии останова поиска может использоваться показатель размера симплекса, например, максимальная длина ребра, и/или разность значений целевой функции fА – fL.

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

Интересен вариант метода, в котором на всех итерациях симплекс остается регулярным. В нем используется коэффициент уменьшения длины ребра  0,85. Симплекс сжимается, стягиваясь к лучшей вершине, как показано на рис. 8.27, и после этого происходит отражение. Такое значение обусловлено тем, что на вершины уменьшенного симплекса переносятся значения функции соответствующих вершин до сжатия. Тем самым исключаются дополнительные вычисления функции. Возможно также увеличение симплекса за счет удлинения всех ребер с коэффициентом 1/при сохранении положения наихудшей вершины.

Соседние файлы в папке Лекции по Гольду