
2019
.pdf
Эпюра моментов в предельном состоянии приведена рис. 2.16.
Рис. 2.16. Эпюра моментов оптимальной рамы в предельном равновесии
2.13. Понятие «нелинейное программирование»
Если в задаче оптимизации встречаются неизвестные в виде взаимного произведения, в степени, в качестве аргумента тригонометрических функций, то такая задача называется задачей нелинейного программирования.
В настоящее время существует большое количество методов решения нелинейных оптимизационных задач (методы линейной аппроксимации, методы квадратичной аппроксимации и т.д.). Сложилась даже так называемая «история сравнительных экспериментов» алгоритмов условной нелинейной оптимизации как между их классами, так и внутри классов.
Все методы тем или иным способом строят последовательность точек решений X1, X2 , ..., которая в конце концов должна привести к экстре-
мальному значению целевой функции при удовлетворении ограничений. Рассмотрим один из методов решения нелинейной оптимизационной
задачи, основанный на использовании линейной аппроксимации для определения направления в каждой точке.
2.14. Метод допустимых направлений Зойтендейка
Рассмотрим задачу оптимизаций с нелинейными ограничениями в виде неравенств:
минимизировать
f (x) |
(2.103) |
81

при ограничениях |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
qi (x) 0, |
|
j 1,2...,, |
(2.104) |
||||||||||
где функции |
f (x) и qi (x) могут быть нелинейными. Предположим, что |
|||||||||||||||
|
|
0 X1,0 , X2,0 ,..., Xn,0 |
|
|
|
|
|
|
|
|
|
|
||||
вектор X |
является допустимым решением и не лежит |
|||||||||||||||
на границе. |
Лучшее решение |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
X |
|
при f (X |
1) q(X1) |
будем получать по |
|||||||||||
функции |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
X |
0 d 0 , |
|||||||||||
|
|
|
|
1 X |
(2.105) |
где d 0 – исходный вектор допустимого направления, подсчитываемый как вектор-градиент целевой функции f (x) в точке X0 ;
λ– длина шага, которая должна быть выбрана из множества решений уравнений
qj X |
0 d0 0 |
(2.106) |
как наименьшее из λj.
Первый шаг (2.105) выполняется до получения граничного решения, т.е. до выхода на граничную гиперповерхность. После получения граничного решения необходимо изменить направление поиска. Согласно методу
Зойтендейка нужно ввести вектор d , который обеспечивает движение
внутри границ допустимой области, в то время как новое решение X k 1 улучшает значение целевой функции. Очередное приближение определяется поиском по λ вдоль прямой
|
k 1 |
|
k |
|
k |
(2.107) |
X |
X |
d |
до тех пор, пока или f(x) не достигает оптимума, или какое-либо ограничение не окажется нарушенным.
Вектор d для граничной точки X определяется так, чтобы
f ( |
|
k ) |
|
или q ( |
|
k ) |
|
, |
(2.108) |
X |
d |
X |
d |
||||||
|
|
|
|
i |
|
где θ – по возможности большой положительный скалярный параметр. В вычислительных процедурах искомые d удобно нормировать, вводя
1 di 1 |
(i 1,2..., N). |
(2.109) |
82

Таким образом, вектор нового направления d может определяться из решения задачи линейного программирования:
максимизировать θ при ограничениях
f ( |
|
|
k ) |
|
0 |
|
||
X |
d |
|
||||||
|
|
|
|
|
|
|
|
|
q j ( |
|
k ) 0 . |
(2.110) |
|||||
X |
||||||||
1 di 1 |
|
|
||||||
|
|
|||||||
|
|
|
|
|
|
|
|
|
После определения d обычным путем определяются длина шага λ (так же, как на первом шаге) и новая точка X k 1 по уравнению (2.107).
2.15.Алгоритм метода допустимых направлений
1.а) Пусть X0 – допустимая точка.
б) Подсчитываем вектор-градиент целевой функции [12]f X0 , d0 f X .
в) Решаем равенства qj X0 d0 0 относительно λj. Находим мень-
шее из λj.
г) Находим новую допустимую точку по формуле
X (1) X0 d 0 .
2. а) Определяем множество индексов J(k) точек X k в пределах заданной погрешности ε на основе проверки
|
|
|
|
q j X |
k |
|
|
|
||||
для некоторого малого ε > 0. |
|
|
|
|||||||||
б) Решаем задачу линейного программирования: |
|
|||||||||||
максимизировать θ |
|
|
|
|||||||||
при ограничении |
|
|
|
|||||||||
f ( |
|
|
k ) |
|
|
0 |
|
|
|
|||
X |
d |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
q( |
|
k ) |
|
0, |
j J (k ) . |
(2.111) |
||||||
X |
d |
|||||||||||
1 di 1, (i 1,2,..., N) |
|
|
||||||||||
|
|
Получаем θk и d k .
83

