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

Решебник_МО

.pdf
Скачиваний:
173
Добавлен:
01.06.2015
Размер:
3 Mб
Скачать

величину первого интервала неопределенности L

L0

 

 

4

2,472,

1

C

 

1,62

 

 

 

 

тогда x1 = a+L1 = –2+2,472 = 0,472 и f1 = f(x1) = 0,531.

Второе измерение выполняется симметрично первому, т.е.

х2 = b–L1 = 2–2,472 = –0,472 и f2 = –0,202. Из свойства унимодальности функции, так как f(x1) > f(x2), следует, что L2 = [–2; 0,472] = 2,472.

На интервале L2 точка, симметричная х2, будет точкой следующего измерения: х3 = –2+(х1–х2) = –2+(0,472–(–0,472)) = –1,056

и f(x3) = 5,937. Значение f(x3) > f(x2), следовательно, интервал неопределенности сократится до L3 = [–1,056; 0,472] = 1,522.

На интервале L3 точка, симметричная х2, будет точкой следующего измерения: х4 = –1,056+(х1–х2) = –1,056+(0,472–(–0,472))= = –0,112 и f(x4) = –1,048. Значение f(x4) < f(x2), следовательно,

интервал неопределенности сократится до L4 = [–0,472; 0,472] = 0,944. Поскольку f4< –1, то искомой точкой, т.е. решением является

х4 = –0,112. Решение задачи: х*= –0,112 и f*(х) = –1,048.

Пример 13. Найдите значение аргумента, при котором значение функции f(х) = 3х+2х2–4, заданной на интервале L0 = [–2; 8], будет больше 140.

Решение. Применяя метод "золотого сечения", получим величину первого интервала неопределенности L1 LC0 110,62 6,17 ,

тогда x1 = a+L1 = –2+6,17 = 4,617 и f1 = f(x1) = 51,14.

Второе измерение выполняется симметрично первому, т.е.

х2 = b–L1 = 8–6,17 = 1,83 и f2 = 8,19. Из свойства унимодальности функции, так как f(x1) > f(x2), следует, что L2 = [1,83; 8] = 6,17.

На интервале L2 точка, симметричная х1, будет точкой следую-

щего измерения: х3 = 1,83+(в–х1) = 1,83+(8–4,617) = 5,21 и f(x3) = 79,13.

Значение f(x3) > f(x1), следовательно, интервал неопределенности сократится до L3 = [4,617; 8] = 3,383.

На интервале L3 точка, симметричная х2, будет точкой следующего измерения: х4 = 4,617+(в–х3) = 4,617+(8–5,83) = 6,84 и f(x4) = 109,09. Значение f(x4) > f(x3), следовательно, интервал неопределенности сократится до L4 = [5,81; 8] = 2,19.

51

На интервале L4 точка, симметричная х4, будет точкой следующего измерения: х5 = 5,81+(в–х4) = 5,81+(8–6,84) = 6,95 и f(x5) =

=113,46. Значение f(x5) > f(x4), следовательно, интервал неопределенности сократится до L4 = [6,84; 8] = 1,13.

На интервале L5 точка, симметричная х5, будет точкой следующего измерения: х6 = 6,84+(в–х5) = 6,84+(8–6,95) = 7,89 и f(x6) =

=144,17. Значение f(x6) > f(x5), следовательно, интервал неопределенности сократится до L6 = [6,95; 8] = 1,05.

Поскольку f6 > 140, то искомой точкой, т.е. решением является точка х6 = 7,89. Решение задачи: х*= 7,89 и f*(х) = 144,17.

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

Пример 14. Сравните эффективность методов одномерной условной оптимизации: дихотомии, Фибоначчи и золотого сечения.

Решение. Аналитическое вычисление критерия качества алгоритмов оптимизации удается только для одномерной задачи условной оптимизации: найти минимум одномерной унимодальной функции f(x), определенной в замкнутой области допустимых значений [a, b]:

