ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи

Одним из методов однопараметрической оптимизации является метод Фибоначчи.

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

Предположим, что имеется интервал неопределенности (x1,x3) и известно значение функции f(x2) внутри этого интервала (см. рис. 3). Если можно вычислить функцию всего один раз в точке х4, то где следует поместить точку х4, для того чтобы получить наименьший возможный интервал неопределенности?

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru


Рис.3.

Положим х2–х1=L и х3–х2=R, причем L > R, как показано на рис. 3, и эти значения будут фиксированы, если известны x1, x2 и х3. Если х4 находится в интервале (х1; х2), то:

1. если f(x4) < f(x2), то новым интервалом неопределенности будет (x1,x2) длиной х2–х1=L ;

2. если f(х4)>f(x2), то новым интервалом неопределенности будет (х43) длиной х3–х4.

Поскольку не известно, какая из этих ситуаций будет иметь место, выберем х4 таким образом, чтобы минимизировать наибольшую из длин х34 и х21. Достигнуть этого можно, сделав длины х3 – х4 и х2 – х1 равными т.е. поместив х4 внутри интервала симметрично относительно точки х2, уже лежащей внутри интервала. Любое другое положение точки х4 может привести к тому, что полученный интервал будет больше L. Помещая х4 симметрично относительно х2, мы ничем не рискуем в любом случае. Если окажется, что можно выполнить еще одно вычисление функции, то следует применить описанную процедуру к интервалу (х1, х2), в котором уже есть значение функции, вычисленное в точке х4, или к интервалу (х43), в котором уже есть значение функции, вычисленное в точке х2.

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

На n -м вычислении n -ю точку следует поместить симметрично по отношению к (n — 1) -й точке. Положение этой последней точки в принципе зависит от нас. Для того чтобы получить наибольшее уменьшение интервала на данном этапе, следует разделить пополам предыдущий интервал. Тогда точка х будет совпадать с точкой хn-1. Однако при этом мы не получаем никакой новой информации. Обычно точки хn-1 и хn отстоят друг от друга на достаточном расстоянии, чтобы определить, в какой половине, левой или правой, находится интервал неопределенности. Они помещаются на расстоянии е/2 по обе стороны от середины отрезка Ln-1 ; можно самим задать величину е или выбрать эту величину равной минимально возможному расстоянию между двумя точками.

Интервал неопределенности будет иметь длину Ln, следовательно, Ln-1 = 2Ln - е (рис.4), нижняя часть). На предыдущем этапе точки хn-1 и хn-2 должны быть помещены симметрично внутри интервала Ln-2 на расстоянии Ln-2 от концов этого интервала. Следовательно, Ln-2 = Ln-1+Ln (pис.4, средняя часть).

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru


Рис. 4.

Замечание. Из рисунка ясно, что на предпоследнем этапе хn-2 остается в качестве внутренней точки.

Аналогично Ln-3=Ln-2+Ln-1 (pис. 4, верхняя часть)

В общем случае Lj-1=Lj + Lj+1 при 1<j<n.

Таким образом,

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

Если определить последовательность чисел Фибоначчи следующим образом: F0=1, F1=l, и Fk=Fk-1+Fk-2 для k = 2, 3,..., то

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru (1)

Если начальный интервал (a;b) имеет длину L = (b-а), то

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru ( 2)

Следовательно, произведя n вычислений функции, мы уменьшим начальный интервал неопределенности в l/Fn раз по сравнению с его начальной длиной (пренебрегая е), и это - наилучший результат.

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

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru ( 3)

После того как найдено положение первой точки, числа Фибоначчи больше не нужны. Используемое значение е может определяться из практических соображений. Оно должно быть меньше L1\Fn+x, в противном случае мы будем напрасно тратить время на вычисление функции.

Таким образом, поиск методом Фибоначчи, названный так ввиду появления при поиске чисел Фибоначчи, является итерационной процедурой. В процессе поиска интервала (x1; x2) с точкой х2, уже лежащей в этом интервале, следующая точка х2 всегда выбирается такой, что х3–х4 = х2–х1 или х41 = х3-x2, т.е. x4123.

Если f(x2) = f2 и f(x4) = f4, то можно рассмотреть четыре случая (рис. 5).

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru


Рис.5.

Следующий из методов одномерной оптимизаци называется методом "золотого сечения".

