9 Лекция 2. Задачи условной оптимизации План 1. Постановка задачи условной оптимизации. 2. Метод исключения переменных. 3. Метод множителей Лагранжа. 1. Постановка задачи условной оптимизации В задачах условной оптимизации переменные x1, x2,..., xn связаны между собой определёнными соотношениями в виде равенств i (x*) = 0, i=1,...,m (mn). Эти равенства называют также уравнениями связи. Таким образом, постановка задачи условной оптимизации такова: определить x * argmin f (x ) x при условии i(x) = 0, i=1,...,m,; где m < n. Решение данной задачи может быть осуществлено двумя способами. 2. Метод исключения переменных Из системы уравнений связи необходимо выразить m переменных через оставшиеся (n-m) (если это возможно). Подставив полученное выражение в функцию f(x), получим новую функцию от (n-m) переменных. Эти переменные будут независимыми, поэтому мы переходим к задаче безусловной оптимизации. Решив эту задачу и определив (n-m) переменных, по уравнению связи найти остальные m переменных. Пример Определить локальный минимум функции f(x)= 2x13+x23 при условии 10 (x)=x1+2x2-1=0. Из уравнения связи (x)=0 выразим x1=1-2x2 и подставим в функцию f(x): f(x2) = 2(1-2x2)3+x23-2(1-6x2+12x22-8x23)+x23 = -15x23+24x22-12x2+2. Определяем безусловный экстремум функции f(x2): f(x2)/x2 = -45x22+48x2-12 = 0, 15 x22 16 x2 4 0 , x2 8 64 15 4 8 2 . 15 15 Получим две стационарные точки: 1) x2 = 0,4 , 2) x2 = 0,6667. Проводим исследования этих точек, определяя в них значения вторых производных 1) 2f(x2)/x2 = -90x2+48 = -90(0,4)+48 = -46+49 = 12>0, 2 2) 2f(x2)/x2 = -90x2+48 = -90 48 60 48 12 0 . 3 Минимум соответствует точке 1: x2 = 0,4; x1 = 1-2(0,4) = 0,2. Итак, локальный минимум функции f(x) при условии x1+2x2=1 достигается в точке x* = (0,2; 0,4)т. 3. Метод множителей Лагранжа Данный метод включает в себя следующие этапы: а) составляется функция Лагранжа: m L(x, ) f (x ) ii (x ), i 1 которая содержит n+m переменных x1, x2,…,xn, 1, 2,… m. 11 б) Решается задача на безусловный экстремум для функции L(x,), для чего определяются стационарные точки функции Лагранжа из системы уравнений: L(x, ) f (x ) m i i 0 ( j 1,..., n ); x j x j x j i 1 L(x, ) k (x ) 0 , ( i=1,…, m). k Как видно, последние m уравнений совпадают с уравнениями связи. Решение полученной системы (n+m) уравнений дает значения x* и *. Учитывая, что в точке экстремума i(x)=0 для всех i=1,…,m, значение функции Лагранжа в этой точке будет совпадать со значением целевой функции, т.е. L(x*,*) = f(x*), Записанные выше уравнения, из которых определяются стационарные точки, являются лишь необходимыми условиями экстремума функции f(x). в) Производится анализ стационарных точек на соблюдение в них достаточных условий экстремума. Достаточные условия можно сформулировать следующим образом: Для того, чтобы функция f(x) имела минимум в стационарной точке x* достаточно чтобы квадратичная форма n n ( h) hт G h gijh ih j , i 1 j1 где gij = 2L(x,)/xixj при x=x*, = *, была положительна для всех ненулевых значений вектора h, удовлетворяющего условиям: n a kih i 0 для всех k=1,…,m, где aki = k(x)/xi при x=x*. i 1 Пример. Исследовать на экстремум функцию f(x)=x2 при условии (x)=x13+x23- 12 3x1x2=0. Составим функцию Лагранжа. L(x,) = x2 + (x13 + x23 - 3x1x2) Записываем необходимые условия экстремума L / x1 = 3x12 - 3x2 = 0, (1) L / x2 = 1 + 3x22 - 3x1 = 0, (2) L / = (x) = x13 + x23 - 3x1x2 = 0. (3) Из уравнения (1) получаем x2=x12, так как в соответствии с уравнением (3) 0. Подставляем в уравнение (3) x13 x16 3x13 0 ; x13 ( x13 2 ) 0 . Получим два решения: 1) x13 0 , тогда x1 = 0 и x2 = 0. Такие значения не удовлетворяют уравнению (2). 2) x13 2 или x1 3 2 1,26 , x2 = x12 3 4 1,57 . Из уравнения (2) определяем 1 1 0,265 . 2 3( x1 x2 ) 3( 1,26 1,587 2 ) Стационарная точка: x ( 1,26;1,587 ) , *=-0,265. 3x1 3x22 1 ; Проверяем достаточное условие, для чего определяем матрицу Гессе для функции Лагранжа в стационарной точке x*, *: 2 L( x , ) 6x1 6 ( 0,265 ) 1,26 2 , x12 2 L( x , ) 6x1 6 ( 0,265 ) 1,587 2,523 , x22 2 L( x , ) 3 3 ( 0,265 ) 0,793 , x1x2 13 0,793 2 . G 0,793 2,523 По критерию Сильвестра матрица G отрицательна определена, т.к. |-2|<0; 2 0,793 0,793 2,523 ( 2 )( 2,523 ) 0,793 2 5,046 0,629 4,417 0 Таким образом в точке x ( 1,26;1,587 ) функция f ( x ) имеет максимум. 14 Лекция 3-4. Методы поиска экстремума функции одной переменной План 1. Метод сканирования (перебора). 2. Метод дихотомии. 3. Метод Фибоначчи. 4. Метод золотого сечения. 1. Метод сканирования (перебора) В данной лекции анализируется задача определения оптимального значения функции одной переменной f(x) на некотором заданном отрезке [a,b]. Функцию f(x) будем считать унимодальной, т.е. имеющей на заданном отрезке единственный экстремум. Значение функции f(x) может быть определено либо рассчитано по известной формуле или заданному алгоритму, либо экспериментальным путём. В задаче требуется найти с точностью такое значение x, при котором функция f(x) принимает минимальное (максимальное) значение. Идея метода сканирования предельно проста и состоит в f(x) последовательном переборе значений заданной функции при всех значениях аргумента на данном отрезке, равностоящих друг от друга на шаг x. a=x0 xm Алгоритм поиска экстремума может x xn=b использовать следующую стратегию: 1) отрезок [a,b] разбивают на n равных отрезков длиной x, т.е. x ba . n 2) определяют значения функции 15 f(x) на границах отрезков x0=a, x1=a+x, x2=a+2x, …., xk=a+kx,…, xn=b. 3) из множества значений функции f(x) в дискретных точках , т.е. {f(x1), f(x2), ... , f(xn)} находят минимальное (максимальное) значение f (x*) f (xm ) min f (xi ) 0 i n или x* xm arg min f (xi ) 0 i n Если точка xm расположена внутри отрезка [a,b], то следует считать, что xm 1 arg min f (x) xm 1 x[a , b ] Таким образом мы определяем интервал (xm-1,xm+1) длиной 2x, который называется интервалом неопределёности или отрезком локализации. Если минимальное значение функции f(xm) окажется на одном из концов отрезка, т.е. в точке a или в точке b, то интервалом неопределённости будет соответственно [a,x1] или [xn-1 ,b]. Такой экстремума полный на перебор заданном гарантирует отрезке, даже нахождение если функция глобального не является унимодальной. Если длина найденного интервала неопределённости не соответствует требуемой точности определения экстремума, то можно, приняв найденный интервал в качестве исходного отрезка, повторить вышеуказанную процедуру с новым шагом x. В том случае, когда функция f(x) унимодальная или решается задача определения одного из локальных экстремумов, поиск можно осуществлять, не анализируя значения функции f(x) на всём отрезке [a,b], а продвигаясь лишь до первого встретившегося экстремума. Процедура поиска при этом будет такова: 1) задать шаг дискретизации, разбив отрезок [a,b] на n равных частей. 16 2) начиная с i=0 вычислять последовательно значения функции f(xi), увеличивая на каждом шаге i на одну единицу, пока f(xi+1) < f(xi); 3) достигнув такого значения i, при котором f(xi) > f(xi-1), положить m = i-1; 4) повторить пункты 1-3, положив a=xm-1 и b=xm+1; 5) процесс закончить, если (b-a)<, где - требуемая точность определения экстремума. Рассмотренные метолы перебора для достижения высокой точности требуют значительного числа экспериментов. Учитывая, что каждый эксперимент может повлечь за собой значительные материальные или временные затраты, возникает задача уменьшения таких затрат. Стратегия последующих трёх методов одномерной оптимизации предполагает поэтапное уменьшение некоторого начального интервала неопределённости. Рассмотрим унимодальную функцию f(x) на отрезке [0,1]. Допустим, что мы определили значение функции в двух произвольных точках x1 и x2 этого отрезка. При этом возможно два варианта: f(x) f(x) x 0 x1 x2 1 x 0 а) f(x1) > f(x2) Очевидно, что точка x* не может находиться: x1 x2 б)f(x1) < f(x2) 1 17 а) в интервале [0;x1] б) в интервале [x2;1] Из рисунков видно, что проведение двух экспериментов уменьшает интервал неопределенности. Новым интервалом неопределённости в случае а) будет интервал [x1;1], длиной (1-x1), а в случае б) – интервал [0;x2] длиной x2. Длина нового интервала неопределённости будет зависеть как от точек, в которых произвели эксперимент, так и от результатов эксперимента. Поставим следующую задачу: как разместить точки x1 и x2, чтобы максимальный из двух интервалов [x1; 1] и [0; x2] имел минимальную длину. Эта задача имеет следующее решение: точки x1 и x2 необходимо расположить вблизи середины интервала неопределённости, т.е. x1 x2 1 и 2 2 1 , где - достаточно малая величина, которая выбирается такой, 2 2 чтобы надёжно различить результаты экспериментов в точках x1 и x2. 2. Метод дихотомии На древнегреческом: diche – на две части, tome – сечение. Как было указано выше, при проведении двух экспериментов выбор точек необходимо осуществить в середине интервала по возможности ближе 1 друг к другу. После проведения первой пары экспериментов в точках и 2 2 1 1 получаем новый интервал неопределённости, например 0, 2 2 2 2 длиной L2 1 . 2 2 18 Снова разделим его пополам 0 1/2-/2 1/2 1/2-/2 1 выберем вблизи 1/4+/4 1/4-/4 и точки середины. эксперимента Длина нового интервала неопределённости будет 1/4+3/4 составлять L4 1 3 . 4 4 Продолжая 1/8+3/8 этот процесс, получим: 1 7 8 8 ..................... 1/8-/8 1/8+7/8 L6 Ln 1 2n / 2 2n / 2 1 n /2 , 2 где n- число экспериментов. При n , Ln . Например, при n=10 Ln=0,969+0,031, а при n=20 Ln=0,999+0,001. Для построения вычислительной процедуры в соответствии с методом дихотомии необходимы следующие исходные данные: 1) - расхождение аргумента, при котором можно уверенно различать значения функции; 2) a и b – начальная и конечная точка исходного интервала; 3) - требуемая длина интервала неопределённости (>) или N – максимальное число измерений(N – четное). Вычислительный алгоритм будет включать в себя следующие этапы: 1) положить n = 2; x0 = a; x3 = b. 2) вычислить положение точек x1 и x2 x1 = (x0+x3)/2 - /2; x2 = (x0+x3) /2 + /2; 3) определить значения целевой функции в этих точках f(x1) и f(x2). 19 4) сравнить полученные значения. Если f(x1),<f(x2), то положить x3=x1, в противном случае положить x0=x1. 5) вычислить длину интервала неопределённости Ln=x3-x0. 6) увеличить n на 2. 7) пункты 2-6 повторить до достижения параметром n заданного значения N, либо пока Ln остаётся больше, чем . 3. Метод Фибоначчи Данный метод разработан американским учёным Кифером в 1953 году. Так же, как и метод дихотомии, он состоит в постоянном уменьшении интервала неопределённости, но в отличии от метода дихотомии на каждой итерации производится не две, а одно измерение, а другое используется из предыдущей итерации. Стратегия поиска элементов такова: На начальном интервале L1 проводят два измерения в точках x1 и x2, расположенных симметрично относительно отрезка [a,b]. По L1 x0=a эксперимента отсекают один x1 x2 L2 x0 x3=b из интервалов (x0;x1) или (x2;x3), а оставшуюся часть x1 x2 x3 L3 x0 результатам принимают x2 L4 x3 x0 x1 x2 L5 x3 Однако на этом интервале длинной x1 x2 новый интервал неопределённости. x1 x0 за x3 значение L2 функции в одной точке (x2) уже известно предыдущего Поэтому из опыта. определяется 20 значение функции f(x) лишь в одной точке x1, расположенной на отрезке (x0;x3) симметрично точке x2 относительно середины отрезка. Процесс повторяется, пока не будет достигнуто заданное число измерений N. При этом на предпоследнем интервале неопределённости точки x1 и x2 должны отличатся на некоторую малую величину . Для использования описанной выше процедуры необходимо знать положение точки x2 (или x1), т.е. величину L2. Проведём LN нахождения LN 1 анализ точек экспериментов 2 началу. LN-1 от Пусть в конца к результате проведения N-1 экспериментов получен интервал неопределённости LN-1. В нём LN-2 содержится LN-1 LN-1 одна точка, в которой проведён эксперимент (т.2) и требуется провести ещё LN-3 один эксперимент в т.1, размещенной симметрично точке 2. Как следует из рисунка LN-1 = 2LN-. На предыдущем этапе после проведения N-2 экспериментов длина интервала неопределённости составляла: LN-2 = LN-1 + LN = 2LN- + LN = 3LN-. Сделав ещё один шаг назад, получаем: LN-3 = LN-2 + LN-1 = 3LN- + 2LN- = 5LN-2. Продолжив этот процесс, получаем LN-4 = LN-3 + LN-2 = 5LN-2 + 3LN- = 8LN - 3, 21 LN-3 = LN-4 + LN-3 = 8LN-3 + 5LN-2 = 13LN - 5. Для записи общей формулы длины интервала неопределённости удобно воспользоваться последовательностью чисел Фибоначчи. Это ряд натуральных чисел, в котором каждое следующее число, начиная с третьего, равно сумме двух предыдущих, т.е. Fi+2 = Fi+1 + Fi, (i=0,1,2,…). При этом F0=F1=1. Первые одиннадцать чисел ряда приведены в таблице: F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 1 1 2 3 5 8 13 21 34 55 89 Общая формула будет иметь вид: LN-i = Fi+1LN - Fi-1, i=1,2,…,N-1. Если длина начального интервала неопределённости равна b-a, то при i=N-1 получим L1 = FNLN - FN-2 = b-a. Откуда выразим LN LN b a FN 2 . FN FN Таким образом, при достаточно малом после проведения N измерений начальный интервал неопределённости уменьшится почти в FN раз. В приведённой выше формуле для LN-1 положим i=N-2 b a FN 2 F F F Fn 3 N 1 ( b a ) N 1 N 2 FN 3 L2=FN-1LN-FN-3= FN 1 FN FN FN FN FN 1 FN 1 FN 2 FN FN 3 FN 1 ( 1 ) N (b a ) (b a ) . FN FN FN FN Полученное выражение позволяет определить точку, в которой произведено первое измерение. Итак, процедура определения экстремума функции одной 22 переменной в соответствии с методом Фибоначчи будет включать в себя следующие этапы. 1. Задание начальных параметров: N - число измерений; a и b - координаты начала и конца исходного интервала; - достаточно малая величина, которую рекомендуется брать не более, чем (b - a) / FN+1. 2. Вычисление координаты точки x2 , т.е. величины L2 и определение в ней значения функции f(x2). 3. Определение координаты точки x1, симметричной точке x2 относительно середины отрезка [a,b], и определение в ней значения функции f(x1). 4. Сравнение значений f(x1) и f(x2). Если f(x1) < f(x2), то в качестве нового интервала неопределенности следует принять интервал (x0,x2), в противном случае - интервал (x1,x3), внутри которого в одной из точек значение функции будет уже известно. 5. Вычисление значения функции в точке нового интервала неопределенности, симметричной указанной выше. 6. Повторение пунктов 4-5 до тех пор, пока число измерений (вычислений) целевой функции не достигнет величины N. 4. Метод золотого сечения Метод золотого сечения использует итерационную процедуру, аналогичную методу Фибоначчи, но не требует, чтобы число измерений целевой функции было задано предварительно, т.е. процесс поиска экстремума может быть прекращен на любой итерации. Поскольку стратегия поиска аналогична предыдущей, то сохраняется 23 известная зависимость длин интервалов неопределённости, т.е. Li-1 = Li+Li+1. Кроме того, рассматриваемый метод предполагает постоянство отношения длин двух последовательных интервалов неопределенности Li 1 L L i i 1 ... . Li Li 1 Li 2 Величина показывает, во сколько раз последующий интервал неопределённости короче предыдущего. Выразим из второго равенства Li-1 и Li+1 через Li и подставим в первое равенство Li-1=Li; Li 1 1 Li , 1 Li Li Li . 1 Отсюда следует 1 ; 2=+1; или 2--1=0. Положительное решение данного уравнения даёт: При реализации 1 1 4 1,618 2 данного метода на каждом интервале неопределённости находится точка, которая делит интервал на две части таким образом, чтобы отношение длины меньшей части к длине большей части было равно отношению длины большей части к длине всего интервала. Такое деление отрезка называют “золотым сечением”. Lk 1 L 1 k 0,618 . Lk Lk 1 Итак, в отличие от предыдущего метода на первой итерации точку x2 24 располагают на расстоянии 1 ( b a ) 0,618( b a ) от начала исходного интервала ноопределенности, а точку x1 , - симметрично x2 относительно середины интервала, т.е. на расстоянии расстоянии 1 2 1 ( b a ) от конца интервала или на ( b a ) 0,382( b a ) от начала интервала. Процесс может поиска может продолжаться бесконечно долго. После N измерений длина интервала неопределённости будет определятся выражением: 1 LN N 1 ( b a ) 0,618 N 1 ( b a ) . В заключение приведем таблицу сравнительного анализа трех последних методов, в которой показано, как уменьшается интервал неопределённости по мере увеличения числа опытов. N L1 / LN Метод Метод Метод “золотого дихотомии Фибонначи сечения” 2 2 2 1,62 3 - 3 2,62 4 4 5 4,24 5 - 8 6,85 6 8 13 11,09 7 - 21 18,94 8 16 34 29 9 - 55 47 10 32 89 76