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

Северин В.П. Методы ОП

.pdf
Скачиваний:
101
Добавлен:
02.02.2015
Размер:
2 Мб
Скачать
☆

чения целевой функции gk 1 с лучшим значением предыдущих итераций fk :

 

 

y

k 1

,

g

k 1

f

k

;

 

 

g

k 1

, g

k 1

f

k

;

xk 1

 

 

 

 

 

 

fk 1

 

 

 

 

 

 

x

 

,

 

g

 

f

 

;

 

f

 

,

g

 

f

 

(3.29)

 

 

k

 

k 1

k

 

 

k

k 1

k

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

На основании сравнения gk 1 с

 

fk

и предыдущего значения множите-

ля шага rk вычисляется новое значение множителя шага

 

 

 

 

2,

gk 1

fk

 

 

0,5,

gk 1

fk

rk 1

 

 

0,25,

gk 1

fk

 

 

 

 

0,5,

gk 1

fk

 

 

rk 0,5;

rk 0,5;

(3.30)

rk 2;rk 2.

Умножением на это значение величины предыдущего шага находится значение следующего шага

 

 

 

hk 1 rk 1hk .

(3.31)

Итерации продолжаются до тех пор, пока

не выполнится условие

 

hk 1

 

, где – допустимая погрешность.

 

 

 

 

Рассмотрим особенности процесса одномерного поиска для метода адаптации шага по формулам (3.28)–(3.31). Пусть в первой итерации из точки x0 со значением функции f0 выполняется начальный

шаг с переходом к пробной точке y1 x0 h0 и вычислением значения функции g1 f ( y1) . Если g1 f0 , то полагают x1 y1 , f1 g1 , множителю адаптации шага задают значение r1 0,5 , вычисляют следую-

щий шаг h1 r1h0 0,5h0 и переходят к следующей пробной точке y2 x1 h1 с вычислением значения функции g2 f (x2 ) .

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

71

 

 

 

 

 

 

 

rk 2 ,

hk

rk hk 1 ,

yk 1 xk hk ,

k 3, m

(3.32)

с вычислением

значений функции gk f ( yk )

и выполнением

ра-

венств xk yk ,

fk

gk

до тех пор, пока не будет получена точка

yk 1

с не меньшим значением функции gk 1

f ( yk 1) , чем значение функ-

ции в предыдущей точке:

fm 1 fm ,

fm gm 1 . Этот процесс вычис-

лений

для

 

m 3

 

представлен

на

 

рис. 3.9,

где

h2 r2h1

h0 ,

h3 r3h2 2h0 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f1

 

 

f

 

 

 

 

 

 

 

 

 

g4

 

 

 

 

 

 

 

 

 

 

 

2

 

f3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h0

 

 

h1

 

 

 

h2 h0

 

h4

 

h3 2h0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

0

 

 

x

 

x

2

 

x

 

x

x

y

4

x

 

 

 

 

 

1

 

 

 

 

3

5

 

 

 

 

Рис. 3.9. Поиск методом адаптации шага в положительном направлении

В этом случае действия метода адаптации шага похожи на дей-

ствия

метода

Свенна

за

 

исключением

более

осторожного

шага

h1 h0

2 ,

что подтверждается сравнением формул (2.2) и (3.32), а

также рис. 2.12 и рис. 3.9:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2k 2 h

 

 

 

 

 

 

 

 

 

 

 

 

 

x

k 1

x

k

 

,

 

k 1, m 1.

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

Далее

в

 

соответствии

 

 

с формулами

(3.29)

 

и (3.30) полагают

xm 1 xm ,

fm 1 fm ,

rm 1

0,25 ,

вычисляют значение следующего

шага hm 1

rm 1hm

и выполняют следующий шаг:

ym 2

xm 1 hm 1 ,

gm 2 f (xm 2 ) . Если

gm 2 fm 1 ,

то

 

полагают

xm 2 ym 2 ,

72

fm 2

gm 2 , rm 2 0,5 и вычисляют

hm 2

rm 2hm 1 (рис. 3.9).

 

Если же после начального шага

g1 f0 , то в соответствии с фор-

мулой (3.29) в итерации с номером

k 1

полагают

x1 x0 , f1

f0 ,

множителю

адаптации шага

по

формуле

(3.30)

задают значение

r1 0,5 и

вычисляют

 

h1

r1h0 0,5h0 ,

y2 x1 h1 x0 0,5h0 ,

g2 f ( y2 ) , что представлено на рис. 3.10.

 

 

 

 

f

g2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g4

 

 

 

 

g3

 

 

 

 

 

 

 

 

 

 

f0

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h0

 

 

h0

 

 

 

h0

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

4

 

 

 

h0

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

2

 

 

y

4

x

0

x

y

