Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы по СА и ИО1.doc
Скачиваний:
14
Добавлен:
01.03.2025
Размер:
6.8 Mб
Скачать

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

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

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

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

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

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

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

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

.

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

Такой вариант метода обеспечивает быстрое приближение к области искомого решения. Другим важным достоинством метода является его работоспособность в условиях оврага. Траектория поиска хорошо приспосабливается к изгибам дна оврага.

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

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

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

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

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

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

x(s) = x(k) + (xCx(k)) или x(s) = xС + (xCx(k)), где >0 и – параметры отражения.

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

Значения коэффициентов отражения были подобраны экспериментально: = 1; = 0,5; = 2. Предложены и другие наборы значений, однако они дают лучшие результаты только в частных случаях. В алгоритме Нелдера-Мида используются три вершины: А – с наибольшим значением ц елевой функции (худшая), В – со следующим значением и L – с наименьшим значением (лучшая). Всегда отражается вершина А. Сначала производится нормальное отражение. Получаемая в результате точка D считается временной. Далее идут проверки:

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

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

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

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

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

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

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