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

862

.pdf
Скачиваний:
4
Добавлен:
07.01.2021
Размер:
720.35 Кб
Скачать

6.

Вычислить оптимум целевой функции методом

с

использованием чисел Фибоначчи.

 

7.

Сформулировать закон золотого сечения.

 

30

Глава 3. ГРАДИЕНТНЫЕ МЕТОДЫ ПОИСКА ЭКСТРЕМУМА

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

R(x )

 

n

R(x )

 

 

 

i

 

 

 

i

 

cos i,

 

 

 

 

l

x

 

i 1

 

 

 

 

 

 

 

i

 

 

где R(xi) – рассматриваемая функция, зависящая от n неизвестных x1, x2, xi, …, xn ; i – угол наклона l - го вектора к i -й оси координат.

3.1. Понятие градиента

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

Градиент функции имеет следующее обозначение

g grad R(xi ). (31)

Для функции многих переменных градиент определяется по следующей формуле:

R(xi )

 

 

R(xi )

2

 

 

R(xi )

2

 

 

R(xi )

2

 

 

R(xi )

2

, (32)

 

 

 

 

 

 

...

 

 

...

 

 

 

g

 

 

x

 

 

 

x

2

 

 

 

x

 

 

 

x

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

i

 

 

 

n

 

 

где R(xi ) – координата вектора-градиента по i -й оси.

xi

Градиент обладает ценным свойством: он всегда направлен по нормали к линиям одинакового уровня и совпадает с наикратчайшим путем от рассматриваемой точки до «почти стационарной области». На этом свойстве построены поисковые методы, объединенные единым названием, – градиентные методы. Существует множество методов, основанных на использовании идеи градиента. Однако концепции их сводятся в основном к следующим трем методам: метод градиента, метод релаксаций и метод наискорейшего спуска (подъема), которые мы кратко рассмотрим ниже.

31

3.2. Метод градиента

Сущность этого метода сводится к выполнению следующих операций:

1.В исходной точке определяется градиент рассматриваемой функции.

2.В направлении градиента осуществляют рабочий шаг.

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

а) определяются точки, откуда шагаем и куда шагаем; б) сравниваются отклики в этих точках и шаг считается удачным,

если величина целевой функции улучшилась, т.е. увеличилась при поиске максимума (max) и уменьшилась при определении минимума

(min).

В каждой новой точке вычисляется величина целевой функции. Алгоритм поиска следующий:

j

j 1

 

 

 

R

 

,

(33)

 

 

 

 

xi

Xi

hi

 

 

 

 

 

 

 

 

 

 

Xi

j 1

 

 

 

 

 

 

 

 

xi

 

где i – номер текущей переменной; j – номер шага; hi – фактор шага по i - й переменной, который принимается постоянным,равным заданной точности поиска, если поиск ведется в стационарной области. При большом удалении от оптимума величина шага принимается пропорционально величине первой производной по каждой координате.

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

3.3. Метод релаксаций

Метод релаксаций заключается в следующем:

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

32

R

;

R

; . . . ;

R

;

(34)

 

 

 

x1

x2

xn

 

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

из последней удачной точки.

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

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

Алгоритм поиска следующий:

j 1

 

j

 

 

 

 

 

 

R

 

 

j ,

(35)

 

 

 

 

 

 

 

 

 

xi

xi

 

 

hi ε

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

X

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

при этом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

 

 

 

1,если

 

 

 

 

 

max;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

max( min);

(36)

 

0,если

 

 

 

 

 

 

 

 

xi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

1,если

min.

 

 

 

 

 

 

 

 

 

 

 

 

xi

 

 

 

 

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

33

3.4. Метод крутого восхождения

Метод крутого восхождения (наискорейшего спуска) вобрал в себя все лучшее предыдущих методов и сводится к следующему:

а) определяется градиент в исходной точке; б) в направлении градиента осуществляется не один шаг, как в

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

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

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

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

Результаты решения по всем рассмотренным методам записываются в следующем виде (образец ответа):

Ответ:

 

 

R (x1 ; x2 ;…, xn ; ) = A,

(37)

где А – численное значение функции в точке экстремума

 

(x1 ; x2

 

;…, xn ), определенное с заданной точностью поиска

.

 

 

 

34

3.5. ТИПОВОЙ РАСЧЁТ «ГРАДИЕНТНЫЕ МЕТОДЫ ПОИСКА ЭКСТРЕМУМА»

3.5.1.Задание

Имеется целевая функция, в общем виде

R(x) = ax2

