Федеральное агентство по образованию Уральский государственный технический университет - УПИ Г.М. Черногородова МЕТОДЫ ОПТИМИЗАЦИИ Безусловная оптимизация. Прямые методы поиска Методы одномерной оптимизации (часть 1) Конспект лекций Екатеринбург 2008 ОГЛАВЛЕНИЕ 5. БЕЗУСЛОВНАЯ ОПТИМИЗАЦИЯ. ПРЯМЫЕ МЕТОДЫ ПОИСКА …………………………......................................................................….3 5.1. Методы одномерной оптимизации…………………………................3 5.1.1. Постановка задачи и стратегии поиска…….…..…………...……..3 5.1.2. Метод равномерного поиска……………………..…………….......4 5.1.3. Метод деления интервала пополам……………….……………...10 5.1.4. Метод дихотомии……….....….…………………………………...13 2 5. БЕЗУСЛОВНАЯ ОПТИМИЗАЦИЯ ПРЯМЫЕ МЕТОДЫ ПОИСКА 5.1. Методы одномерной оптимизации 5.1.1. Постановка задачи и стратегии поиска Требуется найти безусловный минимум функции f ( x) одной переменной, т.е. такую точку x* R , что x* y z b0 . Поставленная задача одномерной минимизации может быть решена с помощью необходимых и достаточных условий безусловного экстремума. Однако проблема, возникающая при решении уравнения df ( x ) 0 , может dx оказаться весьма сложной. Более того, в практических задачах функция f ( x) может быть не задана в аналитическом виде или часто неизвестно, является ли она дифференцируемой. Поэтому получение численного решения поставленной задачи является актуальным. Замечание 1. Для методов одномерной минимизации типично задание априорной информации о положении точки минимума с помощью начального интервала неопределенности L [a0 , b0 ] (рис. 5.1). Предполагается, что точка минимума x * принадлежит интервалу L0, но ее точное значение неизвестно. Замечание 2. Большинство известных методов одномерной минимизации применяется для класса унимодальных функций. Определение 5.1. Функция f ( x) называется унимодальной на интервале L [a0 , b0 ] , если она достигает глобального минимума на [a0 , b0 ] в единственной точке x* , причем слева от x* эта функция строго убывает, а справа от x* строго возрастает. Если a0 y z x * , то f ( y ) f ( z ) , а если x* y z b0 , то f ( y ) f ( z ) (рис. 2.1, а). Отметим, что непрерывная строго выпуклая функция является унимодальной. Однако определению 5.1 могут удовлетворять и функции, не являющиеся непрерывными и выпуклыми (рис. 5.1, б). Замечание 3. Методы одномерной минимизации широко применяются в 3 методах первого и второго порядков для нахождения оптимальной величины шага. При этом левая граница начального интервала неопределенности, как правило, совпадает с началом координат, т.е. a0 = 0. а б Рис. 5.1 Существуют две принципиально различные стратегии выбора точек, в которых производится вычисление значений функции. Если все точки задаются заранее, до начала вычислений, – это пассивная (параллельная) стратегия. Если эти точки выбираются последовательно в процессе поиска с учетом результатов предыдущих вычислений – это последовательная стратегия. Примером реализации пассивной стратегии является метод равномерного поиска. Последовательную стратегию можно реализовать следующими способами: а) применением квадратичной и кубической интерполяции, где по нескольким вычисленным значениям функции строится интерполяционный полином, а его минимум указывает на очередное приближение искомой точки экстремума; б) построением последовательности вложенных друг в друга интервалов, каждый из которых содержит точку минимума. Стратегия поиска включает в себя три этапа: 1. Выбор начального интервала неопределенности. Границы [a0 , b0 ] интервала должны быть такими, чтобы функция f ( x) была унимодальной (см. определение 5.1). 4 2. Уменьшение интервала неопределенности. 3. Проверку условия окончания. Поиск заканчивается, когда длина текущего интервала неопределенности [ak , bk ] оказывается меньше установленной величины. Решение задачи xk выбирается из множества точек, принадлежащих последнему интервалу неопределенности. Замечание 4. В некоторых методах заранее задается или находится количество N вычислений функции. В этом случае продолжительность поиска ограничена. Для эвристического выбора начального интервала неопределенности можно применить алгоритм Свенна: 1) задать произвольно следующие параметры: x 0 – некоторую точку, t 0 – величину шага. Положить k 0 ; 2) вычислить значение функции в трех точках: x0 - t , x0 , x0 t ; 3) проверить условие окончания: а) если f ( x0 - t ) f ( x0 ) f ( x0 t ) , то начальный интервал неопределенности найден: [a0 , b0 ] = [ x0 - t; x0 t ] ; б) если f ( x0 - t ) f ( x0 ) f ( x0 t ) , то функция не является унимодальной, а требуемый интервал неопределенности не может быть найден. Вычисления при этом прекращаются (рекомендуется задать другую начальную точку x 0 ); в) если условие окончания не выполняется, то перейти к шагу 4; 4) определить величину ∆: а) если f ( x0 - t ) f ( x0 ) f ( x0 t ) ,то t; a0 x 0 ; x1 x 0 t; k 1; б) если f ( x0 - t ) f ( x0 ) f ( x0 t ) ,то t; b0 x 0 ; x1 x 0 t; k 1 ; 5) найти следующую точку x k 1 x k 2k ; 6) проверить условие убывания функции: а) если f ( x k 1 ) f ( x k ) и t , то a 0 x k ; если f ( x k 1 ) f ( x k ) и t , то b0 x k ; в обоих случаях положить k k 1 и перейти к шагу 5; 5 б) если f ( x k 1 ) f ( x k ) , процедура завершается. При t положить b0 x k 1 , а при t положить a0 x k 1 . В результате имеем [a0 , b0 ] – искомый начальный интервал неопределенности. Уменьшение интервала неопределенности, осуществляемое при использовании последовательной стратегии, производится на основании вычисления функции в двух точках текущего интервала. Свойство унимодальности позволяет определить, в каком из возможных интервалов точка минимума отсутствует. Пусть в точках у и z интервала [a, b] вычислены значения функции: f ( y) и f(z). Если f ( y) > f(z), то x* [a, y) и поэтому x* [ y, b] (рис. 5.2, а). Если f ( y ) < f(z), то x* [ z, b) и поэтому x* [a, z ] (рис. 5.2, б). Иными словами, в качестве нового интервала берется "гарантирующий интервал", наверняка содержащий точку минимума. Если f ( y) = f(z), в качестве нового интервала можно взять любой из изображённых на рис. 5.2. Для оценки эффективности алгоритмов уменьшения интервала неопределенности при заданном числе N вычислений функции введем критерий. Определение 5.2. Характеристикой R(N) относительного уменьшения начального интервала неопределенности называется отношение длины интервала, получаемого в результате N вычислений функции, к длине начального интервала неопределенности: R ( N ) а LN . L0 б 6 Рис. 5.2 ПРИМЕР 5.1. Найти начальный интервал неопределенности для поиска минимума функции f ( x) ( x - 5)2 . Воспользуемся алгоритмом Свенна. 1. Зададим x 0 1 и t 1. Положим k 0 . 20. Вычислим значения функции в точках x0 - t 0; x0 1; x0 t 2 : f (0) 25, f (1) 16, f (2) 9 . 30. Условия окончания не выполняются. 40. Так как f (0) f (1) f (2) , то 1, a0 1, x1 x 0 t 2, k 1 . 50. Найдем следующую точку x 2 x1 2 2 2 4 . 60. Так как f ( x 2 ) 1 f ( x1 ) и ∆ = 1, то a0 x1 2 . Положим k 2 и перейдем к шагу 5. 51. Найдем следующую точку x3 x 2 4 4 4 8 . 61. Так как f ( x3 ) 9 f ( x2 ) 1 и t 1 , то поиск завершён и правая граница b0 x 3 8 . Поэтому начальный интервал неопределенности имеет вид [a0 , b0 ] [2,8] . 5.1.2. Метод равномерного поиска Требуется найти безусловный минимум функции f ( x) одной переменной, * f ( x) . т.е. такую точку x R , что f ( x ) min xR * Метод относится к пассивным стратегиям. Задается начальный интервал неопределенности L 0 [a0 , b0 ] и количество вычислений функции N. Вычисления производятся в N равноотстоящих друг от друга точках (при этом интервал L0 делится на N 1 равных интервалов). Путем сравнения величин f ( xi ), i 1,..., N , определяется точка xk , в которой значение функции наименьшее. Искомая точка минимума x* считается заключенной в интервале [ xk -1 , xk 1 ] (см. рис. 5.3). 7 Алгоритм Шаг 1. Задать начальный интервал неопределенности L 0 [a0 , b0 ] , N – количество вычислений функции. Шаг 2. Вычислить точки xi a0 i (b0 a0 ) , i 1,..., N , равноотстоящие друг от N 1 друга. Шаг 3. Вычислить значения функции в N найденных точках: f ( xi ), i 1,..., N . Шаг 4. Среди точек xi ( i 1,..., N ) найти такую, в которой функция принимает f ( xi ) . наименьшее значение f ( xk ) 1min i N Шаг 5. Точка минимума x* принадлежит интервалу LN = [xk -1, xk+1], на котором в качестве приближённого решения может быть выбрана точка x* xk . Рис. 5.3 Для метода равномерного поиска характеристика относительного уменьшения начального интервала неопределенности находится по формуле R( N ) 2 , где N – количество вычислений функции. N 1 Замечание 5. Если задана величина R(N), то требуемое для достижения желаемой точности количество вычислений функции определяется как наименьшее целое число, удовлетворяющее условию N 8 2 1. R( N ) Разбиение интервала [a0 , b0 ] на N 1 равных частей используется также в методе перебора. Для решения задачи этим методом следует: а) вычислить точки xi, i 0,..., N 1 , равноотстоящие друг от друга; б) вычислить значения функции в найденных точках: f ( xi ), i 01,..., N 1 ; в) среди точек xi , i 0,..., N 1 , найти такую, в которой функция f ( xi ) . принимает наименьшее значение: f ( xk ) 1min i N 1 Погрешность нахождения точки минимума методом перебора не превосходит величины (b0 a0 ) . N 1 ПРИМЕР 5.2. Найти минимум функции f(х) = 2х2 – 12х. Воспользуемся алгоритмом равномерного поиска. 1. Найдем начальный интервал неопределенности методом Свенна: а) зададим начальную точку x 0 5 , шаг t 5 . Положим k 0 ; б) вычислим значение функции в трех точках: x0 t 0; x0 5; x0 t 10 : f ( x0 t ) 0; f ( x0 ) 10; f ( x0 t ) 80 ; в) так как f ( x0 t ) f ( x0 ) f ( x0 t ) , то начальный интервал неопределенности найден: L0 [0,10] . Зададим N 9 , чтобы L0 содержал N 1 10 равных подынтервалов. 2. Определим точки вычисления функции: xi 0 i (10 0) , i 1,..., 9 . 10 3. Вычислим значения функции в девяти точках: f (1) -10, f (2) -16, f (3) -18, f (4) 16, f (5) -10, f (6) 0, f (7) 14, f (8) 32, f (9) 54 . В точке x3 3 функция принимает наименьшее значение. 4. После девяти вычислений функции получаем интервал L9 = [2,4], в котором находится искомая точка минимума x* x3 3 . Заметим, что характеристика относительного уменьшения начального интервала неопределенности R( N ) 9 L9 4 2 2 0, 2 . L0 10 0 9 1 5.1.3. Метод деления интервала пополам Требуется найти безусловный минимум функции f ( x) одной переменной, * f ( x) . т.е. такую точку x* R , что f ( x ) min xR Метод относится к последовательным стратегиям и позволяет исключить из дальнейшего рассмотрения на каждой итерации в точности половину текущего интервала неопределенности. Задается начальный интервал неопределенности. Алгоритм уменьшения интервала основан на анализе величин функции в трёх точках, равномерно распределенных на текущем интервале. Условия окончания процесса поиска стандартные: поиск заканчивается, когда длина текущего интервала неопределенности оказывается меньше установленной величины. Алгоритм Шаг 1. Задать начальный интервал неопределенности L 0 [a0 , b0 ] и l 0 – требуемую точность. Шаг 2. Положить k 0 . Шаг 3. Вычислить функцию в средней точке: xkc Шаг 4. Вычислить точки: yk ak L2 k 4 , zk bk L2 k 4 ak bk , L2 k bk ak , f ( xkc ) . 2 и f ( yk ) , f ( zk ) . Заметим, что точки y k , xkc , zk делят интервал [a0 , b0 ] на четыре равные части. Шаг 5. Сравнить значения f ( yk ) и f ( xkc ) : а) если f ( yk ) f ( xkc ) , исключить интервал ( xkc1 , bk ] , положив bk 1 xkc , ak 1 ak . Средней точкой нового интервала становится точка y k : xkc 1 = y k (рис. 5.4, а). Перейти к шагу 7; б) если f ( yk ) f ( zk ) , перейти к шагу 6. Шаг 6. Сравнить f ( zk ) с f ( xkc ) : а) если f ( zk ) f ( xkc ) , исключить интервал [ak , xkc ) , положив ak 1 xkc , bk 1 bk . Средней точкой нового интервала становится точка zk : xkc 1 = zk 10 (рис. 5.4, б). Перейти к шагу 7; б) если f ( zk ) f ( xkc ) , исключить интервалы [ak , yk ) , ( zk , bk ] , положив ak yk , c c c bk 1 zk . Средней точкой нового интервала останется xk : xk 1 = xk (рис. 5.4, в). а б в Рис. 5.4 Шаг 7. Вычислить L2( k 1) bk 1 ak 1 и проверить условие окончания: а) если L2( k 1) bk 1 ak 1 l , то процесс поиска завершается и получаем x* L2( k 1) [ak 1 , bk 1 ] . В качестве приближенного решения можно взять середину последнего интервала x* xkc 1 ; б) если L2( k 1) l , то положить k k 1 и перейти к шагу 4. Для метода деления интервала пополам характеристика относительного уменьшения начального интервала неопределенности находится по формуле R( N ) 1 2 N 2 , где N – количество вычислений функции. Замечание 6. Средняя точка последовательно получаемых интервалов совпадает с одной из трех пробных точек, найденных на предыдущей итерации. Следовательно, на каждой итерации требуется два новых вычислений функции. Если задана величина R(N), то требуемое для достижения желаемой точности количество вычислений функции находится как наименьшее целое, удовлетворяющее условию N 2 ln R( N ) . ln 0,5 11 Текущие интервалы имеют четные номера L0 , L2 , L4 ,..., где индекс указывает на выполненное количество вычислений функции. ПРИМЕР 5.3. Найти минимум функции f ( x) 2 x 2 -12 x методом деления интервала пополам. 1. Зададим начальный интервал неопределенности L0 [0,10] . Пусть l 1. 2. Положим k 0 . 30. Вычислим x0c 0 10 5, L4 10 0 10, f ( x0c ) 10. 2 40. Вычислим: y1 a1 L2 4 0 L 5 5 1, 25; z1 b1 2 5 3, 75; 4 4 4 f ( y0 ) -17,5; f ( z0 ) 22,5 . 50. Сравним f ( y0 ) и f ( x1c ) . Так как f ( y0 ) 17,5 f ( x0c ) 10 , то положим a1 a0 0, b1 x1c 5, x1c y0 2,5 . 70. Получим L2 [0,5], | L2 | 5 l 1, k 1. Переходим к шагу 4. 41. Вычислим y1 a1 L2 4 0 L 5 5 1, 25; z1 b1 2 5 3, 75; 4 4 4 f ( y1 ) -11,875; f ( z1 ) -16,875 . 51. Сравним f ( y1 ) и f ( x1c ) = f ( y0 ) 17,3 . Так как f ( y1 ) -11,875 f ( x1c ) 17,3 , то перейдем к шагу 6. 61. Сравним f ( z1 ) и f ( x1c ) . Так как f ( z1 ) 16,875 f ( x1c ) 17,5 , то положим: a2 y1 1, 25; b2 z1 3, 75; x3c x1c 2,5 . 71. Получим L4 [1, 25;3,75], | L4 | 3,75 1, 25 2,5 l 1. Положим k 2 и переходим к шагу 4. 42. Вычислим y2 a2 f ( y2 ) 15, 47; L4 4 1, 25 L 2,5 2,5 1,875; z2 b2 4 3, 75 3,125; 4 4 4 f ( z2 ) 17,97 . 52. Сравним f ( y2 ) с f ( x2c ) f ( x1c ) 17,5 . Так как f ( y2 ) 15, 47 f ( x2c ) 17,5 , то переходим к шагу 6. 12 62. Сравним f ( z2 ) с f ( x2c ) 17,5 . Так как f ( z2 ) 17,97 f ( x2c ) 17,5 ; положим a3 x2c 2,5; b3 b2 3, 75; x3c z2 3,125 . 72. Получим L6 [2,5;3,75], | L6 | 3,75 - 2,5 1, 25 l 1 . Положим k 3 и переходим к шагу 4. 43. Вычислим: y3 a3 L6 4 2,5 L 1, 25 1, 25 2,81; z3 b3 6 3, 75 3, 43; 4 4 4 f ( y3 ) 17,93; f ( z3 ) 17, 62 . 53. Сравним f ( y3 ) с f ( x3c ) f ( z2 ) 17,97 . f ( y3 ) 17,93 f ( x3c ) 17,97 , и перейдём к шагу 6. 63. Сравним f ( z3 ) с f ( x3c ) . Так как f ( z3 ) 17, 63 f ( x3c ) 17,97 , то положим a4 y3 2,81; b4 z3 3, 43; x3c x4c 3,125 . 73. Получим L8 [2,81;3, 43], | L8 | 3, 43 2,81 0, 62 l 1; x* L8, N 8 . В качестве решения можно взять среднюю точку последнего интервала x* x4c 3,125 . Первые итерации поиска изображены на рис. 5.5. Рис. 5.5 5.1.4. Метод дихотомии Требуется найти безусловный минимум функции f ( x) одной переменной, * f ( x) . т.е. такую точку x R , что f ( x ) min xR * 13 Метод относится к последовательным стратегиям. Задается начальный интервал неопределенности и требуемая точность. Алгоритм опирается на анализ значений функции в двух точках. Для их нахождения текущий интервал неопределенности делится пополам и в обе стороны от середины откладывается по , где ε – малое положительное число. Условия окончания процесса поиска 2 стандартные: поиск заканчивается, когда длина текущего интервала неопределенности оказывается меньше установленной величины. Алгоритм Шаг 1. Задать начальный интервал неопределенности L0 [a0 , b0 ], 0 – малое число, l 0 – точность. Шаг 2. Положить k 0 . Шаг 3. Вычислить yk ak bk a b , f ( yk ), zk k k , f ( zk ). 2 2 Шаг 4. Сравнить f ( yk ) с f ( zk ) : а) если f ( yk ) f ( zk ) , положить ak 1 ak , bk 1 zk (рис. 5.6, а) и перейти к шагу 5; б) если f ( yk ) > f ( zk ) ), положить ak 1 yk , bk 1 bk (рис. 5.6, б). Шаг 5. Вычислить L2( k 1) bk 1 ak 1 и проверить условие окончания: а) если L2( k 1) 1 l, процесс поиска завершается и x* L2( k 1) [ak 1, bk 1 ] . В качестве приближенного решения можно взять середину последнего интервала: x* ak 1 bk 1 2 б) если L2( k 1) 1l, положить k k 1 и перейти к шагу 3. Для метода дихотомии характеристика относительного уменьшения начального интервала неопределенности находится по формуле R( N ) N – количество вычислений функции. 14 1 2 N /2 , где а б Рис. 5.6 Замечание 7. Текущие интервалы неопределенности L0 , L2 , L4 ,... имеют чётные номера, указывающие на количество сделанных вычислений функции, как и в методе деления интервала пополам. Эффективность методов дихотомии и деления интервала пополам при малых ε можно считать одинаковой. ПРИМЕР 5.4. Найти минимум функции f ( x) 2 x 2 -12 x методом дихотомии. 1. Зададим начальный интервал неопределенности: L0 [0,10] . Положим 0, 2, l 1 . 2. Положим k 0 . 3°. Вычислим: y0 a0 b0 0 10 0, 2 a b 0 10 0, 2 4,9; z0 0 0 5,1; 2 2 2 2 f ( y0 ) 10,78 ; f ( z0 ) 9,18 . 4°. Так как f ( y0 ) f ( z0 ) , то a1 a0 0, b1 z0 5,1 (рис. 2.6, а). 5°. Получим L2 [0;5, l ], L2 5,1 l 1. Положим k 1 и перейдем к шагу 3. 31. Вычислим: y1 a1 b1 0 5,1 0, 2 a b 0 5,1 0, 2 2, 45; z1 1 1 2, 65; 2 2 2 2 f ( y1 ) 17,395; f ( z1 ) 17,755 . 41. Так как f ( y 1 ) f ( z1 ) , то a2 y1 2, 45; b2 b1 5,1 (рис. 5.6, б). 15 51. Получим L4 [2, 45;5,1], | L4 | 5,1 2, 45 2,65 l 1 . Положим k 2 и перейдем к шагу 3. 32. Вычислим: y2 a2 b2 2, 45 5,1 0, 2 a b 2, 45 5,1 0, 2 3, 675; z2 2 2 3,875; 2 2 2 2 f ( y2 ) 17,089; f ( z2 ) 16, 469 . 42. Так как f ( y2 ) f ( z2 ) , то a3 a2 2, 45; b3 z2 3,875 (рис. 5.6, а). 52. Получим L6 [2, 45;3,875], L6 3,875- 2, 45 1, 425 l 1 . Положим перейдем к шагу 3. 33. Вычислим: y3 a3 b3 2, 45 3,875 0, 2 a b 2, 45 3,875 0, 2 3, 06 ; z3 3 3 3, 26 ; 2 2 2 2 f ( y3 ) 17,99; f ( z3 ) 17,86; x* [2, 45;3, 26], N 8, x* 2, 45 3, 26 2,855 . 2 43. Так как f ( y3 ) f ( z3 ) , то a3 a4 2, 45; b4 z3 3, 26 (рис. 5.6, а). 53. Получим L8 = [2,45; 3,26], L8 = 3,26 - 2,45 = 0,81 < l = 1; x* [2, 45;3, 26], N 8, x* 2, 45 3, 26 2,855 . 2 Первые итерации поиска изображены на рис. 5.7. Рис. 5.7 16 . k 3 и Таблица 5.2 k xk (xk) j yj (yj) 1 [0.00; 3.00] 1 [0.00; 3.00] 52.00 j sj 0.10 [1.00; 0.00] 0.10 [0.00; 1.00] 0.20 [1.00; 0.00] 2 [0.30; 3.00] -0.05 [0.00; 1.00] 0.40 [1.00; 0.00] 2 [0.70; 2.95] -0.10 [0.00; 1.00] 0.80 [1.00; 0.00] 2 [1.50; 2.85] -0.20 [0.00; 1.00] 1.60 [1.00; 0.00] 2 [3.10; 2.65] -0.40 [0.00; 1.00] 3.20 [1.00; 0.00] [3.10; 2.25] [6.30; 2.25] 3.42 (Н) 3.42 2 [3.10; 2.25] -0.80 [0.00; 1.00] [3.10; 1.45] 1.50 (У) 3.42 0.10 [0.89; -0.45] [3.19; 1.41] 2.14 (Н) 1.50 0.10 [-0.45; -0.89] [3.06; 1.36] 1.38 (У) 1.50 0.05 [0.89; -0.45] [3.02; 1.38] 1.15 (У) 1.38 2 [3.02; 1.38] [3.10; 2.65] 3.42 (У) 6.30 1 [3.06; 1.36] [1.50; 2.65] 6.30 (У) 14.50 2 [3.10; 1.45] [1.50; 2.85] 14.59 (У) 17.70 1.50 [0.70; 2.85] 17.70 (У) 27.86 2 [3.10; 1.45] 1 [3.10; 1.45] [0.70; 2.95] 27.86 (У) 29.90 1 [3.10; 2.25] [0.30; 2.95] 29.90 (У) 39.71 1 [1.50; 2.65] [0.30; 3.00] 39.7 (У) 40.84 1 [0.70; 2.85] [0.10; 3.10] 40.84 (У) 47.84 1 [0.30; 2.95] [0.10; 3.00] 50.24 (Н) 47.84 1 [0.10; 3.00] ( yj + j sj) 47.84 (У) 52.00 2 [0.10; 3.00] yj + j sj 0.20 17 [-0.45; -0.89] [2.93; 1.20] 1.03 (У)