Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы оптимизации. Функции нескольких переменных.doc
Скачиваний:
296
Добавлен:
23.03.2016
Размер:
4.91 Mб
Скачать

3.2.2. Метод поиска Хука — Дживса

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

x= x+ λ( x x)

четко устанавливает, что множество отраженных точек описывается. вектором, определяющим некоторое направление в пространстве управляемых переменных. Остальные элементы логической структуры поиска связаны лишь с выбором такой величины шага λ, которая позволяет достигнуть заметного «улучшения» значений целевой функции. Если же главная задача работы с образцом, составленным из пробных точек, состоит в определении направления поиска, то стратегию поиска по симплексу можно усовершенствовать путем непосредственного введения множества векторов, задающих направления поиска. Простейший подход заключается в том, что поиск ведется на основе рекурсивного перебора направлений из произвольно заданного множества. С другой стороны, можно построить стратегию поиска, в рамках которой одно или несколько направлений поиска уточняются на каждой итерации, что позволяет согласовать систему направлений поиска с глобальной топологией целевой функции. Для того чтобы гарантировать возможность проведения поиска по всей рассматриваемой области, в обоих случаях целесообразно наложить требование линейной независимости направлений поиска, которые должны образовывать базис в допустимой области определения f(x). Например, легко убедиться в том, что нельзя вести поиск оптимума функции трех переменных с использованием двух направлений поиска. Отсюда следует, что все рассматриваемые методы прямого поиска используют по меньшей мере N независимых направлений поиска, где N— размерность вектора х.

Элементарным примером метода, в рамках которого реализуется процедура рекурсивного перебора на множестве направлений поиска, является метод циклического изменения переменных, в соответствии с которым каждый раз меняется только одна переменная. При таком подходе множество направлений поиска выбирается в виде множества координатных направлений в пространстве управляемых переменных задачи. Затем вдоль каждого из координатных направлений последовательно проводится поиск точки оптимума на основе методов решения задач оптимизации с одной переменной. Если целевая функция обладает свойством сферической симметрии, такой поиск обеспечивает получение решения исходной задачи. Однако если линии уровня функции искривлены или растянуты (что весьма часто имеет место в возникающих на практике задачах), то итерации могут превратиться в бесконечную последовательность уменьшаю­щихся шагов и процедура поиска становится неэффективной. Кроме того, как показал Пауэлл [9], изменение координатных направлений поиска (или направлений поиска из любого заданного множества) в циклическом порядке может не только оказаться неэффективным, но и привести к отсутствию сходимости к точке локального оптимума даже при бесконечном числе итераций.

Конструктивные попытки повышения эффективности этого метода были связаны с тем обстоятельством, что поиск, периодически проводимый в направлении d(i) = x(i) x(i-1) позволяет существенно ускорить сходимость. Это обстоятельство было положено в основу модифицированного метода, разработанного Хуком и Дживсом [10] и являющегося одним из первых алгоритмов, в которых при определении нового направления поиска учитывается информация, полученная на предыдущих итерациях. По существу процедура Хука — Дживса представляет собой комбинацию «исследующего» поиска с циклическим изменением переменных и ускоряющегося поиска по образцу с использованием определенных эвристических правил. Исследующий поиск ориентирован на выявление характера локального поведения целевой функции и определение направлений вдоль «оврагов». Полученная в результате исследующего поиска информация затем используется в процессе поиска по образцу при движении по «оврагам».

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

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

x= x+ (x x). (3.24)

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

x текущая базовая точка,

x предыдущая базовая точка,

x точка, построенная при движении по образцу,

x следующая (новая) базовая точка.

Приведенная последовательность характеризует логическую структуру поиска по методу Хука — Дживса.

Метод поиска Хука — Дживса

Шаг 1. Определить:

начальную точку x

приращения ∆,i = l, 2, 3,..., N,

коэффициент уменьшения шага α > 1,

параметр окончания поиска ε > 0.

Шаг 2. Провести исследующий поиск.

Шаг 3. Был ли исследующий поиск удачным (найдена ли точка с меньшим значением целевой функции)?

Да: перейти к шагу 5.

Нет: продолжать.

Шаг 4. Проверка на окончание поиска. Выполняется ли неравенство || x || < ε?

Да: прекратить поиск; текущая точка аппроксимирует точку оп­тимума х*.

Нет: уменьшить приращения по формуле

= ∆/ α, i = 1, 2, 3,…, N,

Перейти к шагу 2.

Шаг 5. Провести поиск по образцу:

