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

Исследование операций безусловная оптимизация. Курс лекций

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
842 Кб
Скачать

a1 + a2 x a2 x2 + a2 x a2 x1 = 0; a1 + 2a2 x = a2 (x1 + x 2 );

2a2 x = a2 (x1 + x2 ) a1; x = a2 (x1 + x2 ) a1 ;

 

2a2

 

2a2

x =

x1 + x2

a1

.

 

 

2

 

2a2

Поскольку функция f(x) на рассматриваемом интервале обладает свойством унимодальности, а аппроксимирующий квадратичный по- лином также является унимодальной функцией, то можно ожидать, что величина х окажется приемлемой оценкой координаты точки ис- тинного оптимума х*. Критерием окончания поиска являются сле- дующие условия:

f(xk + 1) – f(xk)│ ≤ ε1 и (или) xk + 1 xk│ ≤ ε2.

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

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

1)

вычисление х2 = х1 + х;

2)

вычисление f(x1), f(x2);

3)

если f(x1) > f(x2) , то х3 = х1 +2 х; если f(x1) f(x2) , то х3 = х1 х;

4)вычисление f(x3) и нахождение Fmin = min {f1, f2, f3} , тогда Xmin будет точкой, которая соответствует Fmin;

5)вычисление х по трем точкам х1, х2, х3 с использованием форму- лы для оценивания с помощью квадратичной аппроксимации;

6)проверка условия окончания поиска. Если условие выполняет- ся, то закончить поиск, в противном случае перейти к пункту 7;

7)выбор наилучшей точки (Xmin или х) и двух точек по обе сторо- ны от нее. Расстановка этих точек в естественном порядке и переход

кпункту 4.

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

21

Рассмотрим пример решения задачи оптимизации методом Пауэлла. Пример 1.2. Найти точку минимума функции

F(x) = (10x3 + 3x2 + x + 5)2.

Заданы: начальная точка х1 = 2, длина шага х = 0,5 и ε = 1,1. Решение. Найдем значение функции в начальной точке: F(х1) = 9801.

х2 = х1 + х = 2,5 и F(х2) = 33306,25. Так как значение функции в сле- дующей точке больше, чем в начальной, то «шагнем» от начальной точ- ки в противоположную сторону: х2 = х1 х = 1,5 и F(х2) = 2209. Это направление правильное, так как функция уменьшилась. Найдем третью точку: х3 = х2 ± х = 1,5 – 0,5 = 1 и F(х3) = 361. Fmin = 361; xmin = х3.

х4 = х3 х = 1,0 –0,5 = 0,5 и F(х4) = 56,25. х5 = х4 х = 0,5 –0,5 =

0 и

F(х5) = 25. х6 = х5 х = 0 – 0,5 = –0,5 и F(х6) = 16. х7 = х6 х = –0,5 –

– 0,5 = –1 и F(х7) = 9. х8 = х7 х = –1 – 0,5 = – 1,5 и F(х8) = 552.

По

последним трем точкам: х8 = х3 = – 1,5; х7 = х2 = – 1 и х6 = х1 = – 0,5 найдем аппроксимирующую точку x .

a

=

 

9 16

= 14;

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

+ 0,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

=

 

 

1

 

 

552 16

9 16

= −2(536 18)

= 1108;

 

 

 

 

 

 

 

 

2

 

 

1,5 + 1

 

 

 

 

 

 

 

 

 

 

1,5 + 0,5

1+ 0,5

 

 

 

 

=

1

0,5

14

= −0,75 0,006 = −0,756.

 

x

 

 

 

 

 

 

1

 

 

 

2

 

 

2 1108

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Далее вычисляем F( x ) = 2,68.

Выбираем x1 как лучшую точку, а х6 и х7 как точки, которые ее

окружают. Расставляем эти точки в естественном порядке и перехо- дим к следующей итерации:

х6 = х1 = – 0,5; x1 = х2 = – 0,76х7 = х2 = – 1;

a =

 

2,68 16

 

= 53,28;

 

 

 

 

 

 

 

 

1

