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

УМ_Пособие_09

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

 

31

1 - х2k-1= 1 – (k L*2k - )= 1 - k L*2k + = L*2k .

Отсюда имеем:

1 + = L*2k (1+k).

Тогда L*2k =(1 + ) \ (1+k).

План проведения эксперимента методом однородных пар показан на рис. 5.

k L*2k

0

х1

х2

 

 

 

х4

 

х2k-1

 

 

х2k1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L*2 k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L*2 k

 

L*2 k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L2k-1

 

 

 

 

Рис. 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательный поиск

Пусть необходимо найти минимум унимодальной функции f(x) на интервале [a,b]. Простейшим методом одномерного последовательного поиска является обычный перебор значений минимизируемой функции f(x) в конечном числе точек хj (j=l,…,n), попарно равномерно распределенных на интервале [a,b], с выбором наименьшего значения f(x*)=min f(xj). Значение x*j в силу свойства унимодальности может быть

приближенно принято за искомое оптимальное значение. Очевидно, точность такого процесса определяется количеством выбранных точек n, т.е. количеством измерений функции f(x), называемых для краткости экспериментами, и характеризуется интервалом неопределенности Ln, полученным после проведения всех n экспериментов и равным 2L0/(n+l). Эффективность процесса поиска можно оценить отношением

(L0/Ln)=(n+1)/2.

Равномерное распределение всех экспериментов на интервале поиска [a,b] не является наилучшим. Если результаты каждого измерения использовать при выборе точки следующего

2-k)

32

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

Метод дихотомии

Метод дихотомии является самым естественным и наиболее распространенным на практике. Он был известен еще

вдревней Греции.

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

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

интервале

L2=

1

 

 

провести

еще пару экспериментов, то

2

2

 

 

 

 

 

 

 

 

 

 

 

 

получим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L4

 

1

(

1

 

 

)

 

 

1

 

3

 

2

2

 

2

4

 

 

 

 

 

 

2

 

 

 

4

 

Если в L4 провести еще пару экспериментов, то можно получить

L

1

(

1

 

3

)

 

1

 

7

 

 

 

 

 

6

2

4

4

2

8

8

 

Продолжая действовать по этому алгоритму, после k пар экспериментов получим интервал неопределенности L2k=2-k+(l-

.

План проведения эксперимента методом дихотомии приведен на рис.6.

1

\2

 

 

 

1\2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1+ )\2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

\2

 

 

(1+3 )\4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1+7 )\8

 

 

 

 

 

 

Рис. 6

 

 

 

 

 

 

 

 

 

 

 

 

33

Т.е. при использовании метода дихотомии интервал неопределенности Ln после проведения k=n/2 пар экспериментов практически будет равен L0/2n/2. Эффективность

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

(L0/Ln)дих=2n/2.

Отсюда видно, что с ростом n эффективность метода дихотомии растет по сравнению с простым перебором. Уже при n=10 эффективность метода дихотомии примерно в шесть раз

выше метода перебора.

 

 

 

 

 

Для

сокращения

 

единичного

интервала

неопределенности до размера l0

методом

дихотомии

потребуется

сделать n

2

ln

1

экспериментов. Так,

ln 2

l0

 

 

 

 

 

если l0=0.01, то n=14. Таким образом, видно, что эффективность метода дихотомии экспоненциально возрастает с ростом n.

Для произвольного интервала L0=[а, в] эта формула

будет иметь вид n

2

ln

(b a)

.

 

 

 

ln 2

 

l0

Алгоритм метода состоит из следующих этапов:

1.Исходный интервал L0 =[a,b] исследования делится

пополам.

2.Вблизи точки деления (по разные ее стороны) дважды вычисляется значение целевой функции у(х1), у(х2), где

/2; x2=a+L0/2+ /2, а - наименьший интервал

изменения переменной х, при котором возможно обнаружить

отличие между y(х1) и у(х2).

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

Пример 4. Найти максимум функции у=12х-2х2 методом дихотомии, если отрезок, на котором выполняются замеры

L0=[0,10], а =0.2 и l0=1.

34

Решение. Число необходимых замеров, необходимых для получения интервал неопределенности заданной точности можно определить с помощью формулы:

 

 

 

