- •10. Численные методы однопараметрической оптимизации
- •10.1. Однопараметрические задачи оптимизации. Классификация. Основные термины
- •10.2. Пассивные методы однопараметрической оптимизации
- •10.3. Последовательные регулярные методы. Дихотомия
- •10.4. Метод золотого сечения
- •10.5. Метод Фибоначчи
- •10.6. Аппроксимационные методы. Метод ломаных
- •10.6. 1. Метод ломаных (линейная аппроксимация)
- •10.7. Метод парабол (квадратичная аппроксимация)
- •10.7.1. Метод парабол с использованием симметричной точки
- •10.7.2. Универсальный алгоритм метода парабол
- •10.7.3. Аппроксимация по лучшим точкам
10.4. Метод золотого сечения
Основная идея данного метода – сокращение числа nш вычислений функции на каждом шаге (кроме первого) до 1 (минимально возможного значения) с дальнейшим использованием при поиске минимума второй пробной точки каждого шага, которая попадает внутрь нового доверительного интервала. Несмотря на то, что доверительный интервал сокращается при этом существенно менее, чем в два раза (в отличие от дихотомии), данный метод за счёт уменьшения nш работает в общем значительно быстрее.
Золотым сечением отрезка [a,b] называется такое его деление промежуточной точкой с, при котором выполняется соотношение (рис 10.12 а), где ξ – коэффициент золотого сечения.
а б
Рис 10.12. Прямое и обратное золотые сечения отрезка
Выразим через и отрезок ab отрезки ас и cb: аc = ab; cb= ac = 2 ab .
Из условия аc + cb = ab после подстановки данных выражений и сокращения на аb получим следующее квадратное уравнение относительно :
2 + - 1 = 0 .
Решая его, находим корни:
Отбрасывая отрицательный корень, получим искомую величину отношения:
Разбивать отрезок [a,b] можно не только в прямом, но и в обратном направлении – от b к a. Аналогичная точка d лежит симметрично с относительно средней точки интервала (a+b)/2 (рис.10.12 б).
Величину отношения ad/ab получим, вычитая из 1:
Точки d, с, задающие обратное и прямое разбиение отрезка в золотом сечении, обладают следующими свойствами.
1. Если отбросить часть отрезка [а,d], то с – золотое сечение оставшейся части [d, b].
2. Если отбросить часть отрезка [с, b], то d – золотое сечение оставшейся части [a, с].
Данные свойства можно доказать непосредственной подстановкой значений
Допустим, необходимо с точностью найти минимум унимодальной функции F(x) на [a,b].
Предварительные действия (Шаг 0).
Доверительный отрезок принимаем равным заданному: а0 = а , b0 = b .
Шаги i (i>0) выполняются в цикле при выполнении условия (bi - a i >).
Шаг 1 . 1. Расчет положения двух пробных точек:
х2 =а0 + ( b0 - а0 ) а0 + 0,618 ( b0 - а0 );
х1 =( b0 + а0 ) - x2 а0 + 0,382( b0 - а0 ).
2. Расчет значений функций F(x1) и F(x2).
3. Анализ значений функции в точках х1 , х2 и изменение доверительного отрезка по аналогии с дихотомией:
а) при F(x1) F(x2) принимаем: a1 = х1 , х1 = х2 , b1 = b0 ,
б) при F(x1) < F(x2) принимаем: a1 = а0 , х2 = х1 , b1 = х2 .
4. Проверка окончания цикла: если (b1 - a1 ) > -продолжение цикла, иначе - выход.
Шаги i (i>1) . Из предыдущей итерации (i-1) известно одно значение функции F(x) во внутренней точке х доверительного отрезка [ai-1; x i-1]. Поэтому для сокращения достаточно ввести только одну новую пробную точку.
1. Расчет положения новой пробной точки: х = (bi-1 + аi-1) - х, расчет значения функции F(x).
2. Упорядочение пробных точек х, х и значений функции в них:
если (х < х), то { х1 = х; F(x1)=F(x); х2 = х ; F(x2)=F(x) };
иначе { х1 = х ; F(x1)=F(x) ; х2 = х ; F(x2)=F(x) }.
Пункты 3 и 4 совпадают с шагом 1.
Скорость сходимости и точность метода. Так как на каждом шаге длина доверительного отрезка сокращается в = 1/ 1,618 раз, то длина [a1 ,b1] связана с длиной [a, b] следующим образом: b1 - a1 = (b0 - a0 ) = (b - a ).
По аналогии для произвольного шага k длина доверительного отрезка: bk - ak = k (b - a).
Процесс заканчивается, когда выполняется неравенство bk - ak = k(b - a) .
Отсюда следует, что номер шага k, на котором достигается требуемая точность , равен k() = ]log (b - a)/ [ = ]log M [.
На первом шаге выполняется два вычисления целевой функции, на всех последующих nш=1. Поэтому полное число необходимых вычислений F(х)
п() =1+ nш k() = 1+] log ((b - a)/)[ .
Зависимость (п) находим из равенства (b -a)/ = (n-1): (п) = (b - a) (n-1).
Асимптотические скорости роста зависимостей (n) и n () для метода золотого сечения:
(n) = O[(b-a) n];
п() = O [log ((b - a)/)] =O [log M].
Данный метод является ещё более быстрым по сравнению с дихотомией, так как в формуле для п() основание логарифма 1,618 < 2. Как и дихотомия, он является регулярным. Также он принадлежит к группе так называемых симметричных методов.
Последовательный метод определения экстремума называют симметричным, если на каждом i–том шаге поиска экстремума на доверительном отрезке [ai,bi] уже известна одна пробная точка x1 и значение целевой функции F(x1) в ней. Вторая (новая) пробная точка x2 определяется как симметричная x1 относительно средней точки (ai+bi)/2 доверительного интервала: x2 = ai+ bi - x1.
Метод дихотомии не является симметричным.
Замечание 1. Известная пробная точка x1 в симметричном методе может быть как меньше, так и больше значения (ai+bi)/2 .
Замечание 2. Свойство симметрии метода позволяет значительно упростить расчёт новых пробных точек. Формула x2 = ai+ bi - x1 позволяет рассчитать вторую пробную точку x2 независимо от того, как первая точка x1 расположена относительно средней точки доверительного отрезка (до или после).
Замечание 3. В практических расчетах при большом числе итераций из-за накопления погрешностей вычисления положение пробной точки x1 на отрезках [ai,bi] может значительно отклоняться от золотого сечения. При этом, соответственно, полное число необходимых вычислений целевой функции п() будет увеличиваться. Для предотвращения этого явления, положение точки x с известным значением функции можно периодически уточнять по формулам х=a+(b-a) либо х=a+(1-)(b-a) в зависимости от того, к какому из данных значений она ближе.
Пример 1. Найти минимум функции F(х) = х2 –2х на доверительном отрезке [0,2;2] по методу золотого сечения при заданной точности =0,5.
Решение.
Шаг 0. а0 = а , b0 = b .
Шаг 1. Расчет положения двух пробных точек: х2=а0+(b0–а0) 1,3124; х1=(b0+а0)-х2) 0,8876. Значения функции в них: F(x1) = -0,9874; F(x2) = -0,7768. Так как F(x1)<F(x2), то отбрасываем часть доверительного отрезка [x2;b0]. Получаем новый доверительный отрезок [а1;b1] = [0,2;1,3124].
b1-а1 = 1,1124 > = 0,5; продолжаем поиск.
Шаг 2. Границы доверительного отрезка а1 = 0,2; b1 = 1,3124 . На нем известно значение функции в точке х 0,8876, F(x) = -0,9874.
Новая пробная точка: х =( b1+а1) - 0,8876 0,6248. Значение функции в новой точке х: F(x) = -0,8592.
Поскольку х<х, то принимаем х1 = х ; F(x1) = F(x); х2 = х; F(x2) = F(x).
Так как F(x1) > F(x2), то отбрасываем часть доверительного отрезка [a1;x1]. Получаем новый отрезок [а2;b2] = [0,6246;1,3124].
b2-а2 = 0,6878 > = 0,5; продолжаем поиск.
Шаг 3. а2= 0,6246; b2= 1,3124 . Известно значение функции в точке х 0,8876, F(x) = -0,9874.
Новая пробная точка: х = (b2+а2) - 0,8876 1,0494.. Значение функции в новой точке х: F(x)= --0,9976.
Поскольку х>х, то принимаем х1= х; F(x1) = F(x); х2=х ; F(x2) = F(x ).
Так как F(x1)>F(x2), то отбрасываем часть доверительного отрезка [a1; x1] и получаем отрезок [а3; b3] = [0,8876; 1,3124].
b3-а3=0,4248 < =0,5; следовательно, поиск завершен.
Ответ. Выполнено 3 шага, использовано 4 пробных точки. Найден итоговый доверительный интервал: [а3 , b3] = [0,8876; 1,3124] длины 0,4248.
Как видно из Примера 1 п.10.3, число необходимых вычислений функции сократилось по сравнению с методом дихотомии с 6 до 4.
Вопросы для проверки знаний.
1. Что называют а) золотым сечением отрезка, б) прямым и обратным золотым сечением отрезка ?
2. Как практически рассчитать точки, задающие прямое и обратное золотое сечение отрезка ?
3. Какое свойство золотого сечения используется при сокращении доверительного отрезка ?
4. Какие методы называют симметричными и как симметричность используется для упрощения расчета пробных точек ?
5. Как выполняются первый и последующие шаги в методе золотого сечения ?
6. За счет чего метод золотого сечения является более быстрым по сравнению с дихотомией ?
Практические задания.
Решить по методу золотого сечения задачи 1)-13) из п.10.2.