Обозначим через Φ класс одномерных унимодальных функций. Пусть множество рассматриваемых алгоритмов решения задачи есть {A1, A2, A3}, где A1 – алгоритм дихотомического поиска, A2 – алгоритм Фибоначчи, A3 – алгоритм золотого сечения.

В качестве критерия оптимальности алгоритмов A={A1, A2, A3} на классе функций Φ используем максимальную длину текущего интервала неопределенности Dn(Φ, A) после n испытаний:

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

.

52

В результате n итераций (n+1 испытаний) алгоритма Фибоначчи длина текущего интервала неопределенности становится равной (b–a)/Fn. Отсюда следует, что

В результате n итерации (n+1 испытаний) алгоритма золотого сечения длина текущего интервала неопределенности становится равной (b–a)τn. Поэтому .

Сравним эффективности алгоритма дихотомии и алгоритма Фибоначчи, например, при n=14:

.

Таким образом, при n =14 алгоритм Фибоначчи почти в 3 раз эффективнее алгоритма деления пополам.

При n =14 сравним также эффективности алгоритма Фибоначчи и алгоритма золотого сечения:

Здесь учтено, что

 

 

 

 

 

Таким образом, при n = 14

 

 

 

 

 

 

 

 

алгоритм золотого сечения примерно на 40 % эффективнее алгоритма Фибоначчи.

ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ

1.Что называют отрезком неопределенности?

2.Какая функция называется унимодальной?

3.Какая функция называется выпуклой?

4.В какой точке функция имеет локальный минимум (максимум)?

5.В какой точке функция имеет глобальный минимум (максимум)?

6.Какая стратегия называется стратегией пассивного поиска?

7.Какая стратегия поиска называется поиском однородными парами?

8.Как оценивается эффективность однородного поиска?

9.Как проводится поиск по методу дихотомии?

10.Какова эффективность поиска по методу дихотомии?

53

11.Как оценивается необходимое количество опытов по методу дихотомии для получения минимально допустимого интервала неопределенности?

12.Какова сущность метода Фибоначчи?

13.Четырнадцатое число F14 в последовательности чисел Фибоначчи:

а) 611; b) 377; c) 233.

14.Можно ли определить заранее величину интервала неопределенности на некотором k-ом шаге при использовании метода Фибоначчи?

15.Чему будет равна длина интервала неопределенности при использовании метода золотого сечения, если реализовано 9 замеров, а длина исходного интервала равна 14?

а) ~0,298; b) 0,184; c) ~0,482.

16.Какие соотношения отрезков интервала неопределенности лежат в основе метода золотого сечения?

17.Как проводится поиск по методу золотого сечения?

18.Можно ли определить заранее величину интервала неопределенности на некотором k-ом шаге при использовании метода золотого сечения?

19.Какова эффективность поиска методом золотого сечения?

20.Как соотносятся величины интервалов неопределенности, полученные методом Фибоначчи и методом золотого сечения?

21.Методы чисел Фибоначчи и золотого сечения являются:

a)методами отыскания экстремумов многоэкстремальных функций;

b)методами отыскания только минимумов многоэкстремальных функций;

c)методами отыскания экстремумов унимодальных функций;

d)методами отыскания только максимумов многоэкстремальных функций;

e)методами отыскания только минимумов унимодальных функции.

УПРАЖНЕНИЯ

 

1. Определите положение минимум функции

f(x) = x2–6x+2 при

–2 х 4 применив стратегию пассивного

поиска (количество

опытов задайте самостоятельно).

 

54

2.Определите положение максимума функции f(x) = 4x–x2+3 на

интервале L0 = [–1; 5] применив метод однородных пар и проведя 10 измерений.

3.Определите методом дихотомии положение:

a) максимума функции у = 4х–х2–3, заданной на интервале

L = [0; 5], при ε = 0,01, l0 = 0,1L0;

