- •Лабораторная работа 1. Исследование методов одномерного поиска минимума унимодальных функций
- •Требования задания
- •Контрольные вопросы
- •Содержание отчета
- •Лабораторная работа 2. Исследование методов полиномиальной интерполяции для поиска минимума целевых функций
- •Требования задания
- •Контрольные вопросы
- •Содержание отчета
- •3.1 Требования задания
- •3.2 Контрольные вопросы
- •Лабораторная работа 3. Исследование методов линейного поиска
- •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 Контрольные вопросы
- •8.3 Содержание отчета
- •Приложения Приложение 1. Метод средней точки (метод Больцано)
- •Приложение 2. Метод трехточечного поиска на равных интервалах
- •Приложение 3. Метод Ньютона
- •Приложение 4. Метод линейной интерполяции (метод секущих)
- •Приложение 5. Метод кубической интерполяции для одномерной минимизации
- •Приложение 6. Метод Фибоначчи
- •Приложение 7. Метод Зангвилла
- •Приложение 8. Алгоритм lPт поиска
- •Приложение 9. Минимизация целевых функций в Microsoft Ecxel 8.0
- •Приложение 10. Тестовые функции
- •Список рекомендуемой литературы
Приложение 5. Метод кубической интерполяции для одномерной минимизации
Суть алгоритма заключается в том, что на каждой итерации функция f(x) аппроксимируется кубическим полиномом F(x), точка минимума x(*) которого берётся в качестве текущего приближения к искомому минимуму х*. Алгоритм предполагает вычисления в каждой очередной точке значений функции f(x) и её производной f '(x).
Начальный этап. Задать , х1, 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) Если x m-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 .
a + (b - a), если 0≤ < 1,
(2) Принять аппроксимирующий минимум
x(*) = a, если < 0, и
x(*) = b, если > 1.
Шаг 2. Проверить критерий окончания поиска:
Если 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) Взять две пробные точки 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. Найти аппроксимирующий минимум х(*):
(1) Положить k = k + .
(2) Если f(k) > f(k), то x(*) = (k + bk)/2. В противном случае - x(*) = (ak + k)/2.
Приложение 7. Метод Зангвилла
Основная стратегия метода базируется на свойстве квадратичных функций, называется свойством параллельного подпространства. Если xk+1 - точка минимума квадратичной функции, полученная в результате серии одномерных поисков из начальной точки x1 по всем направлениям системы k = {pi}, i = 1,2,...,k, а zk+1 - точка минимума этой же функции вдоль тех же направлений k, но из другой начальной точки z1, то вектор pk+1 = zk+1 - xk+1 сопряжен со всеми направлениями системы k.
Начальный этап. Задать начальную точку x1, константу . Положить p1 = - grad y(x1), k = 1.
Основной этап. Шаг 1. Оптимальный поиск точки xk+1 = xk + kpk. Если k = n, то перейти к шагу 4.
Шаг 2 Перейти в другую начальную точку z1 = xk+1 + *d, где d = -grad y(xk+1) - новое поисковое направление, * - оптимальное решение задачи минимизации y(xk+1 + d). Положить i = 1.
Шаг 3. Проверить критерий окончания поиска и, если он не выполняется, выполнить спуск вдоль направлений k в точку zk+1:
(1) Если grad y (zi) ≤ , то остановиться: x* = zi - искомый минимум.
(2)Найти оптимальный шаг i в точку zi+1 = zi + pi.
(3)Если i < n, то заменить i на i+1 и вернуться к операции (2); иначе - построить новое сопряженное направление pk+1 = zk+1 - xk+1, заменить k на k+1 и перейти к шагу 1.
Шаг 4. Установить новые начальные условия для очередной итерации:
(1) взять xn+1 за новую начальную точку x1 = xn+1, принять p1 = - grad y(x1);
(2) заменить k на k+1 и перейти к шагу 1.
