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

книги / Оптимальное проектирование конструкций.-1

.pdf
Скачиваний:
0
Добавлен:
20.11.2023
Размер:
2.23 Mб
Скачать

2.1.1. Постановка задачи оптимизации

Постановка простейшей задачи оптимизации естественна. Задано множество S и функция y = f (x) , определенная на S. Требуется найти точ-

ки минимума или максимума f (x) на S. Необходимо подчеркнуть, что само понятие минимума неоднозначно и требует уточнения.

Точка х* S называется:

1) точкой глобального минимума или глобальным решением задачи, если f (x* ) f (x) при любом x S;

2) точкой локального минимума или локальным (относительным) минимумом, если существует такое ε > 0 , что для любого х, удовлетво-

ряющего условию х х* < ε , выполняется неравенство f (x* ) f (x) .

Замечания:

а) аналогичные определения глобального максимума и локального максимума можно получить путем замены знака неравенства на противоположный;

б) если функция обладает свойством унимодальности, то локальный минимум совпадает с глобальным;

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

(рис. 2.4).

f (х)

х1 х2 х3 х4

х5

Рис. 2.4

 

На рис. 2.4 точка х1 – точка глобального максимума, х2 – точка локального минимума, х3 – точка локального максимума, х4 – точка глобаль-

ного минимума, а точку х5 можно рассматривать и как точку локального минимума, и как точку локального максимума.

31

2.1.2. Критерии оптимальности

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

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

Необходимыми условиями того, что х* является точкой локального минимума (максимума) дважды дифференцируемой функции f (x), являются

df

 

 

 

= 0 и

d 2 f

 

> 0(< 0) .

 

 

dx

 

x = x*

dx2

 

 

 

x = x*

 

 

 

 

 

 

 

 

 

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

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

2.2. Методы сокращения интервала в задачах одномерной минимизации

Пусть f (x) – функция, определенная на отрезке [a, b]. Напомним, что если функция f (x) унимодальна, то существует единственная точка х*, в которой f (x) принимает экстремальное (минимальное) значение. Унимодальная функция необязательно должна быть гладкой или даже непрерывной. Из определения унимодальности следует, что если х1 < х2 < х*, то

f (х1) > f (х2). Аналогично, если х* < х1 < х2, то f (х1) < f (х2). Задача состоит в построении такой последовательности {хk}, чтобы при некотором i ми-

32

нимальное значение функции достигалось на интервале хi–1 < х* < хi. Такой интервал называется интервалом неопределенности.

Алгоритм выбора абсцисс {хk} называется стратегией поиска. Однако прежде чем обратиться к той или иной процедуре поиска минимума, необходимо найти отрезок [a, b], содержащий внутри себя точку минимума. Поиск граничных точек отрезка проводится с помощью эвристических

методов. В соответствии с одним

из них, предложенным Свенном,

(k + 1) пробная точка определяется по рекуррентной формуле

хk +1 = хk + 2k ∆ ,

k = 0, 1, …, n,

где х0 – произвольно выбранная начальная точка; ∆ – подбираемая некоторым образом величина шага. Знак ∆ определяют путем сравнения выраже-

ний f (х0 – |∆|), f (х0 + |∆|), f (х0). Если

f (х0 – |∆|) > f (х0) > f (х0 + |∆|),

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

f (х0 – |∆|) > f (х0) < f (х0 + |∆|), то точка минимума лежит между (х0 – |∆|) и (х0 + |∆|), и поиск граничных точек завершен. Если на первом шаге граничные точки не определены, то, согласно рекуррентной формуле, с учетом

выбранного знака ∆ находят такое хk, для которого будет справедливо со-

отношение f (хk–1) > f (хk) < f (хk+1) . Точки хk–1, хk+1 и будут граничными. После того как установлена граница интервала, содержащего точку

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

жения пробных точек х1 и х2 внутри интервала поиска. Известно несколько методов сокращения интервала, но рассмотрим наиболее популярные.

2.2.1. Метод деления отрезка пополам

Метод позволяет исключать в точности половину отрезка [a, b] на каждой итерации. Иногда этот метод называют трехточечным поиском на равных интервалах, поскольку его реализация основана на выборе трех пробных точек, равномерно распределенных в интервале поиска.

Согласно алгоритму поиска находим три точки: среднюю точку от-

резка xm = a + b и средние точки на двух получившихся отрезках

2

33

x =

a + xm

и x

2

=

xm + b

. Вычисляем значение функции в этих точках и

 

 

1

2

 

2

 

 

 

 

 

проводим сравнение найденных значений функций: если f (х1) < f (хm), то исключаем интервал (хm, b); если f (х1) > f (хm), то сравниваем f (х2) и f (хm); если f (х2) < f (хm), то исключаем интервал (a, хm);

если f (х2) > f (хm), то исключаем интервалы (a, х1) и (х2, b) . Средняя точка последовательно получаемых интервалов всегда сов-

