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

Оптимальное проектирование конструкций

..pdf
Скачиваний:
51
Добавлен:
15.11.2022
Размер:
2.43 Mб
Скачать

Здесь

β – коэффициент сжатия ( 0 < β

< 1). Если в результате

fсж < fнов и

fсж < fh , то xнов заменяем на xсж

и переходим к следующей

итерации. В противном случае делаем еще раз сжатие.

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

Из изложенного ясно, что эффективность алгоритма зависит от параметров настройки α, β, γ. В литературе предложены значения этих коэффициентов, равные 2; 0,5; 2,5 или 1; 0,5; 2.

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

Другими известными методами поиска являются поиск по симплексу или S2-метод, метод Хука–Дживса и другие. В процессе поиска по S2-мето- ду последовательно оперируют регулярными симплексами в пространстве управляемых переменных, а при реализации метода Хука–Дживса используют фиксированное множество направлений (координатных), выбираемых рекурсивным способом.

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

Метод сопряженных направлений. По определению векторы р1, р2,

…, рn называются сопряженными относительно симметричной квадратной матрицы А, если они линейно независимы и

(рi)т Арj = 0 для всех i j.

При решении задачи о минимуме функции в качестве матрицы А используется матрица Гессе.

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

51

х(1)

d

 

 

 

 

у(2)

х(2)

 

 

 

 

 

 

 

 

 

 

Рис. 3.3

х2 х1 минимум функции

мацией, то указанный метод применя- у(1) ется и для неквадратичных функций.

Однако если матрица Гессе неизвестна, поскольку речь идет о построении метода решения задач, использующих только значения функций, то систему сопряженных направлений можно найти на основе следующего свойства квадратичных функций: если при на-

чальной точке поиска х1 в направлении d минимум функции f (x) находится в некоторой точке у1, а при движении в том же направлении d из точки

f (x) находится в некоторой точке у2, то направ-

ление (у2 у1) будет сопряженным к d (рис. 3.3).

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

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

Пример 3.2. Найти минимум функции

f(x) = 2x13 + 4x1x23 10x1x2 x22 .

Ре ш е н и е . Начнем движение из точки х0 = [5,2]т ( f (x0 ) = 314 )

вдоль направления р0 = [0,1]т, тогда

5

0

 

5

x1 =

+ α 1

=

,

2

1

2

+ α 1

т.е.

 

 

 

f (x1) = 2 53 + 20(2 + α 1)3 50(2 + α 1) + (2 + α 1)2 .

Определив α 1 из условия минимума функции, получим α 1 = −0,81,

х1 = [5; 1,19]т, f (x1) = 250. Следующий

шаг делаем в направлении

52

5,0

4,0

3,0

х2

2,0

 

 

 

 

 

 

 

х(0)

 

 

 

 

 

 

 

 

 

 

 

х(2)

 

 

 

 

 

 

 

 

 

х(1)

 

 

 

 

 

х(3)

1,0

х

(4)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,0

 

0,0

1,0

2,0

3,0

4,0

5,0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

х1

 

 

 

 

 

 

 

 

Рис. 3.4

 

 

 

р1 = [1,0]т и,

повторяя выкладки, получим α2

= –3,26, х2 =

[1,74; 1,19]т,

f (x2) = 1,10. На рис. 3.4 показаны направления поиска, полученные в процессе реализации метода, и линии уровня функции: А – 3,00; В – 1,00;

С– 1,00; D – 3,00.

3.2.2.Методы оптимизации, использующие производные

Предположим, что f (x), f (x) и 2 f (x) существуют и непрерывны.

Тогда, как известно, в точке х , в которой

f (x ) ≠ 0 , направление наибы-

~

~

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

53

итерационного метода минимизации, известного под названием градиент-

ного метода.

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

xk +1 = xk − α k f (xk ), k =1, ..., n,

где αk – длина шага, α k = сonst > 0.

Если f (xk ) 0 , то

можно

подобрать такое α k , чтобы

f (xk +1) < f (xk ) . Значение α k

вычисляется путем решения задачи мини-

мизации f (xk +1) вдоль направления

f (xk ) с помощью того или иного

метода одномерного поиска.

Рассматриваемый алгоритм носит название метода скорейшего спуска (иногда его называют методом Коши). В простейшем случае скорейшего спуска полагают α k = 1. Метод позволяет существенно уменьшить зна-

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

Эффективность метода во многом зависит от величины α k , которая может быть фиксированной или переменной, но она должна тщательно контролироваться во избежание как неожиданного роста f (xk ) , так и

