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

книги / Начала инженерного творчества

..pdf
Скачиваний:
2
Добавлен:
12.11.2023
Размер:
1.44 Mб
Скачать

Пример 7. Для сравнения рассмотрим решение предыдущего примера (пр. 6). Первый шаг делаем по методу наискорейшего спуска (табл. 8).

Таблица 8

Номер

x1

х2

dR/dx1

dR/dx2

|gradR|

R

шага

 

 

 

 

 

 

0

–0,500

–1,000

–2,2499

–8,0000

8,3104

7,3750

 

 

 

 

 

 

 

0

–0,275

–0,200

–2,2499

–8,0000

8,3104

1,6842

 

 

 

 

 

 

 

0

–0,050

0,600

–2,2499

–8,0000

8,3104

–1,5301

 

 

 

 

 

 

 

0

0,175

1,400

–2,2499

–8,0000

8,3104

–2,1996

 

 

 

 

 

 

 

Найдена наилучшая точка. Вычисляем производные в этой точке: dR/dx1 = –2,908, dR/dx2 = 1,600; вычисляем коэффициент α, учитывающий влияние градиента в предыдущей точке:

α = 3,31920 3,3192/8,31042 = 0,160. Делаем рабочий шаг в со-

ответствии с алгоритмом метода, получаем x1 = 0,502, x2 = = 1,368. Далее все повторяется аналогично. Ниже, в табл. 9, приведены текущие координаты поиска следующих шагов.

Таблица 9

Номер

x1

х2

dR/dx1

dR/dx2

|gradR|

R

α

шага

 

 

 

 

 

 

 

1

0,155

1,303

1,0026

1,2114

1,5725

–3,7407

0,160

2

1,085

0,989

0,5323

–0,0450

0,5342

–3,9774

0,224

3

1,020

0,979

0,1230

–0,0829

0,1484

–3,9978

0,115

4

1,004

0,988

0,0234

–0,0484

0,0537

–3,9996

0,077

5

0,996

1,000

–0,0240

–0,0010

0,0240

–4,0000

0,131

6

1,000

1,002

–0,0001

0,0076

0,0076

–4,0000

0,200

61

2.2.2.Многомерная безградиентная оптимизация

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

Все алгоритмы имеют итерационный характер и выражаются формулой

x j+1 = x j + f [R(x j )].

(2.16)

Основная особенность рассматриваемой группы методов –

отсутствие вычисления градиента критерия оптимальности.

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

Как и для градиентных методов, на рис. 7 приводятся лишь по одной из возможных траекторий поиска каждым из ниже рассматриваемых методов. Кроме того, также для всех

Рис. 7. Иллюстрация траекторий поиска минимума функции безградиентными детерминированными методами: 1 – оптимум; 2 – траектория метода параллельных касательных; 3 – траектория метода Гаусса – Зайделя; 4 – траектория метода Розенброка; 5 – траектория симплексного метода; 6 – начальные точки поиска

62

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

2.2.2.1. Метод Гаусса–Зайделя

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

В ряде случаев для таких критериев оптимальности, как R(x1 x2..., xi..., xn), которые можно представить в виде

R(x) = f (x1 )+ f (x2 )+ ... + f (xi )+ ...+ f (xn ),

(2.17)

удается получить решение всего за один цикл. В случае нелинейной взаимосвязи переменных (например, при наличии произведения переменных и т.п.) для получения решения придется делать много циклов.

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

Одна из возможных траекторий поиска минимума двумерной функции методом ГауссаЗайделя приведена на рис. 8. В качестве начальной изменяемой переменной в каждом цикле принята х2.

Условием окончания поиска является малость изменения критерия оптимальности за один цикл или невозможность улучшения критерия оптимальности ни по одной из переменных.

63