b)минимума функции f(x)=5x+(x+1)2–1, заданной на интервале

L0 = [–4; 3] с точностью; l0 = 0,4; l0 0,01.

4.Определите методом золотого сечения положение:

a)минимума функции f(x) = x (x–4)+9, заданной на интервале

L0 = [–2; 8]; l0 = 1,0; f(x) ≤ 0,9;

b)максимума функции f(x) = 3x2–x3+2, заданной на интервале

L0 = [0; 2,5], при l0 = 0,3, Δf ≤ 0,01.

5.Определите методом Фибоначчи положение:

a)минимума функции f(x) = x (3+x (1–x(1–2x))), заданной на интервале L0 = [0; 5] при l0 = 0,5, l0 l0/2;

b) минимума функции f(x) = x2–2 e x , заданной на интервале

L0 = [–2 ;1,5] при l0 = 0,35, = 0,2.

6. При 0,5 х 1 и точности аппаратуры ε = 0,04 найдите положение максимума функции f(x) = x ln 4x (1 x) ln(1 x) . Положение максимума определите с точностью до 0,5.

7.Найдите минимум функции f(x) = x2–4x+3 при 0 х 4 одним из методов последовательного поиска.

8.Найти максимум функции f(x) = – x4 0,4 arctg(3x) при –1 х 1 сделав 20 экспериментов.

9. Найдите экстремум функции f(x) = – | x | e10x при

–1 х 0 с

точностью = 10–3.

 

10.Покажите, как влияет величина ε, соответствующая минимальному расстоянию между экспериментами, на сокращение интервала неопределенности при пассивном поиске.

55

ГРАДИЕНТНЫЙ ПОИСК

Градиент функции в некоторой точке xk направлен в сторону наискорейшего локального возрастания функции и перпендикулярен линии уровня (поверхности постоянного значения) функции f(x), проходящей через точку xk. Вектор, противоположный градиенту, называется антиградиентом и направлен в сторону наискорейшего убывания функции f(x). Выбирая в качестве направления спуска антиградиент (– f (xk)) в точке xk, мы приходим к итерационному процессу вида: xk+1=xk – hk f (xk), где hk>0 (k=0,1,2,…) – величина изменения переменной целевой функции за одну итерацию, называемая просто шагом поиска.

В координатной форме этот процесс записывается следующим

образом:

 

(k 1)

 

(k)

 

k f

 

x k

 

x

 

x

 

h

 

 

 

, i 1,2,...,n.

 

 

 

 

 

 

i

i

 

 

 

 

 

 

 

 

 

xi

 

 

 

 

 

 

 

 

 

 

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

ГРАДИЕНТНЫЕ МЕТОДЫ В ЗАДАЧАХ БЕЗ ОГРАНИЧЕНИЙ

МЕТОД РЕЛАКСАЦИИ

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

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

Характер движения по такому алгоритму можно описать

56

следующим образом: xjk+1=xjk, j {1,…,n}, j i; xik+1=xik+h sign f ( X к ) ,

xl

где Xк – точка, в которой последний раз определялись производные; хi – переменная с наибольшей по модулю производной в точке Хк;

1,

если

Z 0,

h – шаг поиска; signZ= 0,

если

Z 0,

 

еслиZ 0.

1,

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

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

n

f ( X )

 

2

, где – некоторое заранее заданное малое число.

(

)

x j

 

j 1

 

 

 

Пример 14. Найдите методом релаксации экстремум функции f(X) = 6x1+4x2+2x3–3x12–2x2213 x32.

Решение, Определим производные оптимизируемой функции f(X) по всем переменным:

f ( X )

= 6–6х1,

f ( X )

= 4–4х2,

f ( X )

= 2–

2

х3. Пусть поиск начинается

x

x

 

x

 

 

 

 

3

1

 

 

2

 

 

3

 

 

 