3

 

 

 

y

x

 

 

 

 

 

 

 

 

 

 

 

 

1

 

Рис. 3.10. Изменение направления поиска методом адаптации шага

Если и в последующих итерациях с номерами k 2, 3, значе-

ния целевой функции не уменьшаются по сравнению со значением f0 ,

то есть выполняется

условие gk

f ( yk ) fk 1 f0 , то полагают

rk 0,5 ,

hk rk hk 1 ,

yk 1 xk hk x0 hk .

Таким образом, в этом случае на каждой итерации направление поиска меняется на противоположное (рис. 3.10).

Если же на первой итерации

g1 f0 ,

то по формулам (3.29) и

(3.30) полагают x1 x0 , f1

f0 ,

r1 0,5 ,

h1 r1h0 0,5h0 . На вто-

рой итерации вычисляются

y2 x1 h1 x0 0,5h0 , g2 f ( y2 ) и, если

73

g2 f0 ,

то полагают x2 y2 ,

f2 g2 , множителю адаптации шага по

формуле

(3.30) задают

значение

r2 0,5

и вычисляют

h2 r2h1

0,25h0 .

 

 

 

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

ле удвоения шага (3.32) с вычислением значений функции

gk

f ( yk )

и выполнением равенств

xk yk ,

fk gk

до тех пор, пока не будет

получена

 

точка

yk 1

 

с

 

не

меньшим

значением

функции

gk 1 f ( yk 1) ,

чем

 

 

значение функции

 

в

предыдущей

точке:

fm 1 fm ,

fm gm 1 . Этот процесс вычислений для m 4 представ-

лен на рис. 3.11, где h3 r3h2

0,5h0 , h4 r4h3

h0 .

 

 

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g1

 

 

g

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f3

f2

 

 

 

 

 

 

 

 

 

 

 

 

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

f6

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h0

 

 

 

h0

 

 

h0

 

 

h0

 

 

 

 

 

 

 

 

h0

4

 

 

 

 

 

 

 

 

 

h0

 

 

 

 

 

 

2

4

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

5

x

x

6

 

x

4

 

 

x

x

2

 

 

x

0

 

y

x

 

 

 

 

 

 

3

 

 

 

 

 

1

 

Рис. 3.11. Поиск методом адаптации шага в отрицательном направлении

В этом случае действия метода адаптации шага также похожи на действия метода Свенна за исключением более осторожных трех пер-

вых шагов в отрицательном направлении h1 h0 2 , h2

h0 4

и

h3 h0 2 , что подтверждается сравнением формул (2.3)

и (3.32),

а

также рис. 2.14 и рис. 3.11:

 

 

74

 

 

 

 

 

 

2k 4 h ,

 

 

 

 

 

 

x

k 1

x

k

k 2, m 1 .

 

 

 

 

 

 

0

 

 

 

 

Далее

в соответствии

с формулами

(3.29) и (3.30) полагают

xm 1 xm ,

fm 1 fm ,

 

rm 1

0,25 , вычисляют значение следующего

шага hm 1

rm 1hm

и выполняют следующий шаг: ym 2

xm 1 hm 1 ,

gm 2 f (xm 2 ) .

Если

 

gm 2 fm 1 ,

то

полагают

xm 2 ym 2 ,

fm 2 gm 2 , rm 2 0,5 и вычисляют hm 2 rm 2hm 1 (рис. 3.11).

Влюбом случае лучшие точки поиска xk будут приближаться к

оптимальной точке x до тех пор, пока не выполнится условие hk 1 . Таким образом, метод адаптации шага основан как на идее

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

А л г о р и т м м е т о д а а д а п т а ц и и ш а г а .

Входные параметры: x

– начальная точка поиска, h – начальный

шаг, – допустимая погрешность.

 

Выходные параметры:

x и f x

– лучшая точка и значение функ-

ции в ней.

 

 

1.

Положить r 0 и вычислить

fx f (x) .

2.

Вычислить y x h ,

f y f ( y) .

3.Если f y f x , то перейти к шагу 7.

4.Положить x y , f x f y .

5.Если r 0,5 , то положить r 2 , иначе положить r 0,5 .

6.Перейти к шагу 8.

7.Если r 2 , то положить r 0,25 , иначе положить r 0,5 .

8.Положить h h r .

9.Если h , то перейти к шагу 2.

75

10. Остановиться.

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

3.9.Сравнение методов уменьшения интервала неопределенности

Мы рассмотрели различные методы одномерного поиска, предназначенные для уменьшения интервала неопределенности точки мини-

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

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

2.Метод, не использующий интервал неопределенности. Это один только метод адаптации шага.

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

rn LLn .

76

