Оптимизация является фундаментальной задачей во многих областях науки и техники, требующей нахождения наилучшего решения в рамках заданных ограничений. Один из эффективных подходов для решения таких задач — метод Гаусса-Зейделя, известный своей простотой и эффективностью. Однако, метод Гаусса-Зейделя подвержен риску застревания в локальных минимумах, что снижает его эффективность в сложных многомерных задачах.
В данном проекте предлагается улучшение метода Гаусса-Зейделя с использованием штрафных функций, методом введения импульсов. Импульсы, в свою очередь, помогают алгоритму преодолевать локальные минимумы, сохраняя часть предыдущего направления движения и тем самым ускоряя сходимость к глобальному минимуму.
Целью проекта является разработка и реализация метода оптимизации, который объединяет классический подход Гаусса-Зейделя с использованием штрафных функций и импульсов для улучшения точности и надежности получаемых решений.
Формула, добавляющая импульс к методу Гаусса-Зейделя, учитывает предыдущее направление движения и текущий шаг оптимизации. Пусть $y$ - текущая точка, $λ_j$ - оптимальное смещение в направлении $j$, $d_j$- направление, $impulse$ - коэффициент импульса, а $prev_direction_j$- предыдущее направление в $j$-й координате. Тогда обновление координаты $y_j$ импульсом записывается как:
$$ y_j=y_j+λ_jd_j+impulse⋅prevdirection $$
Где:
Таким образом, полное обновление координаты $y_j$ на итерации $k$ в методе Гаусса-Зейделя с учетом импульса можно записать как:
$$ y_j^{(k+1)} = y_j^{(k)} + \lambda_j \mathbf{d}_j + \text{impulse} \cdot \mathbf{prev\_direction}_j^{(k)} $$
Эта формула учитывает предыдущее направление и добавляет его с определенным весом к текущему шагу, что помогает преодолевать локальные минимумы и ускоряет сходимость.

Решение без использования импульсов

Решение с использованием импульсов