'''Метод коллинеарных градиентов'''<ref>''Tolstykh V.K.'' Collinear Gradients Method for Minimizing Smooth Functions // Oper. Res. Forum. — 2023. — Vol. 4. — No. 20. — doi: [https://doi.org/10.1007/s43069-023-00193-9 s43069-023-00193-9]</ref> — [[Итерация (математика)|итерационный метод]] направленного поиска [[Локальный экстремум|локального экстремума]] функции <math>J(u)</math>, <math>u\in E^n</math> с движением к экстремуму вдоль вектора <math>d\in E^n</math> такого, где [[градиент]]ы <math>\nabla J(u)</math> и <math>\nabla J(u+d)</math> [[Коллинеарность|коллинеарные]]. Это метод перового порядка со [[скорость сходимости|скоростью сходимости]] второго порядка. Может применяться к функциям высокой размерности с несколькими локальными экстремумами. Его можно отнести к семейству методов [https://en.wikipedia.org/wiki/Truncated_Newton_method Truncated Newton method]
'''Метод коллинеарных градиентов'''<ref>''Tolstykh V.K.'' Collinear Gradients Method for Minimizing Smooth Functions // Oper. Res. Forum. — 2023. — Vol. 4. — No. 20. — doi: [https://doi.org/10.1007/s43069-023-00193-9 s43069-023-00193-9]</ref> — [[Итерация (математика)|итерационный метод]] направленного поиска [[Локальный экстремум|локального экстремума]] функции <math>J(u)</math>, <math>u\in E^n</math> с движением к экстремуму вдоль вектора <math>d\in E^n</math> такого, где [[градиент]]ы <math>\nabla J(u)</math> и <math>\nabla J(u+d)</math> [[Коллинеарность|коллинеарные]]. Это метод перового порядка (использует только первые производные <math>\nabla J</math>) с квадратичной [[скорость сходимости|скоростью сходимости]]. Может применяться к функциям высокой размерности с несколькими локальными экстремумами. Его можно отнести к семейству методов [https://en.wikipedia.org/wiki/Truncated_Newton_method Truncated Newton method]
[[Файл:Collinearity.png|thumb|Коллинеарные векторы <math>\nabla J(u^k)</math> и <math>\nabla J(u^{k_\ast})</math> с направлением минимизации <math>d^k</math> для выпуклой функции, <math>n=2</math>]]
[[Файл:Collinearity.png|thumb|Коллинеарные векторы <math>\nabla J(u^k)</math> и <math>\nabla J(u^{k_\ast})</math> с направлением минимизации <math>d^k</math> для выпуклой функции, <math>n=2</math>]]
Версия от 10:30, 26 декабря 2024
Метод коллинеарных градиентов[1] — итерационный метод направленного поиска локального экстремума функции , с движением к экстремуму вдоль вектора такого, где градиенты и коллинеарные. Это метод перового порядка (использует только первые производные ) с квадратичной скоростью сходимости. Может применяться к функциям высокой размерности с несколькими локальными экстремумами. Его можно отнести к семейству методов Truncated Newton method
На каждой итерации в относительно большой окрестности существует точка , где градиенты и коллинеарные. Направлением на экстремум из точки будет направление . Вектор указывает на максимум или на минимум в зависимости от положения точки . Она может быть спереди или сзади от относительно направления на (см.рисунок). Далее будем рассматривать минимизацию.
Угловые скобки — это скалярное произведение в . Если выпуклая функция в окрестности , то для передней точки получаем число , для задней . Делаем шаг (1). Для строго выпуклой квадратичной функции шаг МКГ
В общем случае, если имеет переменную выпуклость и возможны седловые точки, то следует контролировать направление минимизации по углу между векторами и . Если , то — это направление максимизации и в (1) следует брать с обратным знаком.
Поиск коллинеарных градиентов
Из невязкиортов градиентов можно найти как корень системы уравнений:
(3)
где знак позволяет одинаково оценивать коллинеарность градиентов по одну или разные стороны от минимума , .
Система (3) решается итерационно (подитерации ) методом сопряжённых градиентов в предположении, что она линейна в окрестности :
(4)
где вектор , , , , произведение матрицы Гессе на находится численным дифференцированием:
(5)
где , — малое положительное число такое, что .
Начальное приближение задаётся под 45° ко всем осям координат длинной :
(6)
Начальный радиус -окрестности точки корректируется:
(7)
Необходимо . Здесь малое положительное число заметно больше машинного эпсилон.
Подитерации завершаются при выполнении хотя бы одного из условий:
— достигнута точность;
— прекратилась сходимость;
— избыточность подитераций.
Алгоритм выбора направления минимизации
Параметры: .
Входные данные: .
. Если задаём из (7).
Находим из (6).
Вычисляем и находим из (3) при .
Если или , или , или { и }, то принимаем , возвращаем , , стоп.
Если , задаём , иначе .
Вычисляем .
Находим шаговый множитель для подитераций:
запоминаем , , , , ;
задаём , вычисляем , и находим из (5), присваиваем ;
если , тогда , возвращаемся к шагу 7.2;
восстанавливаем , , , , ;
находим .
Делаем подитерацию из (4).
, переходим к шагу 3.
Параметр , можно уменьшить до 2 при больших . Для функций без седловых точек рекомендуется , . Для «обхода» седловых точек рекомендуется , .
Во всех демонстрациях МКГ показывает сходимость не хуже, а иногда и лучше, метода Ньютона второго порядка с квадратичной скоростью сходимости.
Тестовая функция «повёрнутый эллипсоид»
На рисунке для заданы три чёрные стартовые точки . Серые точки — подитерации с (показано пунктиром, завышено для демонстрации). Параметры , . Для всех потребовалась одна итерация и подитераций не более двух.
При (параметр ) с начальной точкой МКГ достиг с точностью 1 % за 3 итерации и 754 вычисления и . Другие методы первого порядка: Квазиньютоновский BFGS (работа с матрицами) потребовал 66 итерации и 788 вычислений; сопряжённых градиентов (Fletcher-Reeves) — 274 итерации и 2236 вычислений. Метод Ньютона второго порядка — 1 итерация. Конечно-разностный метод Ньютона (первого порядка) — 1 итерация и 1001 вычислений.
Параметры те же, кроме . Траектория спуска МКГ полностью совпадает с методом Ньютона. На рисунке синяя начальная точка , красная — . В каждой точке нарисованы орты градиентов.
МКГ является очень экономичным по количеству вычислений и . Благодаря формуле (2), он не требует затратных вычислений шагового множителя посредством линейного поиска (метод золотого сечения и т. п.).