МЕТОДЫ ОПТИМИЗАЦИИ Автор курса лекций: Черногородова Галина Матвеевна, к.т.н., доцент кафедры автоматизированных систем управления УГТУУПИ Екатеринбург 2008 Модуль 2. Безусловная оптимизация Прямые методы поиска • • • • Методы одномерной оптимизации Лекция 2.1. Постановка задачи и стратегии поиска. Методы равномерного поиска, деления интервала пополам, дихотомии Лекция 2.2. Метод квадратичной интерполяции Лекция 2.3. Методы «золотого сечения» и Фибоначчи • 1. 2. 3. 4. 5. 6. Изучение теоретической части модуля 2 даёт знания о постановке задачи безусловной оптимизации стратегиях поиска понятии унимодальной функции классификации методов одномерной оптимизации алгоритмах основных методов сравнительных характеристиках методов Модуль 2. Прямые методы поиска Метод Фибоначчи 3 Методы оптимизации Необходимая предварительная подготовка • Из курса математики: 1. Вычисление и анализ функций 2. Численные методы 3. Аналитическая геометрия Модуль 2. Прямые методы поиска Метод Фибоначчи 4 Методы оптимизации Лекция 2. Методы «золотого сечения» и Фибоначчи Цели изучения • Постановка задачи безусловной оптимизации • Определение стратегий поиска • Понятие унимодальной функции • Классификация методов одномерной оптимизации • Изучение алгоритмов основных методов • Сравнительная характеристика изучаемых методов Модуль 2. Прямые методы поиска Метод Фибоначчи 6 Методы оптимизации Модуль 2. Безусловная оптимизация Прямые методы поиска • • • • Метод равномерного поиска Метод дихотомии Метод деления интервала пополам Метод квадратичной интерполяции • Метод «золотого» сечения • Метод Фибоначчи Модуль 2. Прямые методы поиска Метод Фибоначчи 7 Методы оптимизации Метод Фибоначчи Числа Фибоначчи В методе Фибоначчи реализована стратегия, обеспечивающая максимальное гарантированное сокращение интервала неопределенности при заданном количестве вычислений функции и претендующая на оптимальность. Эта стратегия опирается на числа Фибоначчи. Числа Фибоначчи определяются по формулам: F0 F1 1, Fk Fk 1 Fk 2 , k 2, 3, 4, … Последовательность чисел Фибоначчи имеет вид: 1; 1; 2; 3; 5; 8; 13; 21; 34; 55; 89; 144; 233; 377; 610; 987; 1597; 2584; 4181; 6765; 10946; 17711; 28657; 46368; 75025; 121393; 196418; 317811; 514229; 832040; 1346269; 2178309; 3524578; 5702887; 9227465; 14930352; 24157817; 39088169;… Модуль 2. Прямые методы поиска Метод Фибоначчи 9 Методы оптимизации Алгоритм метода Фибоначчи • Шаг 1. Задать начальный интервал неопределенности L0 a0 , b0 l > 0 – допустимую длину конечного интервала, • > 0 – константу различимости. Шаг 2. Найти количество N вычислений функции как наименьшее целое число, при котором удовлетворяется условие L F ичисла Фибоначчи . 0 N l • Шаг 3. Положить k = 0. • Шаг 4. Вычислить • Шаг 5. Вычислить y k ak FN 2 (bk ak ), FN z k ak FN 1 (bk ak ). FN f ( yk ), f ( zk ) Модуль 2. Прямые методы поиска Метод Фибоначчи 10 Методы оптимизации Алгоритм метода Фибоначчи • Шаг 6. Сравнить а) если f ( yk ) f ( yk ) f ( zk ) ak 1 ak ; bk 1 zk ; zk 1 yk ; yk 1 ak 1 б) если положить и f ( zk ) , то положить FN k 3 bk 1 ak 1 ; FN k 1 f ( yk ) f ( zk ) ak 1 yk ; bk 1 bk ; yk 1 zk ; zk 1 ak 1 и перейти к шагу 7. • Затем перейти к шагу 7. FN k 2 bk 1 ak 1 ; FN k 1 Шаг 7. Проверить условие окончания и в случае необходимости сделать заключительное N-e вычисление функции для получения решения: 1. а) если k N - 3 , положить к = к +1 и перейти к шагу 4; б) если k N -3 , то всегда yN 2 z N 2 Модуль 2. Прямые методы поиска Метод Фибоначчи aN 2 bN 2 2 11 Методы оптимизации Алгоритм метода Фибоначчи • Шаг 7. (продолжение) Следует положить yN 1 yN 2 zN 2 ; zN 1 yN 1 В точках yN 1 и zN 1 вычисляются значения функции и находятся границы конечного интервала неопределенности: - если f yN 1 f zN 1 , положить aN 1 aN 2 , bN 1 zN 1 - если f yN 1 f zN 1 , положить a N 1 y N 2 , bN 1 bN 2 Процесс поиска завершается и x* aN 1 , bN 1 . В качестве приближенного решения можно взять любую точку последнего интервала. Характеристика относительного уменьшения начального интервала неопределенности находится по формуле ,R N 1 FN где N – количество вычислений функции. Модуль 2. Прямые методы поиска Метод Фибоначчи 12 Методы оптимизации Метод Фибоначчи. Пример • Найти минимум функции f (x) = 2 x2 -12 x методом Фибоначчи 1. Зададим начальный интервал неопределённости: L0 = [0, 10]. Пусть l = 1, ε = 0,01; F6 = 13 > |L0| / l = 10, поэтому N = 6. 2. Числа Фибоначчи: F0 = F1 = 1, F2 = 2, F3 = 3, F4 = 5, F5 = 8, F6 = 13. Модуль 2. Прямые методы поиска Метод Фибоначчи 13 Методы оптимизации Пример. Нулевая итерация 3. Положим k=0 4. Вычислим 5. Вычислим 6. Сравниваем: y0 a0 F4 5 b0 a0 0 *10 3,846; F6 13 z0 a0 F5 8 b0 a0 0 *10 6,154 F6 13 f ( y0 ) 16,57; f ( z0 ) 1,893 f ( y0 ) и f ( z0 ) , тогда a1 a0 0; b1 z0 6,154; y1 a1 F63 3 b1 a1 0 * 6,154 2,308; z1 y0 3,846 F61 8 7. Проверим условие окончания; k = 0 ≠ N -3 = 6-3; L2 = [0; 6,15] Положим k = 1 и перейдём к шагу 5. Модуль 2. Прямые методы поиска Метод Фибоначчи a0 14 y0 z0 Методы оптимизации b0 Пример. Первая итерация a1 = 0; b1 = 6,154; y1 = 2,31; z1 = 3,846. 5. Вычислим: f ( y1 ) 17, 04; f ( z1 ) 16,57 6. Сравниваем: f ( y1 ) и f ( z1 ) . Так как f(y1) < f(z1), то a2 a1 0; b2 z1 3,864; y2 a2 F64 2 b2 a2 0 *3,864 1,538; z2 y1 2,308 F62 5 2 *3,864 1,538; z2 y1 2,308 5 a1 y1 z1 b1 7. Проверим условие окончания: k=1 ≠ N-3 = 3; L2 = [0; 3,864]. Положим k = 2 и перейдём к шагу 5 Модуль 2. Прямые методы поиска Метод Фибоначчи 15 Методы оптимизации Пример. Вторая итерация Получили: a2 = 0; b2 = 3,84; y2 = 1,54; z2 = 2,308 Вычислим f (y2) = -13,73; f (z2) = -17,04. 6. Сравним: f (y2) > f (z2), тогда 5. a3 y2 1,538; b3 b2 3,864; y3 z2 2,308 z3 a3 F6 4 2 b3 a3 1,538 * 3,864 1,538 3, 077 F63 3 7. Проверим условие окончания: k = 2 ≠ N-3 = 3; L4 = [1,54; 3,84] Положим k = 3 и перейдём к шагу 5 Модуль 2. Прямые методы поиска Метод Фибоначчи a2 y2 z2 16 b2 Методы оптимизации Пример. Третья итерация Получили: a3 = 1,54; b3 = 3,86; y3 = 2,31; z3 = 3,08 5. Вычислим f (y3) = -17,04; f (z3) = -17,99 6. Сравним: f (y3) > f (z3), тогда a4 y4 2,308; b4 b3 3,864; y4 z3 3, 077 z4 a4 F65 1 b4 a4 2,308 * 3,864 2,308 3, 077 F6 4 2 7. Поверим условие окончания: k = 3 = N -3 = 3; L5 = [2,31; 3,846]. Положим y5 = y4 = z4 = 3,08; z5 = y5 + ε = 3,077 + 0,01 = 3,09 f(y5)=-17.98817; f(z5)=-17,98486. Так как f (y5) < f (z5), то a5 = a4 = 2,308; b5 = z5 = 3,09 Модуль 2. Прямые методы поиска Метод Фибоначчи a3 y3 z3 b 3 17 Методы оптимизации Пример. Результат вычислений Таким образом, x* L6 = [2,308; 3,087]; |L6| = 3,087 – 2,308 = 0,78 < l = 1. В качестве приближённого решения возьмём середину интервала L6: x* 2,697. Модуль 2. Прямые методы поиска Метод Фибоначчи x* 18 Методы оптимизации Сравнение методов Метод «Золотого сечения» x* 2,81 (5 итераций) Метод Фибоначчи x* 2,69 L6 = [2,308; 3,087] (4 итерации) x* 3,09 (4 итерации) Модуль 2. Прямые методы поиска Метод Фибоначчи 19 Методы оптимизации Выводы • • • • • Итак, мы рассмотрели: постановку задачи безусловной оптимизации и стратегии поиска классификацию методов одномерной оптимизации алгоритмы методов: 1. равномерного поиска, 2. дихотомии, 3. квадратичной интерполяции 4. золотого сечения 5. Фибоначчи сравнительные характеристики этих методов Модуль 2. Прямые методы поиска Метод Фибоначчи 20 Методы оптимизации Информационное обеспечение лекции • Литература по теме: 1. Аттетков А.В. Методы оптимизации: учеб. Для вузов/ А.В. Аттетков, С.В. Галкин, В.С. Зарубин. М.: Изд-во МГТУ им. Баумана, 2003, 440 с.: ил. 1. Черногородова Г.М. Методы оптимизации. Нелинейное программирование: учеб. пособие / Г.М. Черногородова. Екатеринбург: УГТУ, 2007. – 113 с.: ил. • Электронный адрес: [email protected] Модуль 2. Прямые методы поиска Метод Фибоначчи 21 Методы оптимизации сообщение •Курс лекций является частью учебно-методического комплекса «Методы оптимизации», авторский коллектив: •Черногородова Галина Матвеевна, к.т.н., доцент кафедры автоматизированных систем управления УГТУ-УПИ •Учебно-методический комплекс подготовлен на кафедре АСУ РИРТФ УГТУ-УПИ •Никакая часть данной презентации не может быть воспроизведена в какой бы то ни было форме без письменного разрешения автора. Модуль 2. Прямые методы поиска Метод Фибоначчи 22 Методы оптимизации