x= x+ (x x).

Шаг 6. Провести исследующий поиск, используя xв качестве базовой точки; пусть x(k+1) — полученная в результате точка.

Шаг 7. Выполняется ли неравенство f(x(k+1})<f(x)?

Да: положить x= x(k), x(k) = x.

Перейти к шагу 5.

Нет: перейти к шагу 4.

Пример 3.3. Поиск по методу Хука — Дживса

Найти точку минимума функции

f(x) = 8x + 4xx+ 5x,

используя начальную точку х(0)=[4, 4]T.

Решение. Для того чтобы применить метод прямого поиска Хука — Дживса, необходимо задать следующие величины:

x — векторная величина приращения = [1, 1],

α — коэффициент уменьшения шага = 2,

ε — параметр окончания поиска — 10—4.

Итерации начинаются с исследующего поиска вокруг точки х(0), которой соответствует значение функции f(х(0)) = 272. Фиксируя x2, дадим приращение переменной x:

x= 4

x= 4+1→ f(3, 4) = 200< f(х(0)) → Успех.

Следовательно, необходимо зафиксировать x= 3 и дать прираще­ние переменной х2:

x= –3,

x= 4+1→ f(3, 3) = 153< 200 → Успех.

Таким образом, в результате исследующего поиска найдена точка

x=[3, 3] , f(x) = 153

Поскольку исследующий попек был удачным, переходим к поиску по образцу:

x=x+( x х(0)) = [2, 2],

f(x) = 68

Далее проводится исследующий поиск вокруг точки x который оказывается удачным при использовании положительных приращений переменных x и x. В результате получаем точку

x= [1, 1], f(x) = 17.

Поскольку f(x(2)) < f(x(1)), поиск по образцу следует считать успеш­ным, и х(2) становится новой базовой точкой при следующем проведении поиска по образцу. Итерации продолжаются, пока уменьшение величины шага не укажет на окончание поиска в окрестности точки минимума х* = [0, 0]T. Последовательные шаги реализации метода показаны на рис. 3.7.

Из примера 3.3 следует, что метод Хука — Дживса характеризуется несложной стратегией поиска, относительной простотой вычислений и невысоким уровнем требований к объему памяти ЭВМ, который оказывается даже ниже, чем в случае использования метода поиска по симплексу. Благодаря этому алгоритм Хука — Дживса находит широкое применение во всех областях инженерной практики; особенно эффективны его варианты с использованием штрафных функций, которые рассматриваются в гл. 6. Однако необходимо отметить, что основанный на циклическом движении по координатам алгоритм в ряде случаев может заканчивать работу преждевременно, а при наличии значительных нелинейных эффектов вырождается в последовательность исследующих поисков без перехода к ускоряющемуся поиску по образцу.

Известен целый ряд подходов к усовершенствованию метода Хука — Дживса. В частности, Бендлер и Мак-Дональд [11] модифицировали процедуру Хука — Дживса путем введения дополнительных правил увеличения и уменьшения приращений переменных, а также правила уменьшения шага по образцу, которое применяется в тех случаях, когда обычный шаг оказывается неудачным. Эксперименты, проведенные авторами данной книги, позволили доработать другую фазу реализации алгоритма, которую иногда называют использованием образца. Если движение по образцу приводит к успеху, имеются определенные основания для того, чтобы полностью использовать возможности поиска вдоль прямой, определяемой образцом, или по крайней мере увеличить длину шага по образцу. Такие действия часто позволяют существенно ускорить сходимость метода. Эмери и О'Хаган [12] изменили фазу исследующего поиска путем введения системы ортогональных направлений поиска, ориентация которой случайным образом меняется на каждой итерации. Розенброк [13] разработал метод, в котором, как и в методе Хука — Дживса, новое направление поиска определяется с учетом информации, полученной на предыдущих итерациях. Однако (в отличие от метода Хука—Дживса) подход, предложенный Розенброком, основан на непрерывном изменении множества векторов, используемых при исследующем поиске, с помощью процедуры ортогонализации. Другой метод, изложенный в работе Свенна [14] и иногда называемый методом поиска Дэвиса, Свенна и Кемпи, опирается на стратегию поиска, подобную стратегии Розенброка. При его реализации поиск ведется не с помощью фиксированных шагов по каждому из выбранных направлений, а вдоль каждой прямой, заданной одним из направлений 1). Каждый из перечисленных методов прямого поиска обладает рядом преимуществ перед остальными при решении задач определенного типа.

f(x) = 8x + 4xx+ 5x