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

3.2.1. Метод поиска по симплексу (s2-метод)

Первые попытки решения оптимизационных задач без ограничений на основе прямого поиска связаны с использованием одномерных методов оптимизации. Как правило, при реализации таких методов допустимая область определения показателя качества функционирования системы (целевой функции) заменяется дискретным множеством (решеткой) точек пространства управляемых переменных, а затем используются различные стратегии уменьшения области, которая содержит решение задачи. Часто эта процедура оказывается эквивалентной равномерному поиску в узлах решетки и, следовательно, непригодной для решения задач с числом переменных, превышающим 2. Более полезная идея заключается в выборе базовой точки и оценивании значений целевой функции в точках, окружающих базовую точку. Например, при решении задачи с двумя переменными можно воспользоваться квадратным образцом, изображенным на рис. 3.4. Затем «наилучшая» из пяти исследуемых точек выбирается в качестве следующей базовой точки, вокруг которой строится, аналогичный образец. Если ни одна из угловых точек не имеет преимущества перед базовой, размеры образца следует уменьшить, после чего продолжить поиск.

Рис. 3.4. Квадратный образец (частный случай кубического образца).

Этот тип эволюционной оптимизации был использован Боксом [4] и другими исследователями для анализа функционирования промышленных предприятий, когда эффект варьирования значений переменных, описывающих производственные процессы, измеряется с ошибкой. В задачах большой размерности вычисление значений целевой функции проводится во всех вершинах, а также в центре тяжести гиперкуба 1), т. е. в точках так называемого кубического образца. Если количество переменных (размерность пространства, в котором ведется поиск) равно N, то поиск по кубическому образцу требует 2+1 вычислений значения функций для одного образца. При увеличении размерности задачи необходимое количество вычислений значения целевой функции возрастает чрезвычайно быстро. Таким образом, несмотря на логическую простоту поиска по кубическому образцу, возникает необходимость использования более эффективных методов прямого поиска для решения возникаю­щих на практике задач оптимизации.

Одна из вызывающих особый интерес стратегий поиска положена в основу метода поиска по симплексу, предложенного Спендли, Хекстом и Химсвортом [5]. Следует отметить, что указанный метод и другие подобные методы не имеют отношения к симплекс-методу линейного программирования, а сходство названий носит случайный характер. Процедура симплексного поиска Спендли, Хекста и Химсворта базируется на том, что экспериментальным образцом, содержащим наименьшее количество точек, является регулярный симплекс. Регулярный симплекс в N-мерном пространстве представляет собой многогранник,

1) Гиперкубом называется куб в N-мерном евклидовом пространстве, т. е. множество S = {х = (х1, х2,. . ., x)RN ׀ axb,i = 1, 2,…,N}, где a и b — заданные числа.— Прим. перев.

образованный N+1 равностоящими друг от друга точками-вершинами.

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

Рис. 3.5. Построение нового симплекса.

a — начальный симплекс; x(1), x(2), x(3); б — новый симплекс; x(2),x(3), x(4).

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

Правило 1. «Накрытие» точки минимума

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

Правило 2. Циклическое движение

Если некоторая вершина симплекса не исключается на протяжении более чем M итераций, то необходимо уменьшить размеры симплекса с помощью коэффициента редукции и построить новый симплекс, выбрав в качестве базовой точку, которой соответствует минимальное значение целевой функции. Спендли, Хекст и Химс-ворт предложили вычислять M по формуле

М = 1,65N + 0,05N,

где N — размерность задачи, а М округляется до ближайшего целого числа. Для применения данного правила требуется установить величину коэффициента редукции.

Правило 3. Критерий окончания поиска

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

Реализация изучаемого алгоритма основана на вычислениях двух типов: (1) построении регулярного симплекса при заданных базовой точке и масштабном множителе и (2) расчете координат отраженной точки. Построение симплекса является достаточно простой процедурой, так как из элементарной геометрии известно, что при заданных начальной (базовой) точке х(0) и масштабном множителе α координаты остальных N вершин симплекса в N-мерном пространстве вычисляются по формуле

(3.17)

для i и j=1, 2, 3,…,N.

Приращения δ1 и δ2, зависящие только от N и выбранного мас­штабного множителя α, определяются по формулам

(3.18)

(3.19)

Заметим, что величина масштабного множителя α выбирается ис­следователем, исходя из характеристик решаемой задачи. При α — 1 ребра регулярного симплекса имеют единичную длину.

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

x= . (3.20)

все точки прямой, проходящей через x и хc, задаются формулой

х = x+ λ(хcx). (3.21)

При λ = 0 получаем исходную точку x тогда как значение λ =1 соответствует центру тяжести хc. Для того чтобы построенный симп­лекс обладал свойством регулярности, отражение должно быть сим­метричным. Следовательно, новая вершина получается при λ = 2. Таким образом,

= 2 (3.22)

Проиллюстрируем вычислительную схему метода следующим при­мером.

Пример 3.2. Вычисления в соответствии с методом поиска по симплексу

Минимизировать f(x) = (1 х1 )2 + (2 х2 )2.

Решение. Для построения исходного симплекса требуется задать начальную точку и масштабный множитель. Пусть х(0) = [0,0] и α = 2. Тогда

δ=[] α = 1.9318

δ= [] α = 0.5176

Используя эти два параметра, вычислим координаты двух остальных вершин симплекса:

х(1) = [0+0,5176, 0+1,9318]T = [0,5176, 1,9318]T,

х(2) = [0+1,9318, 0+0,5176]T = [1,9318, 0,5176]T,