падает с одной из пробных точек х1, х2 или хm, найденных на предыдущей операции. Следовательно, на каждой итерации требуется не более двух вычислений функции.

Если проведено n вычислений значения функции, то длина полученного интервала составляет (1/2)n величины исходного интервала. Однако на практике нередко встречаются функции, нахождение значений которых в каждой точке связано с большим объемом вычислений (например, когда критерий качества – одна из характеристик напряженно-деформирован- ного состояния). В таких ситуациях возможно даже, что число итераций заранее жестко задано и превышение его недопустимо. Поэтому часто используют другой известный метод – метод золотого сечения.

2.2.2. Метод «золотого сечения»

Согласно алгоритму поиска начальный отрезок делим точками х1 и

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

резка [a, b] производят две симметрично расположенные точки: х1 = a +

+ (1 – τ )(b a), х2 = a + τ (b a), где τ = 1 ± 5 = 0,61803... Точка х1 обра- 2

зует «золотое сечение» отрезка [a, х2] , а точка х2 – золотое сечение отрезка

[х1, b].

Вычисляя значение функции в золотых сечениях, сравниваем между собой f (х1) и f (х2). Сравнение этих значений позволяет отбросить либо ин-

тервал [a, х1], либо [х2, b]. На оставшемся интервале уже есть одна точка, производящая его золотое сечение, и задача заключается в построении второй точки. После этого процесс повторяется. Таким образом, на каждом шаге, начиная со второго, требуется лишь одно вычисление функции, и интервал уменьшается на 0,382 его длины.

34

В любом из изложенных выше алгоритмов итерации продолжаются до тех пор, пока интервал неопределенности не станет меньше некоторого

заданного значения ε1, или изменение значений функций на двух после-

дующих итерациях не станет меньше заданного значения ε2, или число итераций не превысит заранее заданного значения.

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

2.2.3. Полиноминальная аппроксимация

Идея метода в том, что на каждом шаге функция f (x) заменяется не-

которой модельной функцией

~

~

которой легко най-

f (x) , точку минимума

x

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

~

(x) = ax2

+ bx + c = a

 

+ a (x x ) + a

 

(x x )(x x

 

),

f

0

2

2

 

 

 

1

1

1

 

где х1 и х2 – границы интервала.

В зависимости от того, какие методы применяются для нахождения коэффициентов полинома, различают методы, использующие производные, и методы, в которых производные вычислять не надо. Рассмотрим метод, не требующий знания производных. Итак, пусть исходная функция f (x), определенная на отрезке [a, b], заменяется функцией

~ = + − + − −

f (x) a0 a1(x x1) a2 (x x1)(x x2 ).

Выберем произвольным образом некоторую точку х3 внутри рассматриваемой области и подсчитаем значение функций f1 = f (х1), f2 = f (х2) и f3 = f (х3). Тогда

 

 

 

f2

f1

 

 

1

 

f3

f1

 

f2

 

 

 

= f1; a1

=

; a2

=

 

f1

a0

 

 

 

 

 

 

 

 

.

x2

x1

 

 

x1

 

 

 

 

 

 

 

x3 x2 x3

 

x2 x1

35

Приравнивая первую производную нулю, находим оптимальную координату модельной функции

~

=

x2 + x1

a1

.

x

 

 

2

2a2

 

 

 

 

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

личина ~ окажется приемлемой оценкой координаты точки истинного оп x -

тимума х*.

Изложенный алгоритм был усовершенствован Пауэллом [16], предложившим сужать интервал на каждом шаге оптимизации путем сопостав-

ления значений функций в точках ~ аналогично тому как это x1, x3 , x , x2 ,

делалось, например, в методе деления отрезка пополам.

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

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

2.3. Методы минимизации с использованием производных

Если функция f (x) – непрерывна, унимодальна в заданном интервале [a, b] и дифференцируема, то точкой оптимума является точка, в которой первая производная равна нулю,

f (x) = 0 ,

(2.1)

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

2.3.1.Метод Больцано или метод средней точки

Воснове метода лежит идея сокращения интервала (рис. 2.5). На каждом шаге итерации для нахождения корня уравнения (2.1) нужно, чтобы

36

значения f (a) и f (b) были разных знаков. Пусть, например, f (a) > 0 и

f (b) < 0. Рассмотрим среднюю точку

x

k

=

a + b

;

f ′ = f (x

k

).

 

 

 

 

2

 

k

 

 

 

 

 

 

 

 

 

 

 

Если,

как

на

рисунке,

f (xk ) < 0,

как и

f (b) ,

то отрезок

[xk , b] можно исключить.

f′ (x)

 

 

 

xk

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.5

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

2.3.2. Метод секущих (метод хорд)

Это также метод сокращения интервала и, как и в предыдущем методе, необходимо, чтобы значения производных на концах интервала были

разных знаков. Заменим исходную функцию f (x) прямой

~

(x) (рис. 2.6)

и

f

~

~

~

 

 

 

найдем то значение х , при котором

f

(x ) = 0.

 

 

 