0,75 + 0,5

 

 

 

 

 

 

 

 

 

 

 

a =

1

 

 

9 16

53,28

 

= −4(14 53,28) = 157,12;

 

 

 

 

 

 

2

 

 

1+ 0,5

 

 

 

1+ 0,75

 

 

 

= 0,75 0,5

53,28

= −0,625 0,17 = −0,795.

x

 

2

2

 

2 157,12

 

 

 

22

Теперь F( x ) = 1,16.

Выбираем x2 как лучшую точку, а x1 и х7 как точки, которые ее

окружают. Расставляем эти точки в естественном порядке и перехо- дим к следующей итерации:

 

 

 

 

 

 

 

= х1 = –0,76;

 

2

= х2 = –0,795х7 = х2 = –1;

 

 

 

 

 

x1

x

a =

 

 

1,16 2,68

 

= 43,43;

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0,795 + 0,76

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a =

1

 

 

 

 

9 2,68

43,43 = −4,88(26,33 43,43) = 340,43;

 

 

 

 

 

 

 

2

 

 

 

 

 

 

1+ 0,76

 

 

 

 

 

1+ 0,705

 

 

=

0,795 0,76

43,43

 

= −0,78 0,063 = −0,843;

x

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

2 340,86

F( x ) = 0,09.

Так как |0,09 – 1,16 | = 1,07 < 1,1, то поиск завершен. Итак: Fmin = 0,09 и xmin = – 0,843.

1.2. Методы с использованием производных

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

F(x) = F ; F′′(x) = F,

h

h

где

 

F = F(xk +1) F(xk ) ,

F′ = F(xk +1) F(xk )

и так далее.

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

1.2.1. Метод Ньютона Рафсона

Для реализации данного метода необходимо, чтобы функция была дважды дифференцируема. Пусть х1 начальная точка, которая

23

представляет начальное приближение (или начальную оценку) коор- динаты стационарной точки, или корня уравнения f'(x) = 0. Затем строится линейная аппроксимация функции f'(x) в точке х1, и точка, в которой аппроксимирующая линейная функция обращается в нуль, принимается в качестве следующего приближения. Если точка хk принята в качестве текущего приближения к стационарной точке, то линейная функция, аппроксимирующая функцию f'(x) в точке хk, за- писывается в виде

f (x, xk ) = f (xk ) + f ′′(xk )(x xk ).

(1.1)

Приравняв правую часть уравнения (1.1) к нулю, получим сле- дующее приближение:

x

= x

f (xk )

.

 

k +1

k

f ′′(xk )

 

 

Итерации продолжаются до тех пор, пока не будет выполняться неравенство |f'(x)| ≤ ε, где ε заранее установленная величина допус- тимого отклонения. На рис. 1.3 показана иллюстрация основных ша- гов реализации метода Ньютона Рафсона.

Рис. 1.3. Метод Ньютона Рафсона. Приближение к точке оптимума

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

24

точке, так и дать расхождение. Такой случай рассмотрен в [2] и пока- зан на рис. 1.4.

f’(x)

0 x*

x0

xk+1

x

Рис. 1.4. Удаления от точки оптимума х* в методе Ньютона Рафсона

Если начальная точка х0 расположена правее стационарной точки х*, то получаемые в результате последовательных приближений точ- ки удаляются от точки х*.

Рассмотрим пример.

Пример 1.3. Найти минимум функции

f (x) = 300 10x2 4x5 3x6 .

Решение. Пусть х1 = –2 и ε = 5·10–4.

Для того чтобы определить стационарную точку функции f(x), возьмем первую и вторую производные:

f (x) = 20x 20x4 18x5 ; f ′′(x) = 20 80x3 90x4 .

Рассмотрим данные, представленные в табл. 1.2.

Таблица 1.2

Данные к примеру 1.3 для точки х1 = –2

Точка

F(x)

F(x)

–2

196

216

–1,72

252,55

62,64

–1,55

270,08

14,81

–1,48

275,1

1,93

–1,47

275,86

0,05

–1,46

275,88

0,00004

25