bx2

cx

x

2

,

(А)

1

2

1

 

 

 

коэффициенты а, b и c которой для 31 различного варианта заданы в прил. 2 (см. столбцы 2 – 4). Используя целевую функцию (А) и исходные данные (см. прил. 2), необходимо:

1. Определить минимум целевой функции (А) методом градиента при условии, что координаты начальной точки равны x10 x20 1 и задана точность поиска = 0,01.

2. Определить минимум целевой функции (А) методами релаксаций и крутого восхождения из исходной точки x10 и x20 (см. прил.2, столбцы 5 и 6) с заданной точностью поиска (см. прил. 2, столбец 7).

3.5.2.Образец выполнения работы

Текст задания записать в отчет. Причем, числовые значения свести в табл. 3. Для примера рассмотрим выполнение настоящей работы по варианту №31, который дает следующие исходные данные (см. прил. 2).

 

 

 

 

 

 

 

 

Таблица 3

 

 

 

Исходные данные

 

 

 

 

 

 

 

 

 

 

 

 

№ варианта

a

b

 

c

 

x0

x0

 

 

 

 

 

 

 

1

2

 

31

1

2

 

1

 

2

2

0,01

На основе исходных данных и формулы (А) имеем следующие исходную функцию:

R(x) x12 2x22 x1 x2 ,

которую необходимо, согласно заданию, исследовать на минимум тремя методами:

35

1)методом градиента;

2)методом релаксаций;

3)методом крутого восхождения.

Метод градиента.

Решение задачи методом градиента осуществляем в такой последовательности:

Iшаг.

1.Определяем частные производные по осям координат от заданной функции R(xi ) x12 2x22 x1 x2 :

R(x)

2 x x

 

;

R(x)

4x

 

x .

x

 

 

 

1

2

 

x

2

 

2

1

1

 

 

 

 

 

 

 

2. Вычисляем величины первых производных в начальной точке,

т.е. при x0

x0

1:

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

R(x)

 

 

 

 

R(x)

 

5.

 

 

 

 

 

3;

 

 

 

 

x

 

x

 

 

 

 

 

 

0

 

2

 

0

 

 

 

1

x

 

 

 

x

2

 

 

 

 

 

1

 

 

 

 

3. Вычисляем величину целевой функции в исходной (начальной) точке

R(x10, x20) x12 2x22 x1 x2 4.

4. Осуществляем первый шаг из начальной точки с координатами x10 и x20 по формуле (33). Здесь следует заметить, что при поиске минимума движение осуществляется по антиградиенту, т.е. в направлении, противоположном направлению градиента, – направлению наиболее быстрого уменьшения целевой функции. Фактор шага h принимаем равным заданной точности поиска, т.е.

h = = 0,1;

 

 

 

 

R(x)

 

 

Формат: Список

 

 

 

 

 

x11

x10

- h

 

 

 

1 0,1 3 0,7;

x

 

 

 

 

 

 

 

0

 

 

 

 

1

x

 

 

 

 

 

 

 

1

1

0

 

 

R(x)

 

 

 

 

 

 

 

 

x2

x2

- h

 

 

1 0,1 5 0,5.

 

x2

 

 

 

 

 

 

x0

 

 

 

 

 

 

 

2

Вычисляем величину целевой функции в точках x11 и x12 :

R(x1',x2' ) (0,7)2 2(0,5)2 0,7 0,5 1,34.

36

Результаты расчетов сводим в табл. 4.

 

 

 

Таблица 4

 

Результаты расчетов

 

 

 

 

 

 

 

Номер шага

х1

х2

R(x1, x2)

0

1

1

4,0

 

1

0,7

0,5

1,34

 

2

0,51

0,23

0,48

 

3

0,385

0,087

0,196

 

4

0,3

0,017

0,095

 

5

0,24

-0,019

0,053

 

6

0,15

-0,049

0,02

 

7

0,05

-0,074

0,011

 

8

0,04

-0,176

0,053

 

II шаг.

Вычисляем значения первых производных по осям координат в точках x11 0,7и x12 0,5:

 

 

