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

Методы оптимизации, технические приложения

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

101

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

Среди градиентных методов выделяются: метод градиентного спуска (подъема) и метод наискорейшего спуска (подъема). В основе отличия указанных методов лежит различный способ выбора величины шага . Рассмотрим простейшие градиентные методы.

I. Метод градиентного спуска (подъема). Применяется для ре-

шения экстремальных задач. В этом методе итерации строятся по формуле

xkj 1 xkj f (xk ) .

Знак минус относится к задаче на минимум, знак плюс – к задаче

на максимум.

 

 

 

 

 

 

 

Направление спуска из точки xk

определяется по формуле

f (xk )

f xk

.

 

 

 

 

x

 

 

 

 

 

 

 

 

f xk

 

 

Для подъема

f (xk )

. Очередное

приближение

x

 

xk 1 xk f xk .

 

 

 

 

 

После определения очередного приближения

xk+1 проверяется неравенство (для задачи на min):

f xk 1 f xk .

Если это условие выполняется, итерация закончена. Увеличиваем

102

шаг на единицу и процесс вычисления повторяем снова. Если же f xk 1 f xk , то величина k уменьшается (обычно делится по-

полам) и производится вычисление очередного приближения. Для задачи на максимум проверяется, соответственно, условие f xk 1 f xk .

Первоначальное значение k задается произвольно.

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

f x1, x2 2x12 2x22 2x1 2x2 min .

Решение начать от точки x0 2, 8 .

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

х0:

f (x0 ) 2 22 2 82 2 2 2 8 116.

2. Находим координаты вектора градиента:

f

4x 2

 

0 6 ,

f

4x

2

 

0 30 .

 

 

 

 

 

x1

1

 

x1

x2

2

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

Следовательно, f (x0 ) 6;30 .

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

антиградиентом направлении. В качестве шага примем

1

.

4

 

 

f x0 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

x0

1

 

6

1

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

4

2

 

 

 

 

 

 

 

 

 

 

 

 

 

f x

 

8

 

 

 

 

 

 

 

 

 

 

 

1

0

0

1

 

 

 

1

 

 

1

 

1

 

1

 

 

 

x2

x2

 

 

 

30

 

 

,

x

 

 

 

,

 

.

 

 

 

4

 

2

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. Значения координат вектора градиента, выходящего из точки

x1:

f

 

1 4

1

2 0 ;

4x 2

 

 

 

 

 

x1

1

 

 

x1

2

 

 

 

 

 

 

 

 

f

4x

2

 

4

1

2 0 .

1

 

 

 

x2

2

 

 

x2

2

 

Находим, что f x1 0, 0 .

Так как координаты вектора градиента, выходящего из точки x1

равны нулю, дальнейшие вычисления прекращаем. Точка x1 является точкой минимума для рассматриваемой функции. Минималь-

103

ное значение функции в этой точке равно f

min

f x1, x1

1 .

 

1 2

 

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

Трудности, связанные с выбором длины шага, преодолеваются в методе наискорейшего спуска (подъема) Коши.

II. Метод наискорейшего спуска (подъема). После выбора начальной точки x0 находится grad f x0 . В направлении градиента

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

x1. Для нее вычисляем новое градиентное направление f x1 .

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

Вобщем виде

xk 1 xk k f (xk ) .

Величина шага k выбирается из условия

f xk k f (xk ) max (min)f xk k f (xk ) .

k 0

Направление вектора градиента f в точке xk является касатель-

104

ным к линии уровня поверхности f (x) в точке xk 1 . Градиент в точке xk 1 ортогонален градиенту f xk . Перемещение из точки xk в точку xk 1 сопровождается изменением функции f (x) на вели-

чину

 

xk 1 f xk

 

 

 

 

 

 

 

f f

 

 

 

 

 

 

 

 

 

 

 

f x

k

 

 

f x

k

 

 

 

 

 

f xk

k

 

...

k

 

 

f xk ,...xk .

 

 

 

 

 

 

 

1

 

x1

 

 

xn

 

 

 

1

n

 

 

 

 

 

 

 

 

 

 

 

 

Величина k , при которой достигается наибольшее (наименьшее) значение f , определяется из необходимого условия экстремума

функции

f x k 0 .

k

Но

f f f xk 1 f xk .k

Следовательно,

f xk 1 f xk 0 ,

т.е. градиенты ортогональны.

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

f xk 1 f xk .

Пример 3.7. Решить задачу примера 3.6 методом наискорейшего

спуска.

 

 

 

 

 

 

 

 

 

 

 

 

Р е ш е н и е . 1. f x0 2x2

2x2

 

 

 

 

 

2x

2x

2x

x

116.

 

 

 

 

1

2

1

2

2

(2,8)

 

 

 

 

 

 

 

 

 

 

 

0

2. Определяем координаты вектора градиента для точки x0:

f x1, x2

4x 2

 

 

 

0 4 2 2 6 ;

 

 

 

 

 

 

 

 

 

 

 

 

x1

1

 

 

 

x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f x1, x2

4x 2

 

0 4 8 2 30 ;

 

 

 

 

 

 

 

 

 

 

 