n

2

ln

1

 

 

2

 

ln

9,8

8.

 

 

 

 

 

 

 

 

l0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln 2

 

 

ln 2

0,8

 

 

 

 

 

 

 

 

 

Согласно оптимальной стратегии поиска первые два

замера необходимо выполнить в

точках

x

 

10

4,9 и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

10

 

5,1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Значения функции в этих точках будут следующие:

 

 

 

у1=12х1-2х21=12*4.9-2(4.9)2 11;

 

 

 

 

 

 

 

 

у2=12х2-2х22=12*5.1-2(5.1)2 9.

 

 

 

 

 

 

 

 

Таким образом, интервал неопределенности сократился

до L2=[0;5.1].

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Снова

выбираем

 

 

две

 

 

точки

 

эксперимента

x

 

5,1

 

2,45

и

x

 

 

 

5,1

2,65,

вблизи

центра

 

 

4

 

3

2

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

интервала

 

L2

и получаем у3=17.5, у4=17.8. Интервал

неопределенности стал L4=[2.45,5.1].

 

 

 

 

 

 

 

 

Далее находим

х5=3.63 и

x6=3.83,

в

которых

y5>y6.

Следовательно, получим интервал L6=[2.45,3.85], на котором определяем х7=3.05 и х8=3.25, где у7=18, у8=17.8. Интервал неопределенности после четырех пар экспериментов сократился до L8*=[2.45,3.25], 18=0.8<10. Принимаем ymax= y7=18. Этот максимум достигается в точке х=3.05. Нетрудно убедится, что максимальное значение функции f(x) действительно равно 18 и достигается в точке х=3.

Метод Фибоначчи

Корни этого метода восходят к работам Фибоначчи и далее к ранним исследованиям Эвклида. Этот метод обеспечивает наилучшую из всех возможных стратегию поиска, позволяя после n измерений свести к минимуму интервал неопределенности.

35

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

Lj=Lj+1+Lj+2

Исключения из этого правила составляют лишь два эксперимента. Так как проведение первого эксперимента не меняет начальный интервал неопределенности, то следует считать L0=L1. Проведение последнего эксперимента фактически соответствует методу дихотомии, поэтому Ln Ln-1/2

Пусть величина

b a

. Тогда b-a = Fn , т.е.

 

 

Fn

2

 

весь интервал исследования можно разделить на

частей Fn,

причем каждая часть будет иметь длину, меньшую

( < ).

Разобьем отрезок [a,b] на три части с длинами Fn-2 ,

Fn-3 , Fn-3 . (Это можно сделать, потому что Fn = Fn-1 + Fn-2 = Fn-2 + Fn-3 + Fn-2). Точки деления x1 и x2 определяются по

формулам (рис.7):

x1 a Fn 2 , x2 x1 Fn 3 a Fn 1 .

Рис. 7 В найденных точках вычисляются значения целевой

функции у(х1), у(х2) и среди них выбирается большее при поиске максимума (соответственно меньшее - при поиске минимума). Если искомое экстремальное значение достигнуто в точке xi, то в качестве всего интервала выбирается интервал [a,xi]. В противном случае [b,xi]. В полученном интервале находится точка замера, где значение функции было экстремальным. Для

36

продолжения поиска необходимо точку следующего замера расположить симметрично этому имеющемуся замеру. Далее поиск осуществляется аналогично рассмотренному. На

последнем шаге длина интервала будет равна F3

=3 , а

точки деления разделят его

на три отрезка

длиной

F1 =F0 = . Таким образом,

точка искомого экстремума

определяется с точностью 2 .

Из сказанного нетрудно установить, что для любого (n- k)-го эксперимента справедлива формула

Ln-k=Fk+1Ln ,

где через Fk обозначены числа Фибоначчи

В алгоритме используется то свойство чисел ряда Фибоначчи, что очередной член ряда равен .сумме двух предыдущих, т.е.

Fk=Fk-1+Fk-2, где F0=F1=1, k=2,3,…

Эффективность метода Фибоначчи наивысшая из рассматриваемых методов. Она характеризуется величиной

(L0/Ln)фиб=(L1/Ln)фиб=Fn и при n=10 превышает метод дихотомии более, чем в 2,5 раза. С ростом n преимущество метода еще