в) Если 0 , то решение заканчиваем, так как дальнейшие улучшения невозможны. Если θk > 0, то решаем равенства
qj ( |
|
|
|
|
|
X |
k e d |
k ) 0, |
( j 1, , J k ) |
и выбираем наименьшее положительное ej .
г) Находим k из условия минимума функции f (X k d ) на отрез-
ке0 e
д) Ищем новую точку
X k 1 X k d k .
е) Переходим к началу 2.
Итерационный процесс заканчивается, если * , где * – некоторая наперед заданная величина.
2.16. Пример применения метода Зойтендейка
Требуется минимизировать
f (x) (X1 3)2 (X2 3)2
при ограничениях
|
q (X ) 2X |
1 |
X |
2 1 0, |
|||
|
1 |
|
2 |
|
|
||
|
q (X ) 9 0,8X 2 |
2X |
2 |
0. |
|||
|
2 |
|
|
1 |
|
|
|
Пусть 0,1; |
* 0,05. |
|
|
|
|
|
|
Градиенты функций задачи имеют вид: |
|
|
|||||
|
f 2(X1 3), |
2(X2 3) , |
|||||
|
q1 2, |
|
2X2 , |
|
|
||
|
q2 1,6X1, |
2 . |
|||||
Предположим, что дано допустимое решение X(1)=(1,1). Эта точка на- |
|||||||
ходится на гиперповерхности q1(X ) |
(см. рис. 2.17), и поэтому можно сразу |
перейти к пункту 2 алгоритма. В этой точке q1(X 1) 0; q2 (X 1) 6,2 0,1. 84
Таким образом, J (1) 1 , и первая решаемая задача принимает вид:
найти min θ
при ограничениях
4d1 4d2 0,2d1 2d2 0,1 d1 1, 1 d2 1.
Решением этой задачи линейного программирования является
d (1) (1; 0) |
и (1) 2 . |
Теперь на луче
|
|
1 |
1 |
1 |
|
|
||
|
|
|||||||
|
|
|
|
|
|
|
, |
|
X |
|
|
|
1 |
|
|||
|
|
1 |
0 |
|
|
|
где 0 , требуется найти точку, в которой он пересекает области допустимых значений.
Рассматриваем равенства
q1( ) 2(1 ) 1 1 0, q2 ( ) 9 0,8(1 )2 2 0.
Из первого – 0 ; из второго – 1,958. Наименьшее положительное min 1,958.
И, наконец, исследуется на экстремум функция
|
|
|
|
|
|
|
|
|
f ( ) |
|
(1 ) 3 2 (1 3)2 ( 2)2 4 |
||||||
на отрезке 0 1,958. |
|
|
|
|
|
|
|
|
Здесь минимум достигается |
на |
верхней |
границе λ, то есть при |
|||||
1,958. |
|
|
|
|
|
|
|
|
Таким образом, итерация заканчивается в точке |
||||||||
|
|
(2) 1 1,958 |
|
2,958 . |
||||
X |
||||||||
|
|
|
|
1 |
|
|
1 |
|
|
|
|
|
|
|
|
Вторая итерация.
85

В точке X (2) вычисляем значения ограничений
q1(X (2) ) 1,916; q2 (X (2) ) 0.
Связующим здесь является второе ограничение J (2) 2 .
Переходом к решению подзадачи линейного программирования, которая построена с помощью градиентаq2 (X ) :
найти min θ
при ограничениях
0,084d1 4d2 0,
4,733d1 2d2 0, 1 d1 1; 1 d2 1.
В результате получаем:
|
d(2) |
( 1; 0,8028) |
и |
(2) |
3,127 . |
|||||
На луче |
|
|
|
|
|
|
|
|
||
|
|
|
|
2,958 |
|
1 |
|
|
|
|
X |
|
1 |
|
|
|
|
, |
0. |
||
|
|
|
|
|
0,8028 |
|
|
С помощью q ( ) и q ( ) находим e 0,9311. Минимальное значение |
||
1 |
2 |
|
f (x) на отрезке 0 e |
достигается в крайней точке 0,9311. |
|
Следовательно, |
|
|
X (3) 2,027 .
1,748
Продолжаем итерационный процесс. Решение задачи
X * 2,5 .
2,0
Описанные выше итерации показаны на рис. 2.17.
86