чрезмерного числа шагов, необходимого для достижения решения. Первое произойдет, если α k слишком велико, а второе, если α k очень мало или

настолько велико, что приводит к колебаниям около точки минимума. На рис. 3.5 представлена возможная зигзагообразная траектория оптимизации при использовании метода наискорейшего спуска.

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

54

ентным методом, будут поочередно находиться то на одном, то на другом «склоне оврага». Для решения подобного типа задач используются специальные методы.

Рис. 3.5

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

~

тx +

1

 

т 2 f (xk )x.

f (x, xk ) = f (xk ) + f (xk )

 

x

2

 

 

 

 

Здесь f (x, xk ) – аппроксимирующая функция переменной х, построенная

в точке xk . На основе квадратичной аппроксимации сформируем последовательность итераций таким образом, чтобы во вновь получаемой

точке xk +1 градиент аппроксимирующей функции обратился в нуль. Полу-

чим

f (x, xk ) = f (xk ) + 2 f (xk )∆ x = 0 ,

откуда

x = −[ 2 f (xk )]1 f (xk ).

55

Выведенное правило получения приращения и составляет суть метода Ньютона:

xk +1 = xk [ 2 f (xk )]1 f (xk ).

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

Метод обладает высокой скоростью сходимости. Для квадратичной функции достаточно всего одного шага. Эффективность метода определяется свойствами матрицы Гессе. Если она определенно положительная, то направление, определяемое методом Ньютона, будет направлением спуска, если определенно отрицательна, то направлением подъема, если неопределена, то однозначный вывод о направлении сделать нельзя. К числу существенных недостатков метода Ньютона относится высокая трудоемкость, обусловленная необходимостью вычисления и обращения матрицы Гессе на каждом шаге итерации. Кроме того, эффективность алгоритма зависит от выбора начальной точки. Существуют модификации метода Ньютона (с регулировкой шага), которые позволяют уменьшить зависимость решения от начальной точки. Однако более перспективен другой подход, основанный на аппроксимации обратной матрицы Гессе градиентами функции в двух последовательных итерациях.

Квазиньютоновские методы. Залогом эффективности методов ньютоновского типа является учет информации о кривизне минимизируемой функции, содержащейся в матрице Гессе и позволяющей строить локально точные квадратичные модели f (x) . Квазиньютоновские методы также

ориентированы на квадратичные модели, но данные относительно кривизны f (x) накапливаются в них на основе наблюдения за изменением гради-

ента f (x) во время итераций спуска. Последнее принципиально отличает эти методы от ньютоновских, в которых сведения о свойствах f (x) всегда

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

Запишем разложение градиента функции в окрестности некоторой точки xk :

f (xk + ∆ xk ) = f (xk ) + 2 f (xk )xk .

Если xk = xk +1 xk , yk = f (xk +1) f (xk ) , то, согласно разложению,

56

xk = [ 2 f (xk )]1yk .

Положим

xk = H k +1yk ,

тогда H k +1 в некотором смысле будет играть роль обратной матрицы Гессе. Условие

xk = [ 2 f (xk )] 1yk = H k +1yk

называется квазиньютоновским.

Будем определять матрицу H k +1 согласно формуле

H k +1 = Hk + ∆ Hk xk = β (H k + ∆ H k )

или

β1 xk H k yk = ∆ H k yk .

Последнюю можно рассматривать как уравнение относительно

H k .

После подстановки решение принимает вид

 

1

 

xk z т

 

H

k

yk z

т

H k =

 

 

1

 

 

2

,

β z тyk

z тНk

 

 

 

1

 

 

2

 

 

где z1, z2 – произвольные векторы. В зависимости от того, каков вид этих векторов, будем иметь тот или иной метод. Например, если принять

z = ∆ xk

,

z

2

= H

k

yk

,

1

 

 

 

 

 

то получим известный метод Давидона–Флетчера–Пауэлла

 

xk

[xk

]т

 

H

k

yk

[yk

]т

H

т

H k =

 

 

 

 

 

 

 

 

k

.

[xk ]тyk

[yk ]т H kтyk

 

 

 

 

 

Эта формула сохраняет свойство положительной определенности и симметрии, т.е. если H0 – симметричная и положительно-определенная мат-

рица, то и все H k +1 обладают этими свойствами, поэтому обычно полагают начальную матрицу H0 = I (единичной).

Квазиньютоновские методы называют еще методами переменной метрики. Они являются обобщением градиентного метода для случая пространства с переменной метрики. Метод Давидона–Флетчера–Пауэлла –

