
- •Программирование методов оптимизации
- •Программирование методов оптимизации
- •Предисловие
- •Лабораторная работа 1. Исследование методов одномерного поиска минимума унимодальных функций
- •1.1. Требования задания
- •1.2. Контрольные вопросы
- •1.3. Содержание отчета
- •Лабораторная работа 2. Исследование методов полиномиальной интерполяции для поиска минимума целевых функций
- •2.1. Требования задания
- •2.2. Контрольные вопросы
- •2.3. Содержание отчета
- •Лабораторная работа 3. Исследование методов линейного поиска
- •3.1. Требования задания
- •3.2. Контрольные вопросы
- •3.3. Содержание отчета
- •Лабораторная работа 4. Исследование градиентных методов
- •4.1. Требования задания
- •4.2. Контрольные вопросы
- •4.3. Содержание отчета
- •Лабораторная работа 5. Проектирование программы оптимизации
- •5.1. Требования задания
- •5.2. Контрольные вопросы
- •5.3. Содержание отчета
- •Лабораторная работа 6. Исследование модификаций ньютоновских оптимизационных процессов
- •6.1. Требования задания
- •6.2. Контрольные вопросы
- •6.3. Содержание отчета
- •Лабораторная работа 7. Исследование методов переменной метрики
- •7.1. Требования задания
- •7.2. Контрольные вопросы
- •7.3. Содержание отчета
- •Лабораторная работа 8. Исследование методов сопряженных градиентов
- •8.1. Требования задания
- •8.2. Контрольные вопросы
- •8.3. Содержание отчета
- •Лабораторная работа 9. Исследование методов безусловной оптимизации нулевого порядка
- •9.1. Требования задания
- •9.2. Контрольные вопросы
- •9.3. Содержание отчета
- •Лабораторная работа 10. Исследование алгоритмов случайного поиска
- •10.1. Требования задания
- •10.2. Контрольные вопросы
- •10.3. Содержание отчета
- •Лабораторная работа 11. Исследование методов нелинейного программирования
- •11.1. Требования задания
- •11.2. Контрольные вопросы
- •11.3. Содержание отчета
- •Список литературы
- •1. Метод средней точки (метод Больцано)
- •2. Метод трехточечного поиска на равных интервалах
- •3. Метод Ньютона
- •4. Метод линейной интерполяции (метод секущих)
- •5. Метод кубической интерполяции для одномерной минимизации
- •6. Метод Фибоначчи
- •7. Метод Хука–Дживса с одномерной минимизацией
- •8. Метод Зангвилла
- •9. Алгоритм lPτ-поиска
- •10. Формулы методов переменной метрики
- •11. Минимизация целевых функций в Microsoft Excel 97
- •12. Тестовые функции
- •Содержание
- •197376, С.-Петербург, ул. Проф. Попова, 5
5. Метод кубической интерполяции для одномерной минимизации
Суть алгоритма заключается в том, что на каждой итерации функция f(x) аппроксимируется кубическим полиномом F(x), точка минимума x(*) которого берется в качестве текущего приближения к искомому минимуму х*. Алгоритм предполагает вычисления в каждой очередной точке значений функции f(x) и ее производной f '(x).
Начальный этап. Задать , x1, h1 – параметры метода, имеющие общепринятый смысл. Методом Свенна установить начальный интервал [a, b]:
(1) изменить направление поиска h1 = –h1, если f '(x1) > 0;
(2) вычислять fk в точках xk + 1 = xk + hk при hk = 2hk – 1, k = 2, 3, ..., m – 1 до тех пор, пока не продвинемся в точку xm, такую, что f '(xm)f '(xm – 1) < 0;
(3) если xm – 1 < xm, то положить a = xm – 1, b = xm, иначе – a = xm, b = xm – 1.
Основной этап.
Шаг 1. Найти аппроксимирующий минимум:
(1) вычислить параметр = (z + w – f '(a))/(f '(b) – f '(a) + 2w), где z = = f '(a) + f '(b) + 3(f(a) – f(b))/(b – a), w = (z2 – f '(a)f '(b))1/2;
(2) принять аппроксимирующий минимум
x(*) = a + (b – a), если 0 ≤ ≤ 1,
x(*) = a, если < 0, и
x(*) = b, если > 1.
Шаг 2. Проверить критерий окончания поиска:
eсли f '(x(*)) < или x(*) = a, или x(*) = b, поиск окончить. Иначе вернуться к шагу 1, используя новый интервал [a, x(*)], если f '(x(*)) > 0, либо интервал [x(*), b], если f '(x(*)) < 0.
6. Метод Фибоначчи
Метод Фибоначчи является процедурой линейного поиска минимума унимодальной функции f(x) на замкнутом интервале [a, b], отличающейся от процедуры золотого сечения тем, что очередная пробная точка делит интервал локализации в отношении двух последовательных чисел Фибоначчи. Последовательность чисел Фибоначчи задается условиями F0 = F1= 1, Fk + 1 = Fk + Fk – 1, k = 1, 2, ... . Начальными членами последовательности будут 1, 1, 2, 3, 5, 8, 13, ... . Стратегия поиска Фибоначчи требует заранее указать n – число вычислений минимизируемой функции и – константу различимости двух значений f(x). Рассмотрим один из возможных вариантов метода.
Начальный этап.
(1) Задать начальный интервал [a1, b1], длину конечного интервала Ln и определить число n так, чтобы выполнялось условие Fn > (b1 – a1)/Ln. Вычислить ≤ L1/Fn + 1.
(2) Взять 2 пробные точки 1 = a1 + (Fn – 2/Fn)(b1 – a1) и 1 = a1 + (Fn – 1/Fn)(b1 – a1). Положить k = 1.
Основной этап.
Шаг 1. Сократить текущий интервал локализации:
(1) если f(k) < f(k), то положить ak + 1 = ak, bk + 1 = k, k + 1 = k и вычислить новую точку k + 1 = ak + 1 + (Fn – k – 2/Fn – k)Lk + 1, где Lk + 1 = bk + 1 – ak + 1; перейти к шагу 2;
(2) если f(k) ≥ f(k), то положить ak + 1 = k, bk + 1 = bk, k + 1 = k и вычислить k + 1 = ak + 1 + (Fn – k – 1/Fn – k)Lk + 1.
Шаг 2. Проверить критерий окончания поиска:
(1) заменить k на k + 1;
(2) если k = n – 1, перейти к шагу 3, иначе – к шагу 1.
Шаг 3. Найти аппроксимирующий минимум x(*):
(1) положить k = k + ;
(2) eсли f(k) > f(k), то x(*) = (k + bk)/2. В противном случае – x(*) = (ak + k)/2.