x2

2

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f x0 (6; 30) .

 

 

 

 

 

 

 

 

 

3. Составляем уравнение для координат точки,

в которую мы

105

придем, двигаясь в антиградиентном направлении:

x11 x10 1 f x10 2 6 1 ;

x12 x20 2 f x20 8 30 2 .

4. Подставляем выражения координат точки x0 в исходную функцию:

f x1, x2 2 2 6 1 2 2 8 30 1 2 2 2 6 1 2 8 30 1

8 48 1 72 21 128 960 1 1800 21 4 12 1 16 60 1

1872 21 936 1 116.

5. Дифференцируя полученную функцию по 1 , найдем величи-

ну шага:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

x1, x2

3744 936 0

936

 

1

.

 

 

 

 

 

 

x1

 

1

 

 

 

 

 

 

 

 

 

1

 

3744

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. Подставляем найденное значение 1

в выражения координат

точки x1:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

3 6 2 6

1

 

1

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

4

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

8

30 1

8 30

1

 

 

1

 

 

1

1

 

 

1

 

 

 

 

x2

 

 

 

;

x

 

 

 

 

,

 

.

 

 

 

4

 

2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

7. Значение функции в точке x1 равно:

 

 

 

 

 

f x1 2(0,5)2 2(0,5)2

2 0,5 2 0,5 1 ; f x1 f x0 .

8. Определяем координаты нового вектора градиента, выходяще-

го из точки x1:

 

 

 

 

 

 

f x1, x2

4x 2

 

 

 

1 4

1

 

2 0 ;

 

 

 

 

 

 

x1

1

 

 

 

x1

2

 

 

 

 

 

 

 

 

 

f x1, x2

4x 2

 

1 4

1

2 0 ;

 

 

 

x2

2

 

 

 

x2

2

 

 

 

 

 

 

 

f x1 (0,0) .

 

 

 

 

 

 

Так как координаты вектора градиента равны нулю, получено решение исходной задачи. Точка х1 является точкой минимума. Ми-

нимальное значение функции fmin 1.

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

106

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

f f x1, x2,...,xn max;

i x1, x2,...,xn bi ; x j 0 , j 1, n , i 1, m .

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

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

возрастать. Такое направление дает вектор 1 , составляющий с вектором f x1 наименьший острый угол по сравнению с любым дру-

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

скалярного произведения

f x1 1 0 .

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

107

точку x3 x * . Поэтому f x3 r

0

для любого rk, кроме r . Для

 

k

 

3

r

f (x3 )r 0 .

 

 

3

k

 

 

Аналитическое решение начинается с выбора параметра k ко-

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

 

b

xk

k

f xk b0;

 

 

i

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

xk 0.

 

 

 

xk

k

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Получаем

 

область

допустимых

значений

параметра

k 1k , 2k .

Значение

*k , определяемое в результате решения

уравнения f

xk

k

f

xk f xk 0 , должно принадлежать про-

межутку 1k ,

 

 

 

 

 

 

 

2k . Если найденное k выходит за пределы указан-

ного промежутка, то *k 2k .

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

 

 

 

 

f x

k

r ;

 

 

 

 

 

 

k

r 0

 

k

 

b

 

 

 

 

i

k

 

 

для тех i, при которых

b xk b0 ;

 

(3.11)

 

i

 

 

i

 

 

 

rk

 

1 ;

 

(3.12)

 

 

 

 

 

 

 

n

 

 

rk

rkj2 .

 

 

j 1

Решая, получим вектор rk , имеющий с градиентом наименьший острый угол. Условие (3.61) говорит о том, что точка принадлежит границе; условие (3.62) – что перемещение из xk по rk будет направлено во внутрь области допустимых решений или по ее гра-

нице. После определения r

находится значение *

для следующей

 

k

 

 

 

k

 

 

 

точки xk 1 xk * r

. При этом f x

r

k

0 . Если f x * r

k

0 ,

k k

 

k 1

 

 

 

 

решение прекращается.

108

Упражнения

1. Используя методы деления пополам и золотого сечения, вычислить указанные минимальные или максимальные значения функции f (x) на отрезке [a, b]. Точку x* определить с точностью

до 10 2 .

1.1.f (x) 1 32x 4x2 x4 min , [a,b] [1, 2] .

1.2.f (x) 1 4x 2x2 x4 min , [a,b] [ 1, 0] .

1.3.f (x) 2 5x 10x2 5x3 x5 max , [a,b] [ 3, 2] .

1.4.f (x) 3 120x 4x2 x4 min, [a,b] [2, 3] .

1.5.f (x) x 12 x2 x3 17 x7 max, [a,b] [1, 2] .

1.6.f (x) 5x x2 14 x4 max , [a,b] [2, 3] .

1.7.f (x) 2 x 52 x2 14 x4 max, [a,b] [0, 1] .

1.8.f (x) 2x 72 x2 53 x3 12 x4 min , [a,b] [0, 1] .

1.9.f (x) 2x2 x 1 4 max , [a,b] [1, 2] .