R(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2x1

x2

2 0,7 0,5 1,9;

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4x2

x1 4 0,5 0,7 2,7.

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Осуществляем второй шаг поиска:

 

 

 

 

 

 

 

 

 

 

 

 

 

R(x)

 

 

 

 

 

 

 

 

x12

 

x11

h

 

 

 

 

 

0,7 0,1 1,9 0,51;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

X

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

1

 

 

 

 

 

 

R(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

x2

h

 

 

 

 

 

 

 

 

0,5 0,1 2,7 0,23.

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

Вычисляем величину целевой функции на втором шаге:

 

 

 

 

 

 

 

 

 

 

R(x2,x2 ) 0,48

 

 

 

III шаг.

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

 

 

 

 

 

 

 

 

R xi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

=0,51 и

х2

2

 

 

 

 

 

 

 

2

Вычисляем значения

 

 

x

 

 

в точках х1

=0,23:

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

R(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,02 0,23 1,25 ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

37

 

 

 

 

 

 

 

 

R(x)

 

 

 

 

0,92 0,51 1,43.

 

 

 

x2

 

 

 

 

2

X

 

 

 

 

 

2

Осуществляем третий шаг:

x13 0,51 0,1 1,25 0,385;

x23 0,23 0,1 1,43 0,087.

Вычисляем значение целевой функции на третьем шаге:

R(x3

,x3 ) 0,148 0,0152 0,0335 0,196.

 

1

2

 

 

 

 

 

 

 

 

 

 

IV шаг.

 

 

 

 

 

 

 

 

 

 

 

 

 

R(x)

 

 

= 0,857;

 

R(x)

 

= 0,733;

 

 

 

 

 

 

 

 

 

 

 

x

 

 

3

 

 

x

2

 

 

3

 

 

 

 

 

1

X

1

 

 

 

X

2

 

 

 

 

 

 

 

 

 

 

 

х14 = 0,3; х24 = 0,017.

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

Результатами вычислений на 5, 6,7 и 8-м шагах пополняем табл.

4.

Наконец, на последнем 8-м шаге целевая функция увеличилась по сравнению с ее величиной на 7-м шаге, поэтому оптимальным будет решение

x1min x17 0,05 0,1; x2min x27 0,074 0,1;

R(x)min = 0,011.

Таким образом, окончательно имеем, используя (37), ответ.

Ответ: R(0,05 0,1; 0,074 0,1)=0,011.

Метод релаксаций.

Имеем согласно исходным данным следующую целевую функцию:

R(xi) = x12 + 2x22 + x1x2.

Исходная точка х10 = х20 =2 (см. табл. 3).

1. Вычисляем величины первой производной по осям координат

38

 

R(xi)

 

 

0 = 2 х1 + х2 = 2 2 2 6;

 

 

 

x

 

 

 

1

 

X

1

 

 

 

 

 

R(xi)

 

= 4х2 + х1 = 4 2 2 10.

 

 

 

 

x2

 

 

X

0

 

 

 

 

2

На этом основании движение осуществляем по оси х2, фиксируя х10 = 2, т.е. по направлению наибольшей производной.

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

х10=2; х20=2:

R(xi) = x12 + 2x22 + x1 x2 = 22 + 2 22 + 2 2 = 16.

3. Осуществляем первый шаг поиска из точки х10 = х20=2 в точку

x1

2, новую координату

 

x1

2

 

необходимо вычислить с

1

 

 

2

 

 

 

 

 

 

использованием формулы (35):

 

 

 

 

 

 

 

 

 

0

 

 

 

 

R(xi )

 

,

 

 

 

 

 

 

 

x2 x2

 

ε

h

 

 

 

 

 

x2

 

 

 

 

 

 

X

0

 

 

 

 

 

 

 

 

 

2

где ε = –1, поскольку движение осуществляется по антиградиенту (определяем минимум целевой функции), a h = , т.е. h = 0,01.

Таким образом, имеем x12 2-0,01 10 2-0,1 1,9.

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

x11 2;x12 1,9:

R(xi) 22 2 1,92 2 1,92 2 1,9 15,02.

5. Сопоставляя величины целевой функции в точке, откуда шагаем (х10=2; х20=2), с точкой, куда шагаем (x11 2;x12 1,9), имеем

R(2; 2) = =16; R(2; 1,9) = 15,02; R(х10=2; х20=2) > R(x11 2;x12 1,9), т.е. 16 > 15,02. Шаг оказался удачным, поэтому следующий (второй) шаг осуществляем из последней удачной точки (2; 1,9) и при этом увеличиваем фактор шага вдвое: h = 2 = 0,02.

6. Вычисляем х22 на 2-м шаге:

2

1

 

 

R(x

i

)

 

2h

 

 

 

 

 

 

 

 

 

х2

х2

 

x2

 

.

 

 

 

 

 

X

1

 

 

 

 

 

 

 

 

2

 

 

39

 

 

 

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]