в точке Х0 = (0; 0; 3). Вычислим значения функции и производных в

0

) = 3,

f ( X

0 )

= 6,

f ( X

0 )

= 4,

f ( X

0 )

= 0. Наибольшая

этой точке: f(X

x1

 

x2

 

x3

 

 

 

 

 

 

 

 

 

по модулю производная соответствует переменной х1, осуществим перемещение точки исследования вдоль этой переменной до частного оптимума функции, Для этого освободим х1, зафиксируем значения переменных х20 = 0 и х30 = 3 и получим функцию одной переменной х1:

57

f1(x1,x20,x30) = 6x1+4*(х20)+2*(х30)–3x12–2*(х20)213 *(х30)2 = 6x1+0+6–

–3x12–0–3 = 6x1–3x12+3. Приравняв к нулю производную этой функции,

найдем точку частного оптимума:

f ( X

1 )

= 6–6х1

= 0→х1 = 1.

x1

 

 

 

 

 

Координаты новой точки исследования таковы: x1 = x11 = 1, х2 = х20 = 0 и

х3 = х30 = 3, т.е. Х1 = (1; 0; 3), f(X1) = 6.

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

функции:

f ( X 1 )

= 0,

f ( X

1 )

= 4,

f ( X

1 )

= 0. Наибольшая по модулю

x1

x2

 

x3

 

 

 

 

 

 

 

производная соответствует переменной х2. Зафиксировав значения

переменных х1= х11= 1 и х3= х31= 3 и освободив переменную х2, получим функцию одной переменной х2. Определим эту функцию:

f(x11,x231)= 6(x11)+4x2+2(x31)3(x11)22x22 13 (x31)2= 6+4x2+6 3 2x223= = 4x2–2x22+6. Приравняв к нулю производную полученной функции,

определим координаты новой точки исследования: f ( X 2 ) =4–4х2=0x2

х2 = 1. Координаты новой точки исследования таковы: x1= x11= 1,

х2= х22= 1 и х3= х31= 3, т.е. Х2 = (1; 1; 3), f(X2) = 10.

В точке Х2 вновь определяем значения производной целевой

функции:

f ( X 2 )

= 0,

f ( X

2 )

= 0,

f ( X

2 )

= 0.

x1

x2

 

x3

 

 

 

 

 

 

 

Поскольку в этой точке все производные обратились в ноль, следовательно, поиск заканчивается. Решение задачи: Х*= Х2 = (1,1,3), maxf(X*) = f(X2) = 10.

Пример 15. Найдите методом релаксации экстремум функции f(X) =x12+x22+1,2x1x2, поиск закончить при условии f(Х)0,001.

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

то метод релаксации совпадает с методом поочередного изменения переменных.

Пусть Х0=(1; 2). Освободим х1, оставив х2 закрепленной и равной х20=2. Тогда имеем: f(x1,x20) = x12 +(x20)2+l,2x1x20 = х12+2,4х1+4.

58

Точка следующего измерения находится из условия

f ( X

0 )

 

x1

 

 

 

 

=2x1+1,2x20=2x1+2,4 = 0, т.е. координаты новой точки таковы: x1= x11=

=–1,2 и х2 = х20 = 2, т.е. Х1 = (–1,2; 2).

Теперь закрепляем координату x1 на новом уровне и измеим х2. Функция цели опять становится функцией только одной переменной f(x11,x2) = (x11)2+x22+l,2x11=1,44+х22–1,44х2. Находим ее минимум из

 

f (x1

, x

2

)

= 2x2+1,2x11 = 2х2–1,44 = 0 и переходим в новую

условия

1

 

 

x2

 

 

 

 

 

 

точку x1= x11 = –1,2; х2 = х21 = 0,72, т.е. Х2 = (–1,2; 0,72).

 

Далее начинается следующий цикл, т.е. вновь возвращаемся к

переменной х1, к х2

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

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2

 

 

 

 

 

 

 

 

 

 

 

 

 

№ цикла

0

1

 

2

 

 

3

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

1,0

–1,2

 

–1,2

–0,43

 

–0,43

–0,15

–0,155

–0,056

 

–0,056

х2

2,0

2,0

 

0,72

0,72

 

0,259

0,259

0,093

0,093

 

0,033

f(Х)

7,4

2,56

 

0,92

0,09

 

0,030

0,011

0,0037

0,001

 

0,0005

 

 

 

 

 

 

 

 

 

 

 

 

 

После четвертого цикла значение функции достигло требуемой точности, т.е. f(Х)0,001. В качестве решения задачи принимается точка лучшего результата: minf(X*) = f(-0,056; 0,033) = 0,0005.

ГРАДИЕНТНЫЙ МЕТОД С ПОСТОЯННЫМ ШАГОМ

Основная проблема градиентных методов – это выбор рабочего шага hk. Достаточно малый шаг hk обеспечивает убывание функции, т.е. выполнение неравенства f(xkhk f (xk))<f(xk), но может привести к слишком большому количеству шагов, необходимых для достижения точки минимума. С другой стороны, слишком большой шаг может вызвать неожиданный рост функции или невыполнение условия убывания, или привести к блужданию около точки минимума. Проверка условия убывания на каждой итерации является довольно трудоемкой, поэтому в методе градиентного спуска с постоянным шагом (равномерный градиентный метод) задают hk= =const постоянным и достаточно малым, чтобы можно было использовать этот шаг на любой итерации. Необходимость выполнения большого количества итераций компенсируется минимальной трудоемкостью

59

каждой итерации, так как в этом случае вычисляется только градиент функции f (xk).

Для использования равномерного градиентного метода применяют следующий алгоритм:

1.Задают начальную точку исследования Х0, постоянный шаг , условия остановки алгоритма, как правило, | f k+1)| . Вычисляют значение градиента f k) – направление поиска, полагают к=0.