57

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

Метод сопряженных градиентов. Существуют различные варианты этого метода, мы рассмотрим один из них, предложенный Флетчером–

Ривсом. Для выбора направлений поиска pk используется линейная ком-

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

Итак, пусть начальным направлением поиска будет p0 = − f (x0 ) ,

тогда

 

x1 = x0 + α 0 p0.

(3.2)

и направление

 

p1 = − f (x1) + λ 1 p0 ,

 

где λ 1 – коэффициент, который выбирается так, чтобы сделать

p0 и p1 со-

пряженными по отношению к матрице Гессе,

 

[ p0 ]тGp1 = 0.

(3.3)

Преобразуем это выражение. Использовав разложение

градиента

f (x1) в окрестности точки x0 в ряд Тейлора и соотношение (3.2), получим

p0 =

x1 x0

=

[ f (x1) f (x0 )] т

G1 .

 

 

 

 

α 0

α

0

 

Если f (x) – квадратичная функция, то G = G т и согласно (3.2) бу-

дем иметь

 

 

 

0 ) т[f (x1) − λ f (x0 )]= 0.

 

f (x1) f (x

 

 

α 0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда

λ 1

=

[ f (x1)] т

f (x1)

,

 

 

 

[ f (x0 )] т

f (x0 )

58

при этом учтено условие ортогональности двух последовательных гради-

ентов [ f (x1)]т f (x0 ) = 0 .

Направление поиска p2 представляется в виде линейной комбинации

f (x2 ) ,

p1 и p0

причем так, чтобы оно было сопряжено с p1 . Проделы-

вая выкладки [22], получим общее выражение для λ k :

 

 

λ k =

 

[ f (xk )]т f (xk )

 

 

 

 

.

 

 

 

 

 

 

[

f (xk 1)]т f (xk 1)

Все

весовые

множители, предшествующие λ k , оказываются при

этом равными нулю.

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

3.2.3. Методы конечно-разностных аппроксимаций

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

Например, чаще всего значение первой производной определяют по правой конечно-разностной формуле:

df f (x + h) f (x) . dx h

Однако при этом могут появиться ошибки трех типов:

1) ошибка отбрасывания – формула правосторонней разности появляется из тейлоровского разложения функции

f (x + h) = f (x) + f (x)h +

1

f ′′(x)h2 + ......

 

2

 

путем отбрасывания членов второго порядка и выше (ошибка h2 f ′′(x) ); 2

2) ошибка условий – при использовании конечно-разностной формулы функция на машине вычисляется с ошибкой, величина которой опреде-

59

ляется возможностями машины (при вычислении функции в интервале

[x, x + h] ошибка составляет

2

ε A , где ε A – верхняя граница погрешности);

h

 

 

3) ошибка округления, – возникающая при машинном вычитании и делении в конечно-разностной формуле. Эта ошибка пренебрежимо мала по сравнению с ошибкой отбрасывания и ошибкой условий.

Поэтому при использовании конечно-разностных аналогов наиболее сложным вопросом является выбор конечно-разностного интервала h из соображений минимума вычисляемой оценки суммарной ошибки. Так как ошибки заранее неизвестны, то существует специальный алгоритм выбора «наилучшего» интервала, основанный на аналитических оценках погрешности вычислений [12].

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

Имея разностную аппроксимацию первых производных, можно переделать любой из рассмотренных алгоритмов минимизации, заменив вычисление градиента конечно-разностными оценками. Лучше всего для этой цели подходят квазиньютоновские методы. Однако наивно думать, что хороший алгоритм можно получить простой комбинацией квазиньютоновского метода с формулами аппроксимации градиента. Ошибки в вычислении градиента могут существенно влиять на ход минимизации, поэтому необходимо предусмотреть смену формул конечно-разностной аппроксимации и оценку интервала. Кроме того, численная оценка градиента требует дополнительных вычислений функции, поэтому нужно позаботиться о сокращении числа вычислений функции в алгоритме минимизации (выбор длины шага, повышение точности одномерного поиска и др.).

Однако в целом построение алгоритмов минимизации на основе квазиньютоновских методов с использованием конечно-разностных аппроксимаций является эффективным.

3.3. Выбор метода безусловной минимизации

Схема выбора, например, программы безусловной минимизации из типовой библиотеки математического обеспечения [12] приведена на рис. 3.6. Принятые на рисунке обозначения:

МОМБП – метод одномерной минимизации без вычисления производных;

60