Рис. 8. Поиск минимума функции методом покоординатного спуска (сплошная жирная линия – траектория поиска из начальной точки Х0 = (1, 1); штриховая линия – из точки

Х0 = (1, 6)

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

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

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

Пример 8. Требуется найти минимум функции

R(x1, x2 )= x12 + 2x22 +1,2x1 sin(2x1x2 ).

64

1.Интервал поиска: х1нач = –2, х1кон = 2, х2нач = –2, х2кон = 2.

2.Начальная точка: х10 = 1,4962, х20 = –1.

3.Параметры поиска: шаг h = 0,1, погрешность = 0,01.

Результаты вычислений. Из начальной точки (1,4962,

–1,0000) с R = 3,9719 ищем минимум критерия оптимальности по переменной х1. Используем прием последовательного сканирования, т.е. «шагаем» до первого лучшего значения критерия, применяя алгоритм х1i+1 = х1i ± h. Нижний индекс номер переменной, верхний номер шага. Знак «+» или «–» выбирается в зависимости от направления изменения критерия: нужно взять такой знак, при котором критерий уменьшается. Наилучшей в этом направлении оказывается точка с координатами (0,6962, –1,0000) и R = 1,30374, полученная после семи шагов. Из этой точки ищем минимум критерия по переменной х2 тем же методом. Находим точку (0,6962, –0,3000) с R = = 0,3258 тоже после семи шагов. На этом заканчивается первый цикл поиска и начинается следующий, заключающийся опять в поиске minR по переменной х1, затем по х2. Далее, в табл. 10, приведены лишь координаты точек и значения критериев в концах циклов.

 

 

 

Таблица 10

 

 

 

 

Номер цикла

х1

х2

R

2

–0,0038

0,0000

0,0000

 

 

 

 

3

–0,0038

0,0000

0,0000

 

 

 

 

2.2.2.2. Симплексный метод

Симплексом в n-мерном пространстве называют фигуру, содержащую n + 1 вершину. На плоскости это треугольник, в трехмерном пространстве – тетраэдр и т.д. Если все вершины симплекса равно удалены друг от друга, то такой симплекс называется регулярным. В литературе можно встретить и другое название метода – метод деформируемого многогранника.

65

В организации алгоритма поиска используется важное свойство симплекса: против каждой вершины находится только одна грань. Суть метода заключается в следующем. В окрестности начальной точки Х0 строим симплекс, затем находится самая «плохая» его вершина (т.е. та, в которой наихудшее значение критерия оптимальности) и на противоположной грани строится новый симплекс, отличающийся от исходного только одной вершиной.

 

 

 

 

 

 

а

б

в

Рис. 9. Схема построения симплекса для двумерной задачи: а – начальный симплекс; б – отражение; в – новый симплекс

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

 

2

 

 

 

2

 

 

x j =

 

(x1 +x2

+...+xn+1 )1

+

 

x j ,

(2.18)

n

n

 

 

 

 

 

 

где х1, х2, ... – вектора вершины симплекса (координаты вершин), xj – вектор выбрасываемой вершины, xj – новая вершина в новом симплексе. В скалярном представлении для каждой координаты будет аналогичная формула.

После построения нового симплекса требуется лишь одно вычисление критерия оптимальности: только в новой вершине, так как в остальных углах они вычислены. Далее все повторя-

66

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

~ j

 

3

1

 

2

 

n+1

 

 

2

j

 

 

x

=

 

(x

+ x

 

+... + x

 

)1

+

 

x

 

.

(2.19)

2n

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

Формула растяжения имеет вид

хj

= γx j

+(1−γ)xa ,

(2.20)

где γ – коэффициент растяжения.

 

 

 

Формула сжатия имеет следующий вид:

 

~ j

x

j

+(1−β)x

a

,

(2.21)

x

 

 

67

где β коэффициент сжатия; ха вектор центра противолежа-

щей грани; хJ «отраженная» новая вершина; x j новая вершина.

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

xi = xic + 0,5(xi x1).

Более эффективной является модификация метода, в котором отражение при построении новой вершины осуществляется не относительно центра противолежащей грани, а относительно ее центра тяжести (при поиске mах R(x) или точки, симметричной центру тяжести на грани при поиске min R(x)). При этом под тяжестью вершин понимается значение критериев оптимальности в вершинах. В этом случае направление деформирования симплекса тяготеет в сторону вершин с лучшим значением критерия. Oбe модификации могут совмещаться.

Пример 9. Для сравнения рассмотрим решение примера предыдущего подраздела, только параметр h, характеризующий размер симплекса, примем равным 0,5.

В окрестности заданной начальной точки (1,4962, –1,0000), R = 3,9719 сформируем начальный симплекс, его координаты представлены в табл. 11.

 

 

 

Таблица 11

 

 

 

 

Номер вершины

х1

х2

R

1

1,7462

–0,8557

4,1938

2

1,2462

–0,8557

1,7519

3

1,4962

–1,2887

6,7368

 

 

 

 

68

Конечно, можно и по-другому построить начальный симплекс. Например, заданная начальная точка может являться одной из вершин симплекса, а не лежать внутри симплекса, как в данном случае. Это не принципиально и на результат существенно не влияет.

Нетрудно заметить, что самой плохой вершиной является третья (самое большое значение критерия). Удалим эту вершину и на противоположной грани построим новый симплекс. При этом находится лишь одна вершина нового симплекса. Применим базовый алгоритм для каждой переменной х1 и х2 отдельно.

Получим новую вершину:

Номер вершины

х1

х2

R

4

1,4962

–0,4226

0,8839

 

 

 

 

Теперь симплекс образуют вершины 1, 2, 4. Самая плохая вершина – 1. По аналогичной формуле перейдем к следующей новой вершине, «отразив» удаляемую относительно центра грани.

Получим вершину:

Номер вершины

х1

х2

R

5

0,9962

–0,4226

0,4578

 

 

 

 

Теперь симплекс образуют вершины 2, 4, 5. Самая плохая вершина – 2. Строим следующую вершину:

Номер вершины

х1

х2

R

6

1,2462

0,0104

1,5919

 

 

 

 

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

69

Номер вершины

х1

х2

R

7

1,2462

–0,6392

0,8750

 

 

 

 

Далее приведем координаты вершин следующих симплексов, предоставив студентам самостоятельно определять самую плохую вершину в каждом текущем симплексе (табл. 12).

 

 

 

 

Таблица 12

 

 

 

 

 

Номер вершины

х1

х2

R

Процесс

8

0,7462

–0,6392

0,6435

отражение

9

0,4962

–0,4226

0,3610

отражение

10

0,7462

–0,2061

0,3707

отражение

11

0,2462

–0,2061

0,1157

отражение

...

...

...

...

 

15

0,4962

0,0104

0,2526

отражение

16

–0,0663

–0,1520

0,0490

сжатие

17

–0,3163

0,0645

0,1238

отражение

18

0,1056

–0,1385

0,0458

сжатие

...

...

...

24

0,0089

0,0704

0,0100

отражение

25

–0,1014

0,0814

0,0256

отражение

26

0,0546

0,0199

0,0039

сжатие

Симплекс быстро сжимается вокруг искомой оптимальной точки.

2.2.2.3. Метод параллельных касательных

Метод параллельных касательных рассмотрим на примере двухмерной задачи R(x1, x2). Он заключается в следующем. Из двух произвольных точек х10, х20, не лежащих на одной прямой заданного направления (например, вдоль одной переменной), проводят два спуска по направлению и находят две точки оп-

70

Соседние файлы в папке книги