больше возрастает. Недостаток метода состоит в том, что им нельзя пользоваться, не зная заранее общего числа экспериментов n. Если поиск методом Фибоначчи начат, то на любом шаге действия определяются просто: каждый последующий эксперимент располагается симметрично относительно предыдущего, попавшего в этот же интервал неопределенности. Однако для определения места приложения первых двух экспериментов необходимо найти величину Ln, которая определяется по формуле L2= L1(Fn-1/Fn) и зависит от числа экспериментов n.

Алгоритм метода Фибоначчи следующий:

1. По заданной точности ε рассчитывается вспомогательное число

N b a .

2. Для полученного значения N находится такое число Фибоначчи Fn, чтобы выполнялось неравенство Fn-1<N Fn.

37

3. Определяется минимальный шаг поиска по формуле

m b a . Fn

4. Рассчитывается значение функции f(x) в начале интервала, т.е. f(a).

5. Следующая точка, в которой вычисляется значение

f(x): х1n+mFn-2.

6. Если f(x1)>f(a) (шаг удачный), то следующая точка определяется как x2=x1+mFn-3; при f(x1)<f(a) (шаг неудачный) –

х21-mFn-3.

7. Последующие шаги выполняются с уменьшающейся величиной шага, которая для i-го шага будет xi mFn j 2 в

соответствии со следующим правилом. Если при выполнении шага значение функции в точке xi+1=xi+ xi оказывается больше, т.е. f(xi+1)>f(xi) (шаг удачный), то следующий (i+2)-й шаг выполняется из точки хi+1: xi+2=xi+1+ xi+1. Если i-й шаг неудачный, т.е. f(x++1)<f(xi), то следующий (i+2)-й шаг выполняется из точки хj, т.е. xi+2=xi- xi+1.

Указанный процесс продолжим до тех пор, пока не будут исчерпаны все числа Фибоначчи в убывающей последовательности. Точка последнего измерения берется посередине отрезка Ln-1.

Пример 5. Найти положение максимума функции у=12х2х2 методом Фибоначчи. Максимально допустимый интервал неопределенности 10=0.1L0. Отрезок, на котором задана функция L0=[xн,xк]=10, где хн=0, хк=10. Минимально допустимый интервал неопределенности, соответствующий минимальному расстоянию между экспериментами, при котором они различны =0.01.

 

Решение.

В соответствии с алгоритмом найдем

N=

b a

=

10 0

= 10. Имеем F5<N=10 F6, откуда Fn = F6 = 13 и

 

 

1

 

 

 

 

 

n=6.

 

 

 

 

 

 

 

38

 

 

 

 

Определим

максимальный

шаг

поиска:

m

xк

xн

 

10

0.77 . Вычислим в

начале

интервала (в

 

 

 

 

 

Fn

13

 

 

 

 

 

 

 

точке а=0) значение исследуемой функции: f(0)=0.

Найдем точку х1: x1н+ mFn-2= хн+ mF4=0+0.77*5=3.85, в

которой вычислим значение y1: у1=46-29.6=16.4.

Т.к. f(x1)>f(a) (шаг удачный), то следующая точка х2 определяется по формуле: x2=x1+mFn- 31+F3=3.85+0.77*3=6.42,а значение функции у2=77-83=-6.

Поскольку y1>y2, получим L2=[0;6.42].

Так как f(x2)<f(x1) (шаг неудачный), то, в соответствии с алгоритмом, следующий шаг выполняется из точки х1 т.е. xi+1=

х3 = x1 – mFn-i-2=x1 – mF6-2-2=3.85-0.77*2=2.31; у3=27.7-10.8=16.9.

Из результатов вычисления значений функции следует, что

L3=[0;3.85].

Так как y3>y1 (шаг удачный), то направление шага (т.е. знак приращения) не меняется, и следующий шаг выполняется из точки х3: х43 – mF1=2.31-0.77*1=1.54, у4=18.5-4.74=13.76.

Из условия у34 следует, что L4=[1.54;3.85].

Так как у43 (шаг неудачный), то меняется направление

шага:

х54 + mF0=2.31+0.77*l=3.1, у5=37.2+19.2=18. Из условия у53 следует, что L5=[2.31;3.85].