Значение ~х легко определить аналитически,

~

=

bf (a) af (b)

x

 

 

.

f (b)

 

 

 

f (a)

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

исключаем отрезок ~

[x , b].

f ′ (x)

 

 

 

 

~

 

 

 

 

 

 

 

 

х

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.6

 

 

 

 

 

 

 

 

 

2.3.3. Метод Ньютона – Рафсона

В основе метода лежит идея замены функции f (x) квадратичным полиномом. Разложим исследуемую функцию в ряд Тейлора в окрестности

некоторой точки xk

[a, b] . Тогда

 

 

 

f (x)

~

(x)

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

1

f ′′(xk )(x xk )

2 .

f

 

2

 

 

 

 

 

 

37

Из необходимого условия экстремума

~

(x) = 0

получаем

f

x = xk

f (xk )

.

 

 

f ′′(xk )

 

 

 

 

 

 

 

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

xk +1 = xk

f (xk )

 

.

 

 

f ′′(xk )

Метод обладает высокой скоростью сходимости (для квадратичной функции решение получается за один шаг независимо от выбора начальной точки). К числу недостатков метода можно отнести зависимость решения от выбора начальной точки, ибо в некоторых случаях возможно, что алгоритм будет расходиться от истинной стационарной точки. Чтобы этого не произошло, необходимо, чтобы значения f (a) и f (b) были разных

знаков.

2.3.4. Сравнение методов

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

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

38

2.4. Примеры решения одномерных задач проектирования

Пример 2.1. Оптимизация сферического купола [13]. Для безмоментной сферической оболочки, нагруженной равномерным внешним давлением р, определить угол φ и радиус r, минимизирующие объем (вес) оболочки, удовлетворяющей условиям прочности

(рис. 2.7).

Р е ш е н и е . Объем материала обо-

лочки

V = 2π rhδ = 2πδ

l

(r r cos ϕ ) = 2π

sin ϕ

 

 

p

h

φ r

l

Рис. 2.7

l 2

1 cos ϕ

δ ,

sin 2 ϕ

 

 

где δ – толщина оболочки.

Усилия в безмоментной сферической оболочке определяются по формуле [18]

Nr = Nϕ = N = pr . 2

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

δ =

 

pl

,

2[σ

]sin ϕ

 

 

где [σ] – предельное значение напряжения. С учетом найденного значения δ

V =

π pl3

1 cos ϕ

.

[σ ]

 

sin3 ϕ

 

 

 

Минимизируя объем согласно необходимому условию оптимальности, получим

 

dV

=

π pl 3

 

2cos2 ϕ

3cos

+1

= 0,

 

dϕ

[σ

]

 

sin 4 ϕ

 

 

 

 

 

 

отсюда

 

 

 

 

 

 

 

 

cos ϕ =1/ 2;

sin ϕ

= l / r =

3 / 2;

2ϕ =120° ;

 

 

 

r =

 

2 l =1,156 l.

 

 

 

 

 

 

 

3

 

 

 

39

Пример 2.2. Оптимизация трехшарнирной арки [17]. Для трехшарнирной арки постоянного поперечного сечения, очерченной по параболе и нагруженной равномерно распределенной нагрузкой q (рис. 2.8), определить стрелу подъема f, при которой объем арки минимален при условии выполнения требования прочности.

у

H A

Q0

у

x

 

 

 

 

 

 

 

 

 

 

 

 

Р е ш е н и е . Выразим

 

 

 

 

 

 

 

q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

объем арки, как минимизи-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

руемую функцию ее

стрелы

 

 

 

 

 

 

 

 

 

подъема. Приняв, что пло-

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

щадь поперечного

сечения

 

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

H

S = const, представим объем в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

виде

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

 

 

 

L

 

 

 

 

 

 

 

 

 

 

 

 

V = SdL = SL,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

Рис. 2.8

 

где L – длина дуги,

 

l

L = 1 + ( y)2 dx .

0

 

С

учетом

того,

что

уравнение

 

оси

безмоментной арки

y =

4 f

x(x l) , длина дуги может быть выражена через стрелу подъема:

l 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

4 f

 

8 fx

2

1

 

l

16 f

2

+ l

2

+ 4 f

 

L =

dx =

+

 

 

 

1 +

l 2

 

16 f 2 + l 2

ln

 

 

 

 

.

 

 

0

l

 

 

 

2

 

16 f

16 f 2 + l 2 4 f

Площадь поперечного сечения определим из условия прочности

S = Nmax ,

[σ ]

где

Nmax

– максимальное

продольное усилие в арке

(у опор),

 

 

 

 

 

 

 

N

max

= H

2 + Q2

; Q0 – опорная реакция простой балки, Q

= ql / 2 ; Н

 

 

 

0

 

0

 

распор, H = ql 2 ; [σ] – допускаемое напряжение. 8 f

Таким образом, площадь поперечного сечения

S = ql

 

16 f 2 + l 2

8 f [σ ]

 

40