Формулы этого коэффициента для метода равномерного поиска (МРП) (3.1), метода дихотомии (МД) (3.2), метода деления интервала пополам (МДИП) (3.3), метода Фибоначчи (МФ) (3.17) и метода золотого сечения (МЗС) (3.27) для удобства сравнения сведены в табл. 3.3.

Таблица 3.3 – Коэффициенты уменьшения интервала

МРП

МД

МДИП

МФ

МЗС

r

2

 

r

1

 

1

r

1

r

1

r

1

n

n 1

n

2n 2

 

2n 1

n

2(n 1) 2

n

Fn

n

n 1

 

 

 

 

 

 

На основании этой таблицы, а также табл. 3.1 и табл. 3.2 для чисел Фибоначчи и степеней золотого сечения составлена табл. 3.4, в которой для тех же методов представлено количество вычислений целевой функции, необходимое для достижения требуемого уменьшения интервала неопределенности, которое задано значением коэффициента уменьшения интервала rn .

Таблица 3.4 – Количество вычислений функции

rn

МРП

МД

МДИП

МФ

МЗС

 

 

 

 

 

 

10 1

19

8

[5; 9]

6

6

10 2

199

14

[8; 15]

11

11

10 3

1999

20

[11; 21]

16

16

10 4

19999

28

[15; 29]

20

21

10 5

199999

34

[18; 35]

25

25

10 6

1999999

40

[21; 41]

30

30

10 7

19999999

48

[25; 49]

35

35

10 8

199999999

54

[28; 55]

39

40

10 9

1999999999

60

[31; 61]

44

45

10 10

19999999999

68

[35; 69]

49

49

77

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

Лабораторная работа

Т е м а л а б о р а т о р н о й р а б о т ы .

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

Ц е л ь л а б о р а т о р н о й р а б о т ы .

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

П о р я д о к в ы п о л н е н и я л а б о р а т о р н о й р а б о т ы .

1.Получить у преподавателя задание на программирование одного из методов уменьшения интервала неопределенности:

1) метод равномерного поиска;

2) метод дихотомии;

3) метод деления интервала пополам;

4) метод Фибоначчи;

5) метод золотого сечения;

6) метод адаптации шага.

2.На основании алгоритма для заданного метода уменьшения интервала неопределенности написать компьютерную подпрограмму в

78

соответствии с требованиями:

 

 

1)

входные параметры подпрограммы: f (x)

– целевая функция,

N – предельное число точек,

– допустимая погрешность, входные

параметры алгоритма заданного метода;

 

2)

выходные параметры подпрограммы: X

– массив всех точек

поиска

xk ;

F

–

массив

соответствующих

значений функции

fk f (xk ) ;

x и

f x

– лучшая точка поиска и значение в ней функции;

3)на каждой итерации выводить на экран компьютера строку, содержащую номер точки поиска k , длину интервала неопределенности Lk , значение функции fk и значение переменной xk ;

4)итерации продолжаются до тех пор, пока выполняются неравенства:

 

k N ;

Lk

,

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

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

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

1)за основу общей программы для минимизации функции взять общую программу поиска интервала неопределенности из предыдущей лабораторной работы и модифицировать эту программу;

2)задать в программе значения x0 , x , h , , N ;

3)путем вызова подпрограммы метода Свенна с использованием подпрограммы вычисления функции f (x) и значений x0 , h , N реа-

лизовать итерационный процесс поиска интервала неопределенности с

79

построением таблицы процесса на экране и получением массивов значений переменной X и функции F , границ интервала неопределенности a и b ;

4) путем вызова разработанной подпрограммы уменьшения интервала неопределенности реализовать итерационный процесс уменьшения интервала с построением таблицы процесса на экране и получением массивов значений переменной X и функции F , лучшей точки поиска x и значения в ней функции f x ;

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

4. Запустить на счет общую программу минимизации функции одной переменной для функций предыдущих лабораторных работ из нескольких начальных точек

 

x x ,

 

x

02

x ,

 

x x

 

 

 

01

 

 

 

 

 

03

 

 

при нескольких значениях шага

 

 

 

 

 

 

 

 

 

 

 

 

x x

 

 

x x

 

h

x x

,

h

 

,

h

.

01

0

 

02

 

 

 

0

 

03

0

 

5. Выполнить анализ полученных результатов:

1)на основании табличной и графической информации о работе методов одномерного поиска определить конечные точки метода Свенна и найденный этим методом интервал неопределенности;

2)на нескольких начальных итерациях по табличным данным и графикам сопоставить начало работы метода уменьшения интервала с его рабочими формулами;

3)оценить эффективность метода уменьшения интервала и сопоставить ее с теоретической эффективностью.

6. Ответить на вопросы преподавателя по теме лабораторной работы.

7. Оформить и сдать отчет о проведенной лабораторной работе.

80