Точка последнего измерения x6 находится путем деления отрезка L5 пополам: x6=3.08 т.е. за шесть испытаний получаем y6=18. Следовательно, х*=3.08, f(х*)=18.

Метод золотого сечения

Метод Фибоначчи требует предварительного знания необходимого числа опытов. Однако задача поиска может быть поставлена таким образом, что необходимо найти не собственно максимум, а то значение аргумента, при котором выполняется некоторое условие, например f(x) Y. В этом случае оценить заранее требуемое число измерений не представляется возможным. Значит, нельзя определить и положение первого эксперимента для поиска по методу Фибоначчи.

39

Избавиться от зависимости первого опыта от числа опытов позволяет метод золотого сечения. Этот метод, уступая несколько методу Фибоначчи, все же существенно превосходит по эффективности метод дихотомии. Метод золотого сечения, как и метод Фибоначчи, требует выполнения условия Lj=Lj+1+Lj+2. Однако в отличие от последнего он предполагает постоянство отношений длин последовательных интервалов

неопределенности: Lj/Lj+1=Lj+1/Lj+2=C.

Последнее соотношение и обусловило название метода. Золотым сечением принято называть деление отрезка на две части так, чтобы отношение всего отрезка к большей части равнялось отношению большей части к меньшей. Разделив первое соотношение на Lj+1 и воспользовавшись вторым соотношением , получим квадратное уравнение относительно параметра С: С2-С-1=0. Единственным положительным корнем

этого уравнения является C (1 5) / 2 1,618.

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

делается на расстоянии L1

L0

от любого края исходного

C

 

 

интервала неопределенности, где L0=b-a. Второе измерение делается симметрично первому. Поэтому координаты первых

двух замеров определяются по формулам: x a

b a

,

 

 

1

c

 

 

 

 

 

 

x2

b

b a

.

 

 

 

 

 

 

 

c

 

 

Два замера позволяют сократить исходный интервал неопределенностей до величины L2 = x2 - а, если искомое экстремальное значение функции достигается в точке x1, или до величины L2=b-x1 , если экстремальное значение достигается в точке x2. В полученном интервале уже имеется один замер, следующий располагается симметрично ему.

Выполняем замеры до тех пор, пока величина интервала, содержащая искомый экстремум, не сократится до величины

L1≤ε.

40

Нетрудно видеть, что после проведения n экспериментов интервал неопределенности станет Ln=L0/Cn-1. Эффективность метода характеризуется величиной (L0/Ln)зол=Cn-1.

Приведем взаимное расположение первых двух измерений по методу золотого сечения на рис.8.

 

1\

 

1\ 2

 

х2

х1

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1\

 

 

 

 

 

 

 

1\

 

 

 

 

 

 

 

 

Рис. 8

Математик Люкас вывел уравнение, связывающее числа Фибоначчи Fn и величину С. При больших n получается

Fn Cn+1/ 5 . Это соотношение дает возможность получить связь интервалов неопределенности Ln после n опытов при методе золотого сечения и при методе Фибоначчи:

(Ln)зол/(Ln) Сn+1/( 5 Cn-1)=C2/ 5 =1,17

Пример 6. Найти значение аргумента, при котором значение функции

у=12х-2х2, заданной на интервале L0=10, будет у 17.6.

Решение. Применяя метод "золотого сечения", получим

точку первого измерения L

L0

 

 

10

: x1=6.2 и

 

 

1

C

 

1.62

 

 

y1= y(х1)=-2.48.

Второе измерение выполняется симметрично первому, т.е. х2=10-x1=3.8 и у2=17. Из свойства унимодальности функции y=f(x) следует, что L2=[0;6.2].

Из условия Lj+1=Lj-1-Lj получим х31-x2=6.2-3.8=2.4, а

у3=28-12=16, откуда L3=[2.4,6.2].

Точку четвертого измерения х4 выполняем симметрично точке х2, т.е. x412+x3=6.2-3.8+2.4=4.8 и у4=57.6-46=11.6. Из условия у24 следует, что L2=[2.4,4.8]. Определяем положение пятого измерения x5423=4.8-3.8-2.4=3.4; у5=40.8-23=17.8.