1.10.f (x) 2x x2 15 x5 min , [a,b] [1; 0,5] .

1.11.f (x) x 2x2 15 x4 min [a,b] [1, 2] .

1.12.f (x) 1 6x 3x2 x6 max, [a,b] [ 1, 0] .

1.13.f (x) 2x2 3 5 x 4 / 3 min , [a,b] [1,5; 2] .

1.14.f (x) 20x 5x2 8x5/ 4 max , [a,b] [3; 3,5] .

1.15.f (x) 80x 30x2 14 x4 max, [a,b] [1, 2] .

1.16.f (x) 1 2x 12 x2 16 x6 max , [a,b] [1; 1,5] .

1.17.f (x) 10x lg 1x 12 x2 min , [a,b] [0,5; 1] .

109

2 x

1.18.f (x) x x lg 2 min , [a,b] [1,5; 2] .

1

1.19.f (x) 13 x2 x ln x 1 min , [a,b] [0,5; 1] .

1.20.f (x) 13 x3 1 x ln 1 x 1 max , [a,b] [ 0,5; 0,5] .

2. Найти все точки локального безусловного минимума.

2.1.

f x , x

x

x

1 2 x2

2x .

 

1

2

1

2

1

2

2.2

f x1, x2 x1 x2

1 2 x1

x2 1 2 .

2.3.f x1, x2 x12 x22 2 2 x12 .

2.4.f x1, x2 x1 x22 1 2 x1 .

2.5.f x1, x2 x12 x22 2 2 x12 x22 .

2.6.f x1, x2 x12 x22 4 2 x12 .

2.7.f x1, x2 x12 2x2 1 2 4x22 .

2.8.f x1, x2 x1 x2 3 2 x1 2x22 .

2.9.f x1, x2, x3 x1 2x2 x3 2 x1 x2 2 x3 5 2 .

2.10.f x1, x2, x3 x1 2x2 2 x2 x3 2 x3 4 2 .

2.11.f x1, x2, x3 x1 2x2 2 x2 2x3 2 x3 2x1 2 x1 1 2 .

2.12.f x1, x2 , x3 x1 2x2 4x3 2 x1 x2 1 2 x2 x3 1 2 .

2.13.f x1, x2 x13 2x12 x1x2 2x1 x22 .

2.14.f x1, x2 2x13 x12 3x1x2 x1 4x22 .

2.15.f x1, x2 x13 5x12 8x1x2 x1 4x22

3. Найти точки условного экстремума.

3.1.f x1 x2 , если x12 x22 1.

3.2.f x12 2x22 , если 2x12 x22 4 .

3.3.f x1x2 , если x1 x2 1.

3.4.f x1x22x33 , если x1 x2 x3 12 .

3.5.f 2x1 x2 , если 2x1 x22 1.

110

3.6.f x41 x52 , если x12 x22 1.

3.7.f x1x2 x2x3 , если x12 x22 2 ; x2 x3 2 .

3.8.f x1 x2 , если x12 x2 8 .

3.9.f x12 x2 x3 , если x12 2x2 x3 1.

3.10.f x1 x2 3x3 , если x12 2x22 x32 1.

3.11.f x1 x2 2 x1 x3 2 , если x2 x3 4 .

3.12.f x1 x2 x3 , если x12 2x22 x3 1 .

3.13.f x1 x3 2 x1 x2 2 , если x1 2x3 4 , x2 2x3 6 .

3.14.f x1 x3 6 2 x1 , если x1 x2 0 .

3.15.f x1 x3 1 2 x1 x2 2 , если x1 x2 x3 1 .

4. В области решений системы неравенств определить экстремумы функций.

4.1.f x 4 2 y 8 2 ; 2x 5y 30; 2x y 14 , x 0, y 0 .

4.2.f x 2 2 y 4 2 ; 2x 5y 0 ; 2x y 14 , x 0, y 0 .

4.3.f x 7 2 y 7 2 ; 2x 5y 30; 2x y 14 , x 0, y 0 .

4.4.f x 6 2 y 2 2 ; 2x 5y 20 ; 2x y 12 , x 0, y 0 .

4.5.f 2x y ; x2 y2 36 , x 0, y 0 .

4.6.f x 2y ; x2 y2 36 , x 0, y 0 .

4.7.f x 3 2 y 2 2 ; x2 y2 36 , x 0, y 0 .

4.8.f x 4 2 y 6 2 ; x2 y2 36 , x 0, y 0 .

4.9.f x 1 2 y 1 2 ; x 2 y 1 16, x 0, y 0 .

4.10.f x 4 2 y 4 2 ; x 2 y 1 16, x 0, y 0 .

4.11.f x 4 2 y 4 2 ; 3x 5y 24 , x 3, y 0 .

4.12.f x 3 2 4 y 6 2 ; 3x 5y 24 , x 3, y 0 .

4.13.f x 2 2 y 6 2 ; 2x y 12 , x 0, y 0 .

4.14.f x 3 2 y 4 2 ; x 3 y 1 12 , x 0, y 0 .

4.15.f x 2 2 y 2 2 ; x2 y2 25 , x 0, y 0 .

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