Решебник_МО
.pdff ( X 1 ) 3,32. Значение
x2
продолжить. Результаты
k |
= |
f ( X k ) |
k |
|
f ( X |
ri |
|
, Δxi |
= |
|
|
|
|
xi |
|
|
xi |
|
|
|
|
| f (Х1)|>ε, следовательно, поиск следует поиска сведем в табл. 3, обозначив
k ) .
Таблица 3
k |
x1k |
x2k |
f(xk) |
r1k |
r2k |
f (Хk) |
Δx1k |
Δx2k |
1 |
2 |
2 |
8 |
6 |
2 |
>0,5 |
1,8 |
0,6 |
|
|
|
|
|
|
|
|
|
2 |
0,2 |
1,4 |
1,76 |
–0,96 |
3,32 |
>0,5 |
–0,288 |
0,999 |
|
|
|
|
|
|
|
|
|
3 |
0,488 |
0,701 |
2,633 |
1,251 |
0,914 |
>0,5 |
0,3753 |
0,2742 |
|
|
|
|
|
|
|
|
|
4 |
0,113 |
0,427 |
0,1595 |
0,025 |
0,741 |
>0,5 |
0,0075 |
0,2223 |
|
|
|
|
|
|
|
|
|
5 |
0,0055 |
0,2047 |
0,407 |
–0,183 |
0,813 |
>0,5 |
–0,054 |
0,2449 |
|
|
|
|
|
|
|
|
|
6 |
0,0595 |
0,0402 |
0,00631 |
0,1978 |
0,1013 |
<0,5 |
|
|
|
|
|
|
|
|
|
|
|
Требуемая точность достигнута, но из табл. 3 видно, что процесс поиска «блуждал» вокруг экстремальной точки. По результатам вычислений решением задачи будем считать Х*= Х5= (0,0595; 0,0402), minf(Х*) = 0,00631.
ПРОПОРЦИОНАЛЬНЫЙ ГРАДИЕНТНЫЙ МЕТОД
В этом методе длина очередного рабочего шага прямо пропорциональна величине градиента исследуемой точки, т.е. hk=
= |
f ( X k ) |
, где α – |
коэффициент пропорциональности. Таким |
|||||
образом, получаем следующее правило: |
||||||||
|
хk+1=хk+ |
|
f ( X k ) |
|
X k + |
|
. |
|
|
|
|
f ( X k ) |
|||||
|
|
f ( X k ) |
|
|||||
|
|
|
|
|
|
|
|
Пропорциональный градиентный поиск следует начинать с определения приемлемого значения α. Как правило, в качестве начальной величины берут произвольное значение α0≤1, а на каждом
шаге уменьшают α вдвое, пока не получат положительный результат (f(хk+1)>f(хk) при поиске максимума или f(хk+1)<f(хk) при поиске
минимума). Процедуру поиска записывается следующим образом:
61
xik 1 xik k f (X k ) , i=1,2,…,n;xi
|
k |
, если полученположительный результат; |
|
|
|
k 1 |
|
k , в противномслучае, |
|
|
где 0<<1 – произвольно выбранная постоянная (одна и та же для всех итераций) величина изменения шага.
Выбор шага к преследует следующую цель: функция должна улучшаться от итерации к итерации. Однако и при отсутствии положительного результата точка исследования будет смещаться на гарантированную величину, определяемую правой частью неравенства.
Учитывая монотонность уменьшения приращений k+1=f(Xk+l) f(Xk) на каждом шаге, процесс вычислений можно остановить, как только k+1≤ε, где ε – заранее заданная малая величина, определяемая точностью измерительной аппаратуры.
Таким образом, пропорциональный градиентный метод на каждом шаге изменяет значение не одной, а всех независимых переменных. В каждой точке градиент вычисляется заново, а каждый шаг выполняется в направлении наискорейшего убывания (возрастания) функции в соответствующей точке.
Пропорциональный градиентный метод реализуется следую-
щим алгоритмом: |
|
|
|
|
||||
1. |
Задают начальную точку исследования Х0, постоянный |
|||||||
коэффициент пропорциональности , начальное значение |
шага , |
|||||||
условия |
остановки |
алгоритма | f (Хk+1)| . Вычисляют |
значение |
|||||
градиента f (Х0) – направление поиска, полагают к=0. |
|
|||||||
2. |
Определяют |
точку очередного эксперимента по |
правилу |
|||||
k 1 |
xi |
k |
|
k f ( X k ) |
, |
в которой определяют значение целевой функции. |
||
xi |
|
xi |
|
|
|
|||
|
|
|
|
|
|
|
|
3.Если результат оказался удачным, то переходят к п. 4, в противном случае дробят значение (к+1=к/2) и переходят к п. 4.
4.Вычисляют значение градиента в точке хк+1: f (xk+1).
62
5. Если условие остановки алгоритма | f (Хk+1)| выполнено, то поиск заканчивается, при этом Х*=Хк+1 и f*=f(Xk+1). Иначе полагают к=к+1 и переходят к п. 2.
Пример 17. Минимизируйте функцию f(X)=9x12+16x22–90x1–128x2.
Поиск начинайте в точке Х0=(1; 0), α0=0,06<1, δ=0,0,5.
Решение. Эту задачу легко решить с помощью классических
методов, приравнивая к нулю частные производные r1= |
f ( X ) |
=18x1– |
||||||||||
x |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
1 |
|
|
–90=0; r2= |
f ( X ) |
=32x2–128=0→Х*=(5; |
4). Найдем теперь решение, |
|||||||||
x2 |
|
|||||||||||
используя пропорциональный градиентный поиск. |
|
|
|
|
||||||||
|
|
Определим значение функции f(X0) и градиента |
f (Х0): |
|||||||||
f(X0)=–81, r1= f ( X 0 ) =18x10–90=–72; r2= |
f ( X 0 ) =32x20–128=–128. |
|||||||||||
|
|
|
|
x1 |
|
x2 |
|
|
|
|
|
|
|
|
Полагая к=0, определим точку очередного эксперимента по |
||||||||||
правилу, хк+1=хк k f (xk) : |
|
|
|
|
|
|
|
|||||
1 |
=х1 |
0 k f ( X 0 ) |
1 |
0 |
k f ( X 0 ) |
|
|
|||||
х1 |
|
|
|
=1 0,06*(–72)=5,5, х2 |
|
=х2 |
|
|
=0 0,06* |
|||
|
|
|
x1 |
|
|
|
|
|
x2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*(–128) = 8, f(Х1) = f(5,5;8) = –222,75.
Сравнение значений функции в точках Х0 и Х1 показывает, что шаг поиска оказался удачным (f(X1)<f(X0) при поиске минимума), и, следовательно, не нужно менять величину шага, т.е. 1 = 0. Полагая
k |
= |
f ( X k ) |
и |
k |
k |
|
f ( X k ) |
, |
дальнейшие вычисления сведем в |
||||||
ri |
|
хi |
= |
* |
|
|
|||||||||
|
|
|
xi |
|
|
|
|
xi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
табл. 4. |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
k |
|
|
x1k |
x2k |
f(Xk) |
Δf |
|
|
k |
r1 |
r2 |
х1k |
х2k |
||
0 |
|
|
1 |
0 |
|
–81 |
|
- |
|
|
0,06 |
–72 |
–128 |
–4,5 |
–8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
1 |
|
|
5,5 |
8 |
–222,6 |
–141,8 |
|
0,06 |
9 |
128 |
0,563 |
8 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
2 |
|
|
4,9375 |
0 |
–225 |
–2,25 |
|
0,06 |
–1,125 |
–128 |
–0,07 |
–8 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
3 |
|
|
5 |
8 |
–225 |
0 |
|
|
0,03 |
0 |
128 |
0 |
4 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
4 |
|
|
5 |
4 |
–481 |
–256 |
|
0,03 |
0 |
0 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63
Из таблицы видно, что в точке Х3 получен отрицательный результат поиска, так как не произошло улучшение значения целевой функции f(X3)=f(X2), и, следовательно, необходимо изменить значение шага: 3= δ* 2=0,5* 2=0,03.
В точке Х4 обе производные функции обратились в ноль, и, следовательно, процесс поиска закончен. По результатам вычислений решением задачи будет Х*= Х4= (5;4), min f(Х*) = –481.
Пример 18. Пусть требуется максимизировать функцию |
|
|
|
||||||||||||||||||||||||||
|
|
f(X)=6x1–2х3–3х12–2x22–х32, |
если |
начальная |
|
точка |
поиска |
||||||||||||||||||||||
|
|
Х0=(0;0;–1), |
|
начальный |
шаг |
|
|
поиска |
α0=1, δ=0,5, условие |
||||||||||||||||||||
|
|
прекращения поиска |
|
2 |
f 2 |
( X k ) |
=0,01. |
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
x j |
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
j 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
Решение. Определим значение функции f |
и градиента f в |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
f ( X |
0 ) |
|
|
|
0 |
=6; r2= |
f ( X |
0 ) |
= |
||||
начальной точке поиска: f(Х )=1, r1= |
|
x1 |
|
=6–6x1 |
x2 |
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
0 |
=0, r3= |
f ( X |
0 ) |
=–2x3 |
0 |
–2=0. Полагаем к=0 и, так как требуется |
||||||||||||||||||||||
=–4x2 |
|
x3 |
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
определить |
|
максимум функции, |
|
определим |
|
точку |
очередного |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
к+1 |
|
к |
k |
|
f ( X k ) |
|
|
|
|
|
|
|
|
|
||||
эксперимента по правилу хi |
|
=хi |
+ |
|
|
|
|
|
, i={1,2,3}: |
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1 |
=х1 |
0 |
0 |
|
f ( X 0 ) |
|
=0+1*(6)=6, |
|
|
|
|
1 |
|
0 |
0 |
|
f ( X |
0 ) |
=0+1*(0)=0, |
||||||||||
х1 |
|
|
+ |
|
|
|
|
|
|
|
|
х2 |
=х2 |
+ |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
x1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
1 |
=х3 |
0 |
0 |
|
f ( X 0 ) |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
1 |
)=f(6; 0;–1)= –71. |
||||||
х3 |
|
|
+ |
|
|
|
|
=–1+1*(0)= –1Х |
=(6; 0; –1). f(Х |
||||||||||||||||||||
|
|
|
|
|
|
|
x3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сравнение значений функции в точках Х0 и Х1 показывает, что шаг поиска оказался неудачным (f(X1)<f(X0) при поиске максимума), и,
следовательно, |
необходимо |
менять |
величину |
шага, |
т.е. |
|||||||
1 |
0 |
|
k |
|
f ( X k ) |
|
k |
k |
|
f ( X k ) |
|
|
=δ* =0,5*1=0,5. Полагая |
ri |
= |
xi |
и |
хi |
= * |
|
|
|
, |
||
|
xi |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
дальнейшие вычисления сведем в табл. 5.
64
Таблица 5
k |
k |
k |
k |
f(Xk) |
Δf |
k |
r1 |
r2 |
r3 |
k |
х |
k |
k |
|
х1 |
х2 |
х3 |
|
|
|
|
|
|
х1 |
2 |
х3 |
|
0 |
6 |
0 |
–1 |
1 |
– |
1 |
6 |
0 |
0 |
6 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
0 |
–1 |
–71 |
–70 |
0,5 |
–30 |
0 |
0 |
–15 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
6 |
0 |
–1 |
1 |
– |
1 |
6 |
0 |
0 |
6 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
0 |
–1 |
–71 |
–70 |
0,5 |
–30 |
0 |
0 |
–15 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
–9 |
0 |
–1 |
–296 |
–225 |
0,25 |
60 |
0 |
0 |
15 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
6 |
0 |
–1 |
–71 |
225 |
0,25 |
–30 |
0 |
0 |
–7,5 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
–1,5 |
0 |
–1 |
–14,8 |
56,2 |
0,25 |
15 |
0 |
0 |
3,75 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
2,3 |
0 |
–1 |
–0,8 |
14, |
0,25 |
–7,5 |
0 |
0 |
–1,9 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
0,38 |
0 |
–1 |
2,83 |
3,63 |
0,25 |
3,75 |
0 |
0 |
0,94 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
1,3 |
0 |
–1 |
3,71 |
0,92 |
0,25 |
–1,9 |
0 |
0 |
–0,5 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
0,8 |
0 |
–1 |
3,31 |
–0,4 |
0,125 |
1,2 |
0 |
0 |
0,15 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
0,95 |
0 |
–1 |
3,8 |
0,49 |
0,125 |
0,3 |
0 |
0 |
0,04 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
0,99 |
0 |
–1 |
3,81 |
0,01 |
0,125 |
0,01 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Из табл. 5 видно, что в точках Х1, Х2 и Х8 получен отрицательный результат поиска (не произошло улучшение значения целевой функции f(X1)<f(X0), f(X2)<f(X1), f(X8)<f(X7)), что привело к изменению значения шага: 1= 0,5, 2=0,25, 8= 0,125.
|
|
В |
точке Х10 достигнуто условие прекращения поиска |
2 |
f 2 ( X k ) |
0 = 0,01, следовательно, процесс поиска закончен. |
|
|
|
x j |
|
j 1 |
|
По результатам вычислений решением задачи будет Х*= Х10 = = (0,99; 0; –1), max f(Х*)=3,999.
МЕТОД НАИСКОРЕЙШЕГО ПОДЪЕМА (СПУСКА)
Метод наискорейшего подъема (спуска) объединяет основные идеи метода релаксации и метода пропорционального градиентного поиска. После того, как в начальной точке найден градиент оптимизируемой функции, в направлении градиента осуществляется продвижение до тех пор, пока функция f(X) не перестанет возрастать (при поиске максимума). Таким образом, получаем правило: Xk+1=Xk+αк f(Xk), где αk – частный максимум функции одной переменной f(α)=f[X(α)] на направлении f(Xk).
65
Объем вычислений по сравнению с методом градиента сокращается, поиск ускоряется. В качестве признака окончания поиска
можно использовать соотношение: |
n |
(x A x B )2 |
, где xjA, xjB |
– |
|
||||
|
i |
j j |
|
|
|
1 |
|
|
координаты начальной и конечной точек подъема.
Пример 19. Пусть требуется найти методом наискорейшего спуска минимум функции f(X) = 9x12+16x22–90x1–128x2, если начальная
точка |
поиска |
Х0=(1; 0), условие прекращения поиска |
|||||
|
n |
A |
B |
2 |
A |
B |
– координаты начальной и |
|
|
||||||
|
( x j |
x j ) |
|
=0,05, где xj , xj |
|
||
|
i 1 |
|
|
|
|
|
|
конечной точек спуска.
Решение. Определим значение целевой функции и ее частных производных в начальной точке исследования:
r1= |
f ( X ) =18x1–90, r2= f ( X ) |
=32x2–128 r10=–72, r20= –32, f(Х0)= –81. |
||||||||||
|
|
x |
|
|
|
|
x |
2 |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Представим переменные х11 и х21 в виде функций одной |
|||||||||
переменной α согласно правилам градиентного поиска |
|
|||||||||||
к+1 |
к |
|
f ( X k ) |
1 |
|
0 |
|
f ( X |
0 ) |
|
||
хi |
|
=хi |
– |
|
|
: х1 |
= х1 |
– |
|
=1+72 , |
|
|
|
|
|
|
xi |
|
|
|
|
|
x1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1 |
|
0 |
|
f ( X |
0 ) |
|
|
|
|
|
1 |
и |
х2 |
= х2 |
– |
|
|
= 0+81 = 81 . Подставим эти выражения для х1 |
|||||||
|
|
|
|
x2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
х21 в целевую функцию и получим функцию одной переменной : f(х11(),х21( )) = 9*(1+72 )2+16*(81 )2–90*(1+72 )–128*(81 ) =
= 3088002–21568–81. Найдем производную полученной функции и, приравняв ее к нулю, определим частный максимум:
f ( ) = 617600–21568 = 0 = 0,035. |
|
|
|
|
|
|
|
|
|
Подставим в выражения |
для х11 и х21 найденное значение : |
|||
х11 = 1+72*0,035 = 3,514 и |
х21 = 0+128*0,035 = 4,47, таким |
|
образом |
|
получена координата новой точки исследования Х1=(3,514; 4,47). |
|
|||
|
k |
= |
f ( X k ) |
, |
В новой точке повторим процесс поиска. Полагая ri |
xi |
|||
|
|
|
|
результаты дальнейших вычислений сведем в табл. 6.
66
|
|
|
|
|
|
Таблица 6 |
|
|
|
|
|
|
|
|
|
k |
x1k |
x2k |
f(Xk) |
r1k |
r2k |
|
k |
0 |
1 |
0 |
–81 |
–72 |
–128 |
|
0,035 |
|
|
|
|
|
|
|
|
1 |
3,514 |
4,47 |
–457,59 |
–26,75 |
15,04 |
|
0,0468 |
|
|
|
|
|
|
|
|
2 |
4,766 |
3,766 |
–479,64 |
–4,21 |
–7,488 |
|
0,0349 |
|
|
|
|
|
|
|
|
3 |
4,9 |
4,03 |
–480,9 |
–1,8 |
0,96 |
|
0,05 |
|
|
|
|
|
|
|
|
4 |
5 |
4 |
–481 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
В точке Х4 обе частные производные функции равны нулю, следовательно, процесс поиска закончен.
По результатам вычислений решением задачи будет Х*=Х4=(5; 6), f(Х*)= –481.
Пример 20. Пусть требуется найти методом наискорейшего подъема максимум функции f(X)=6x1–2x3–3x12–2x22–x32, если начальная
точка |
поиска |
Х0=(0; 0; –1), |
условие прекращения поиска |
||||||
|
n |
A |
B |
2 |
|
A |
B |
– координаты начальной и |
|
|
|
|
|||||||
|
(x j |
|
x j ) |
|
|
=0,2, где xj , |
xj |
||
|
i 1 |
|
|
|
|
|
|
|
|
конечной точек подъема.
Решение. Определим значение целевой функции и ее частных производных в начальной точке исследования.
r1= |
f ( X ) |
= 6–4x1, r2= |
f ( X ) |
= –4x2, r3= |
f ( X ) |
= –2x3–2 r10=6, r20=0, r30=0, |
||
|
x |
|
x |
2 |
|
x |
3 |
|
|
1 |
|
|
|
|
|
f(Х0) =1.
Представим переменные х11 и х21 в виде функций одной переменной α согласно правилам градиентного поиска: хiк+1=хiк+ *
|
f ( X k ) |
: |
|
* |
|
|
|
|
xi |
|
|
|
|
|
х 1= х 0+ f
2 2
|
|
1 |
0 |
|
f ( X 0 ) |
|
= 0+6* = 6 , |
||||
|
|
х1 |
= х1 |
+ |
|
|
|
||||
|
|
|
|
|
x1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
( X |
0 ) |
= 0+0*=0, |
1 |
0 |
|
|
f ( X |
0 ) |
= –1+0* = –1. |
||
|
|
х3 |
= х |
+ |
|
|
|||||
x2 |
|
|
|
|
|
|
|
|
x2 |
|
|
|
|
|
|
|
|
|
|
|
|
Подставим выражения для х11, х21 и х31 в целевую функцию и
получим функцию одной переменной : f(х11(),х21(),х31( )) = 6*(6 )–2*(–1)–3*(6 )2–2*(0)2–(–1)2= = –10862+36 +1.
67
Найдем производную полученной функции и, приравняв ее к
нулю, определим частный максимум: f ( ) = –216 +36 = 0 = 0,167.
Подставим в выражения для х11, х21 и х31 найденное значение
: х11=0+6*0,167=1, х21=0+0*0,167= 0 и х21= –1+0*0,167= –1, таким образом получена координата новой точки исследования Х1=(1; 0; –1).
В новой точке повторим процесс поиска: f(Х1)=4, r1= f ( X 1 ) =0,x1
r2= |
f ( X 1 ) |
=0, r3= |
f ( X |
1 ) |
=0. В этой точке частные производные |
x2 |
x3 |
|
|||
|
|
|
|
функции равны нулю, следовательно, процесс поиска закончен.
По результатам вычислений решением задачи будет Х*=Х1=(1; 0; –1), f(Х*)= 4.
ГРАДИЕНТНЫЕ МЕТОДЫ В ЗАДАЧАХ С ОГРАНИЧЕНИЯМИ
Если оптимум целевой функции находится внутри допустимой области G(X) изменения переменных X, то присутствие ограничений не влияет на процесс поиска решения и поиск оптимума осуществляется практически так же, как и в случае без ограничений. Если же оптимум функции находится за пределами допустимой области, то отыскание наибольшего значения целевой функции при ограничениях на X становится существенно сложнее.
Одним из эффективных методов решения задач с ограничениями является метод штрафных функций. Этот метод позволяет сводить задачи на условный экстремум к задачам на безусловный экстремум, переходя к задаче оптимизации вспомогательной функции R(X)=f(X)+H(X), в которой на X ограничения не накладываются.
Добавление слагаемого Н(Х) (отрицательного в задачах на максимум) к функции f(X) – специальный штраф за неточное выполнение ограничений gj(X)=0, j=I,2,...,m.
Основное требование к функциям штрафа сводится к тому, что они должны быть равны нулю для тех X, при которых ограничения выполняются, и должны быть отрицательны (в задачах максимизации) для тех X, при которых ограничения нарушаются.
68
В зависимости от вида ограничений используются различные виды функций штрафа.
Рассмотрим алгоритм равномерного градиентного метода для решения задач с ограничениями. Учитывая, что наряду с ограничениями вида gj(X)≥0, j=1,2,...,m существуют также ограничения на знак переменных хi≥0, получим алгоритм градиентного метода в следующем виде:
|
|
|
|
|
f ( X |
k |
) |
m |
|
x k 1 |
max |
0, x |
k h |
|
|
|
|||
|
|
|
j |
||||||
i |
|
|
i |
|
xi |
|
|
|
|
|
|
|
|
|
|
j 1 |
|
||
|
|
|
|
|
|
|
|
|
|
|
g |
|
( X k ) |
|
( X k ) |
j |
|
. |
|
|
|
|
|
|
|
|
xi |
|
|
|
|
|
|
|
В формуле h представляет собой шаг градиентного поиска. Если точка Xk находится в допустимой области, то второе слагаемое в квадратных скобках равно нулю (αj(Хk)=0), а процесс поиска протекает так же, как и при отсутствии ограничений. Если на очередном шаге нарушается хотя бы одно ограничение, соответствующий коэффициент αj(Хk) становится отличен от нуля, и это немедленно отражается на приращениях координат, которые направляют поиск в допустимую область.
Поиск обычно начинают при сравнительно малых α, а затем, найдя оптимум в первом приближении, увеличивают α и продолжают уточнять положение оптимума.
Пример 21. Максимизировать функцию f(x)=x1+2x2–x12–0,5x22 при ограничениях –2х1–3х2+6≥0; –х1–4х2+5≥0; х1,х2≥0.
Решение. Найдем выражения для частных производных целевой функции и каждой функции ограничений. Получим:
f |
=1–2x1; |
f |
=2–x2; |
g1 |
=–2; |
g1 |
=–3; |
g |
2 |
= –1; |
g |
2 |
=–4. |
||
x |
x |
2 |
x |
x |
2 |
x |
|
x |
2 |
||||||
|
|
|
|
|
|
|
|||||||||
1 |
|
|
|
1 |
|
|
|
1 |
|
|
|
Выберем значения Х0=(0; 0); h = 0,2; α = 2. Тогда алгоритм движения по каждой из координат для равномерного градиентного
метода примет вид
x1k+1 = max{0, xlk+0,2*[(1–2xlk)+α1(Xk)*(–2)+α2(Xk)*(–1)]}; x2k+1 = max{0, x2k+0,2*[(2–x2k)+α1(Xk)*(–3)+α2(Xk)*(–4)]}.
Чтобы перейти к расчету координат точки X1, найдем сначала значения α1(X0) и α2(X0), зависящие от того, удовлетворяет ли точка X0 ограничениям задачи. Поскольку в точке (0; 0) оба ограничения
69
выполняются, то α1 = 0, α2 = 0. Итак, в начальной точке поиска имеем
X0=(0; 0), f(X0)=0, α1(X0)=0, α2(X0)=0.
Первый шаг. Выполняем расчет координат точки X1:
х11= max{0; 0+0,2*[(l–0)+0+0]}= 0,2, х21= max{0; 0+0,2*[(2–0)+0+0]}=
= 0,4. Проверяя ограничения, видим, что в точке Х1=(0,2; 0,4) оба выполняются, следовательно, α1(X1)=0; α2(X1)=0. Вычисляем значение функции f(X1)=0,88.
Второй шаг. х12= max{0; 0,2+0,2*[(1–0,4)+0+0]}= 0,32, |
|
|
х22= max{0; 0,4+0,2*[(2– 0,4)+0+0]}= 0,72. |
Получаем |
α1(X2)= 0, |
α2(Х2)= 0, f(X2) =1,4. |
|
|
Третий шаг. х13= max{0; 0,32+0,2*[(1–0,64)+0+0]}≈ 0,39, |
||
х23=max{0; 0,72+0,2*[(2–0,72)+0+0]}≈0,98, тогда α1(X3)=0, |
α2(Х3)=0; |
|
f(X3)≈1,62. |
|
|
Четвертый шаг. х14= max{0; 0,39+0,2*[(1–0,78)+0+0]}≈ 0,43; |
||
х24= max{0; 0,98+0,2*[(2–0,98)+0+0]}≈1,18. |
Первое ограничение в |
|
точке Х4 выполняется, а второе – нет. |
Следовательно, |
α1(X4)= 0; |
α2(Х4)=2. Целевую функцию не вычисляем, так как точка X4 |
||
недопустима. |
|
|
Пятый шаг. х15= max{0; 0,43+0,2*([l–0,86)+0–2]}= 0,06; |
||
х25= max{0; 1,18+0,2*[(2–2,36)+0–8]}= –0,49, |
α1(Х5)= 0; |
α2(Х5)= 0; |
f(Х5)= –1,04. При переходе границы допустимой области движущаяся точка исследования отброшена назад в допустимую область, причем довольно далеко от границы. При меньших значениях h или α «отскок» от границы был бы также меньшим.
Далее поиск продолжается согласно вышеописанному алгоритму.
Пример 22. Максимизировать функцию f(x) = 8x1+32x1x2–2x12–4x22 при ограничениях: 3х1–5х2+30 ≥0, 5х1+х2–15 ≥0, х1 ≥0, х2 30.
Решение. Применим пропорциональный градиентный метод. Найдем выражения для частных производных целевой функции и каждой функции ограничений. Получим:
f |
= 8+3х2 |
– 4x1; |
f |
= 3х1– 8x2; |
g1 |
= 3; |
g1 |
= –5; |
g 2 |
= 5; |
g 2 |
= 1. |
||||
x |
x |
2 |
x |
x |
2 |
x |
x |
2 |
||||||||
|
|
|
|
|
|
|
||||||||||
1 |
|
|
|
|
1 |
|
|
|
1 |
|
|
|
Выберем значения начальной точки исследования Х0=(4; 6); начальный шаг поиска h0= 0,5, коэффициент пропорциональности
70