2.Определяют точку очередного эксперимента: хк+1к f (xk),

или в координатной форме: x(k 1) x(k) f (X k )

, i 1,2,...,n.

 

 

 

i

i

xi

 

 

 

 

 

 

 

 

3. Вычисляют значение градиента в точке хк+1: f (xk+1).

 

 

 

k 1

 

 

 

к+1

и

4. Если | f x

| , то поиск заканчивается, при этом: Х*= Х

 

 

 

 

 

 

 

 

f*= f(Xk+1). Иначе полагают к=к+1 и переходят к п. 2.

 

 

Пример 16.

Найдите минимум

функции

f(X) = 2x12+x22–x1x2

равномерным градиентным методом.

 

 

 

Решение.

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

зададим начальную точку исследования Х0=(2; 2), постоянный шаг= 0,3, условия остановки алгоритма | f k+1)| ε= 0,5. Значение целевой функции в начальной точке f(Х0) = 8. Определим градиент

целевой функции в этой точке:

f ( X )

= 4x1–x2

= 6,

f ( X ) = 2x2–x1 = 2.

 

 

 

 

 

 

 

 

 

x1

 

 

x2

 

 

 

 

Так как требуется найти минимум целевой функции, то точка

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

 

 

 

к+1

к

 

k

 

 

 

 

 

 

 

к+1

к

 

f ( X k )

 

х =х f

(x ) или в координатной форме: хi

i

 

 

 

 

 

 

xi

, i=1,2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для

к=1

определим

координаты

точки Хк:

 

 

 

f ( X

0 )

х1110

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 2 0,3*6=

 

 

1

= х2

0

 

f ( X

0 )

= 2 0,3*2=

 

1

 

 

 

 

0,2, х2

 

 

 

1,4, f(Х )=f(0,2;1,4)=1,76.

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычислим

 

значение

 

градиента

в

точке

Хк+11:

 

f ( X1) = 0,96,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

60