Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
@IRBIS_10_GLAV__TEXT_921968.doc
Скачиваний:
91
Добавлен:
16.03.2016
Размер:
4.6 Mб
Скачать

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

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

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

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

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

Сначала приведем вариант метода, предложенный Хуком и Дживсом и опи­сываемый в литературе под названием «метод конфигураций». Внем используются только дискретные шаги. Процедура поиска показана на рис. 4.21. Из начальной точки 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).

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

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

.

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

.

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

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

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

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

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

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

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

Рис. 4.24. Характер движения симплекса

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

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

Их координаты вычисляются по формуле

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

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

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

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

x(s) = x(k) + (xC – x(k)),

или

x(s) = xС + (xC – x(k)), (4.42)

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

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

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

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

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

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

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

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]