Не всегда можно заранее определить, сколько раз придется вычислять функцию. В методе Фибоначчи это нужно знать для определения L2, т.е. положения начальной точки (см. уравнение 3).

Метод "золотого сечения" почти столь же эффективен, как и метод Фибоначчи, однако при этом не требуется знать n - количество вычислений функции, определяемое вначале. После того как выполнено j вычислений, исходя из тех же соображений, что и ранее (см. уравнение 1), записываем

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru ( 4)

Однако если n не известно, то мы не можем использовать условие Ln-1 = Ln - е. Если отношение последующих интервалов будет постоянным, т.е.

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru ( 5)

то

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

т.е. ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

Таким образом, ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru , откуда ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru . Тогда

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

Следовательно, ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru , т.е.

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru ( 6)

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

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

то из уравнения (3) видно, что поиск методом "золотого сечения" является предельной формой поиска методом Фибоначчи. Название "золотое сечение" произошло от названия отношения в уравнении (5). Видно, что Lj-1 делится на две части так, что отношение целого к большей части равно отношению большей части к меньшей, т.е. равно так называемому "золотому отношению".

Таким образом, если ищется интервал (х0, х3) и имеются два значения функции f1 и f2 в точках x1 и x2, то следует рассмотреть два случая (рис. 6).

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru


Рис. 6.

Метод гарантирует нахождение минимума в самых неблагоприятных условиях, однако он обладает медленной сходимостью.

Схема алгоритма метода "золотого сечения" представлена на рис.7

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru


Рис. 7.Схема алгоритма метода "золотого сечения".

Здесь c - константа,

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

При выводе x - координата точки, в которой функция F(x) имеет минимум (или максимум), FM – значение функции F(x) в этой точке.

Метод Ньютона

Следующий из рассматриваемых методов однопараметрической оптимизации является градиентным методом второго порядка. В нем при поиске экстремума целевой функции используется ее первые и вторые производные. Этот метод носит название метода Ньютона.

Метод применим для вогнутой (или выпуклой), функции F(x), что соответствует монотонности ее первой производной f(x).

Известно, что если функция F(x) имеет локальный минимум (или максимум) в точке ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru , то в этой точке градиент функции F(x) (вектор ее производных) равен нулю, т.е.

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

Следовательно, если функция F(x) дифференцируема, то для нахождения ее экстремума нужно решить уравнение

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru ( 7)

где ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru . ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru - корень уравнения (3.1), точка, то есть, координата в которой F'(x)=0, а функция F(x) имеет минимум (или максимум) (рис.8).

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru


Рис. 8.Вогнутая функция F(x) и ее производная f(x).

Алгоритм метода Ньютона сводится к линейному представлению функции f(x) и решению уравнения (7).

Разложим функцию f(x) в ряд Тейлора:

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

где hi=xi+1-xi.

Отбросим члены ряда, содержащие ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru .

В результате имеем:

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

Если в точке (xi+1) достигается экстремум функции F(x), то f(xi+1)=0.

Тогда

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

Отсюда точка экстремума равна:

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru ( 8)

Для нахождения экстремума функции F(x) необходимо на каждом шаге итерационного процесса поиска определить первую F1 и вторую F2 производные целевой функции F(x), т.е.

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

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

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru ( 9)

где

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

Словесный алгоритм метода Ньютона:

1. Выбираем начальную точку х. Если ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru ,то x=a, иначе x=b.

2. Находим приближение корня (xi+1) по выражению (8).

3. Итерационный процесс поиска продолжается до тех пор, пока

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru ( 10)

На основании (8) условие (10) можно записать как

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

В результате условие (8) будет иметь вид

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

В точке экстремума ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru производная ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru меняет знак.

Если в точке ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru функция F(x) имеет минимум, то производная ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru в окрестности ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru меняет знак с отрицательного на положительный, т.е. ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru является возрастающей функцией, значит, ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru (рис. 9 a).

Если в точке ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru функция F(x) имеет максимум, то производная ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru в окрестности ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru меняет знак с положительного на отрицательный, т.е. ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru является убывающей функцией, значит, ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru (рис. 9 b).

Следовательно, по знаку ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru можно судить: в точке ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru максимум или минимум функции F(x).

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru


Рис. 9.

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

ПЗ 6. Метод с использованием производной целевой функции. Метод Фибоначчи - student2.ru

Наши рекомендации