Рис. 2.17. Схема работы алгоритма метода Зойтендейка
Весьма показательна работа алгоритма, приведенная на рис. 2.18, для задачи с линейными ограничениями:
min f0 x12 3x22 x1 2x2
при
x1 4x2 0, 2x1 x2 1 0
с началом из точки x0 (2;2) .
Рис. 2.18. Схема работы алгоритма при линейных ограничениях
87

2.17. Пример оптимизации фермы из условий прочности и жесткости
Расчетная схема фермы приведена на рис. 2.19.
Рис. 2.19. Оптимизация фермы из условий жесткости и прочности
Стержни фермывыполнены изстали с модулемупругости Е = 210 кН/мм2. Пусть допускаемое напряжение на растяжение σр = 0,15 кН/мм2, на сжатие (с учетом возможной потери устойчивости) σсж = 0,1 кН/мм2.
Примем, что вертикальное перемещение узла А не должно превышать 3 мм, а узла В – 4 мм.
Таким образом, требуется определить площади сечений стержней фермы минимального веса из условий
i , |
(2.112) |
где – допустимое напряжение на сжатие или растяжение,
A |
A , |
(2.113) |
|
B B . |
|||
|
|||
88 |
|
|

Усилие в узлах фермы определим из равновесия узлов А и В:
P2 0,5S1 0 |
|
(2.114) |
|||
S |
2 |
S |
0,866 |
0 |
|
|
1 |
|
|
|
S3 |
0,866 P1 0 |
|
(2.115) |
S4 |
|
|
|
S3 0,5 S2 0 |
|
S1 2P2 4 кН;
S2 3,464 кН;
S3 1,155 кН;
S4 2,887 кН.
При этом от единичных безразмерных вертикальных сил, приложенных:
1) в узле В
S1 2;
S2 1,732;
S3 0;
S4 1,732;
2) в узле А
S1 0;
S2 0;
S3 1,155;
S4 0,577.
Перемещение узла определяется для ферм по формуле
|
S |
|
|
|
|
|
|
S |
i |
|
|||
|
ip |
li . |
||||
|
EA |
|
||||
|
|
i |
|
|
|
Следовательно, вертикальное перемещение узла B будет равно:
B |
4 2 3464 3,464 1,732 2000 2,887 1,732 1000 |
|||||
|
E A1 |
|
E A2 |
|
E A4 |
|
|
|
27712 |
12000 |
|
5000 . |
|
|
|
E A |
|
E A |
|
E A |
|
|
1 |
|
2 |
|
4 |
|
|
|
|
89 |
|
|
(2.116)
(2.117)
Вертикальное перемещение узла А |
|
|
|
|
||||||
A 1,155 1,155 2000 1,732 0,577 1000 |
2668 |
|
1000 |
|||||||
E A3 |
|
|
|
|
E A4 |
E A3 |
|
E A4 |
||
Условия прочности стержней: |
|
|
|
|
|
|
|
|
|
|
|
A |
|
Si |
; |
|
|
|
|||
|
|
i |
|
|
|
|||||
|
i |
|
|
|
|
|
|
|
|
|
A |
4 |
|
|
40 мм2 ; |
|
|
|
|||
|
|
|
|
|
|
|||||
1 |
0,1 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|||
A 3,464 23 мм2 ; |
|
|
|
|||||||
2 |
0,15 |
|
|
|
|
|||||
|
|
|
|
|
||||||
A 1,155 11,55 мм2 ; |
|
|
||||||||
3 |
0,1 |
|
|
|
|
|||||
|
|
|
|
|
||||||
A 2,887 19,25 мм2 . |
|
|
||||||||
4 |
0,15 |
|
|
|
|
|||||
|
|
|
|
|
||||||
Объем одного стержня |
|
|
|
|
|
|
|
|
|
|
|
Vi |
Ai li . |
|
|
|
|||||
Следовательно, целевая функция задачи: |
|
|
|
|||||||
f (x) V Vi 3464A1 |
2000A2 2000A3 1000A4 . |
(2.118)
(2.119)
(2.120)
(2.121)
(2.122)
(2.123)
(2.124)
(2.125)
Таким образом, задача оптимизации веса фермы примет следующий математический вид:
min f (x) 3464X1 2000X2 2000X3 |
1000X4 |
|
|
||||||||||
при |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27712 |
|
|
12000 |
|
5000 |
|
|
|
|
||||
|
|
E |
B 840 |
|
|
|
|||||||
|
X1 |
|
X2 |
X3 |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||||
2668 |
|
1000 |
E |
A 210 3 630. |
|
|
(2.126) |
||||||
X3 |
|
X4 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|||
X1 40 |
|
|
|
|
|
|
|
|
|
||||
X2 23 |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|||||
X3 11,55 |
|
|
|
|
|
|
|
|
|||||
X 19,25 |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
||||||
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
|
|
|
|