Из табл. 1.2 видно, что при х = –1,46 условие │f(xk)< ε выпол- няется, т.е. 0,00004 < 5·10–4, поэтому поиск завершен и х6 = –1,46является стационарной точкой.

Теперь возьмем другую точку х1 = 2. Данные поиска из этой точки представлены в табл. 1.3.

Таблица 1.3

Данные к примеру 1.3 для точки х1 = 2

Точка

F(x)

F(x)

2

–60

–856

1,58

187,5

–274

1,27

258,4

–85

1,04

280,5

–24

0,9

287,9

–6

0,84

290,2

–0,7

0,831

290,53

–0,02

0,83

290,54

–0,00001

Из табл. 1.3 видно, что при х = +0,83 условие │f(xk)< ε также вы- полняется, т.е. 0,00001 < 5·10–4, поэтому поиск завершен и х8 = 0,83 яв- ляется стационарной точкой.

Из рис. 1.5, на котором представлен график зависимости произ- водной функции от аргумента, видно, что максимум функции нахо- дится в нулевой точке, а точки –1,46 и 0,83 являются точками пере- гиба. На рис. 1.6, на котором представлен график зависимости уже самой функции от аргумента, это также хорошо видно.

Рис. 1.5. Три стационарные точки х = –1,46, х = 0 и х = 0,83

26

Рис. 1.6. Точки перегиба х = –1,46 и точка максимума х = 0

1.2.2. Метод средней точки

Метод средней точки (иногда его называют поиском Больцано) является эффективным алгоритмом исключения интервалов. Для ис- пользования данного метода необходимы следующие условия: функ- ция f(x) унимодальна и дифференцируема. Суть алгоритма заключа- ется в следующих нескольких итерациях:

1.Определить две точки L и R таким образом, что f'(L) < 0 и f'(R) > 0. Стационарная точка расположена между L и R, так как f'(x*) = 0.

2.Вычислить значение производной функции в средней точке рас- сматриваемого интервала z = (L + R)/2. Если f'(z) > 0, то интервал (z, R) можно исключить из интервала поиска по условию унимодальности функции. В то же время, если f'(z) < 0, то можно исключить интервал

(L, z).

3. Если |f'(z)| ≤ ε, то можно закончить поиск, в противном случае, ес- ли f'(z) < 0, положить L = z и перейти к шагу 2. Если f' (z) > 0, поло- жить R = z и перейти к шагу 2.

Заметим, что в этом методе исследуется только знак первой про- изводной функции, а не ее значение.

27

1.2.3. Метод секущих

Данный метод основан на комбинации двух вышеизложенных ме- тодов и называется методом секущих или методом хорд.

На первой итерации этого метода так же, как в методе средней точки, находятся две точки, в которых знаки первых производных различны. Далее функция f'(x) аппроксимируется «секущей прямой» (прямой, соединяющей две точки) и находится точка, в которой секу- щая графика зависимости f'(x) от x пересекает ось абсцисс (рис. 1.7). Таким образом, следующее приближение к стационарной точке x* определяется по формуле

z = R f (R)(R L) . f (R) f (L)

Рис. 1.7. Метод секущих

Если |f'(z)| ≤ ε, то поиск закончен. В противном случае необходи- мо выбрать одну из точек L или R таким образом, чтобы знаки про- изводной в этой точке и точке z были различны, а затем повторить основные шаги алгоритма. Этот метод более эффективен, чем метод средней точки, так как в некоторых случаях удается исключить более половины интервала поиска, что невозможно в методе средней точки.

1.2.4.Метод поиска с использованием кубической аппроксимации

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

28

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

Алгоритм поиска:

1. Найти две такие точки x1 и x, чтобы производные f'(x1) и f'(x2) имели различные знаки. Аппроксимирующую кубическую функцию записать в следующем виде:

f(x) = a0 + a1(x x1) + a2(x x1)(x x2) + a3(x x1)2(x x2).

(1.2)

Параметры уравнения (1.2) подбираются таким образом, чтобы значения f(x) и ее производной в точках x1 и x2 совпадали со значе- ниями f(x) и f'(x) в этих точках.