которым соответствуют значения целевой функции, равные f (x(1)) = 0,2374 и f (х(2)) = 3,0658. Так как f (x) = 5, необходимо отразить точку х(0) относительно центра тяжести двух остальных вершин симплекса

x== (1) + х(2)).

Используя формулу (3.22), получаем

x= x+ x x

x= [2,4494, 2,4494]T.

В полученной точке f (х3) = 2,3027, т. е. наблюдается уменьшение целевой функции. Новый симплекс образован точками х(1), х(2), и х(3). В соответствии с алгоритмом следует отразить точку х(2), ко­торой соответствует наибольшее значение целевой функции, отно­сительно центра тяжести точек х(1) и х(3). Итерации продолжаются до тех пор, пока не потребуется применение правил 1, 2 и 3, которые были сформулированы выше.

Изложенный выше алгоритм S2-метода имеет несколько очевид­ных преимуществ.

  1. Расчеты и логическая структура метода отличаются сравнительной простотой, и, следовательно, соответствующая программа для ЭВМ оказывается относительно короткой.

  2. Уровень требований к объему памяти ЭВМ невысокий, массив имеет размерность (N + 1, N + 2).

  3. Используется сравнительно небольшое число заранее установленных параметров: масштабный множитель α, коэффициент уменьшения множителя α (если применяется правило 2) и параметры окончания поиска.

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

Перечисленные факторы характеризуют метод поиска по симплексу как весьма полезный при проведении вычислений в реальном времени.

Алгоритм обладает также рядом существенных недостатков.

  1. Не исключено возникновение трудностей, связанных с масштабированием, поскольку все координаты вершин симплекса зависят от одного и того же масштабного множителя α. Чтобы обойти трудности такого рода, в практических задачах следует промасштабировать все переменные с тем, чтобы их значения были сравнимыми по величине.

  2. Алгоритм работает слишком медленно, так как полученная на предыдущих итерациях информация не используется для ускорения поиска.

  3. Не существует простого способа расширения симплекса, не требующего пересчета значений целевой функции во всех точках образца. Таким образом, если ос по какой-либо причине уменьшается (например, если встречается область с узким «оврагом» или «хребтом»), то поиск должен продолжаться с уменьшенной величиной шага.

Модифицированная процедура поиска по симплексу, разработанная Нелдером и Мидом [6], частично устраняет некоторые из перечисленных недостатков.

Рис. 3.6. Растяжение и сжатие симплексов

a — нормальное сжатие (θ = α = 1), f< f(x) < f; б — растяжение (θ = γ > 1), f(x) < f,

в — сжатие (θ = β < 0), f(x)> f, f(x) ≥ f; г — сжатие (θ = β > 0) f< f(x) < f.

Нетрудно заметить, что хотя формула для определения вершин регулярного симплекса оказывается весьма удобной при построении исходного образца, однако веских оснований для сохранения свойства регулярности симплекса в процессе поиска нет. Следовательно, при отражении симплекса существует возможность как его растяжения, так и сжатия 1). При расчетах по методу Нелдера и Мида используются вершины симплекса x(h) (которой соответствует наибольшее значение целевой функции f(h) ), х(g) (которой соответствует следующее по величине значение целевой функции f(g) х(l) (которой соответствует наименьшее значение целевой функции f(l) ) - Напомним, что отражение вершины симплекса осуществляется по прямой

х = x+ λ(хcx).

или х = x+ (1 + θ)(хcx). (3.23)

При θ = 1 имеет место так называемое нормальное отражение симп­лекса, поскольку точка хнов располагается на расстоянии || хс x(j) || от точки хс. Если 1 ≤ θ < 1, то наблюдается сжатое отражение, или сжатие симплекса, тогда как выбор θ >1 обеспечивает растянутое отражение, или растяжение симплекса. На рис. 3.6 приведены возможные варианты отражения. Три значения параметра θ, используемые при нормальном отражении, сжатии и растяжении, обозначаются через α, β и γ соответственно. Реализация метода начинается с построения исходного симплекса и определения точек x(h), х(g), х(l), хc. После нормального отражения осуществляется проверка значений целевой функции по критерию окончания поиска в точках отраженного симплекса. Если поиск не закончен, то с помощью тестов, приведенных на рис. 3.6, выбирается одна из операций —нормальное отражение, растяжение или сжатие. Итерации продолжаются, пока изменения значений целевой функции в вершинах симплекса не станут незначительными. В качестве удовлетворительных значений параметров α, β и γ Нелдер и Мид рекомендуют использовать α = 1, β = 0,5 и γ = 2.

Результаты отдельных численных экспериментов показывают, что метод Нелдера — Мида обладает достаточной эффективностью и высокой надежностью в условиях наличия случайных возмущений или ошибок при определении значений целевой функции. В 1969 г. Бокс и Дрейпер [7] утверждали, что этот метод является «наиболее эффективным из всех известных методов последовательной оптимизации». В 1972 г. Паркинсон и Хатчинсон [8] исследовали влияние выбора параметров α, β и γ и способа построения исходного симплекса на эффективность поиска. Они установили, что ориентация исходного симплекса в отличие от его формы является существенным фактором, влияющим на процедуру поиска, и предложили использовать значения параметров (α, β, γ) = (2, 0,25, 2,5). Такой выбор параметров позволил обеспечить хорошую работу алгоритма при повторении последовательных растяжений симплекса.

1) По этой причине процедуру Нелдера и Мида иногда называют методом поиска по деформируемому многограннику. — Прим.. перев.