2. Вычислить первую производную функции f(x):

df (x)

= a + a

 

(x x ) + a

 

(x x

)

+ a

(x x )2

+

 

2

2

dx

1

1

 

2

3

1

 

 

+2a3 (x x1)(x x2 ).

 

 

 

 

 

 

 

(1.3)

Коэффициенты a0, a1, a2 и a3 уравнения (1.2) определяются по из- вестным значениям f(x1), f(x2) и f(x3) путем решения следующей сис- темы линейных уравнений:

f1 = f (x1) = a0 ;

 

f2 (x) = f (x2 ) = a0 + a1(x2 x1);

(1.4)

f1′ = f (x1 ) = a1 + a2 (x1 x2 );

(1.5)

f ′ = f (x ) = a

+ a (x

x ) + a (x

x )2.

(1.6)

2

2

1

2

2

1

3

2

1

 

Итак, если a0 = f1, то из уравнения (1.4) следует: f2 = f1 + a1(x2 x1) или f2 – f1 = a1(x2 – x1), тогда

 

 

a

=

f 2 f 1

.

 

 

 

 

 

 

 

 

 

 

1

 

x2 x1

 

 

 

 

 

 

 

 

Из (1.5) следует

 

 

 

 

 

 

 

 

f '

=

f2 f 1

+ a (x

1

x )

 

1

x2

2

 

2

 

 

x1

 

 

или

a = f '1(x2 x1) ( f2 f1) .

2

(x2

x1)(x1 x2 )

 

29

И из уравнения (1.6) следует

 

 

 

 

 

 

 

 

 

 

f ' =

f2 f1

+

 

f '1(x2 x1) ( f2 f1)

(x x ) + a (x x )2

 

 

 

 

 

 

 

 

2

 

x2

x1

 

 

 

(x2 x1)(x1 x2 )

 

 

2

 

1

 

3

2

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f '

f2 f1

f '1(x2 x1) ( f2 f1)

= a (x x )2

,

 

 

 

 

 

 

2

 

 

x2 x1

 

 

x1 x2

 

 

 

 

3

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a =

f '2 (x2 x1) ( f2 f1)

f '1(x2 x1) ( f1 f2 )

.

 

3

 

 

 

 

(x x )3

(x x

)(x x )2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

 

1

2

 

2

1

 

 

 

3. Оценить координату стационарной точки функции с помощью аппроксимирующего полинома (1.2). Приравнять к нулю производ- ную (1.3) и получить квадратное уравнение

d

 

 

 

=

f2 f1

+

f '1(x2 x1) ( f2 f1)

(x

 

 

 

 

 

 

 

 

f

x ) +

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dx x2 x1

 

(x2 x1)(x1 x2 )

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

f '1(x2 x1) ( f2 f1)

(x

x

 

) +

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x2 x1)(x1 x2 )

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f '2 (x2 x1) ( f2

f1)

 

 

f ' (x x )

( f f

2

)

 

(x x )2 +

 

+

 

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

 

1

 

 

1

 

 

(1.7)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x x )3

 

 

 

 

 

 

 

(x x )(x x )2

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

 

 

 

 

 

 

 

 

1

 

 

 

 

2

 

2

1

 

 

 

 

 

 

 

 

f '2 (x2 x1) ( f2 f1)

 

 

f ' (x x

)

( f f

2

)

 

 

 

 

+2

 

 

 

 

 

 

 

 

 

 

 

1 2

 

1

 

 

1

 

 

 

(x x

) = 0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x

x )3

 

 

 

 

 

 

 

 

 

(x x )(x x )2

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

 

 

 

 

 

 

 

 

 

1

 

 

2

 

2

1

 

 

 

 

 

 

Пусть

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z =

3( f1 f2 )

+ f1′+ f2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для упрощения формулы введем переменную w:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(z

2

f

f )2 ,

 

x

 

< x ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

 

 

 

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(z

 

f

f

)

 

,

 

x

> x .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

1

2

 

 

 

 

 

 

 

30

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