- •1. Множество. Функция. Скалярные и векторные функции.
- •2. Поле, пространство. Виды пространств.
- •3. Критические точки. Стационарные точки. Лемма Ферма. Связь оптимизации и поиска корня.
- •Вопрос 6. Чем выпуклая функция упрощает задачу оптимизации?
- •Вопрос 7. Если функция имеет одинаковые минимальные значения в двух точках, можно ли говорить о двух глобальных минимумах?
- •Вопрос 8. Как критерии максимума связаны с критериями минимума?
- •4. Градиент. Матрица Гессе. Ряд Тейлора.
- •5. Квадратичная форма. Квадратичная функция. Связь знакоопределенности и собственных чисел матрицы.
- •6. Квадратичная форма. Квадратичная функция. Критерии минимума (максимума) квадратичной формы.
- •7. Условия Вульфа. Их геометрическая интерпретация. Правило Армихо.
- •8. Метод дихотомии. Запрограммировать, показать работу на функциях.
- •9. Метод трехточечного деления. Запрограммировать, показать работу на функциях.
- •10. Метод золотого сечения. Запрограммировать, показать работу на функциях.
- •11. Метод Фибоначчи. Запрограммировать, показать работу на функциях.
- •12. Метод Ньютона одномерный. Запрограммировать, показать работу на функциях.
- •13. Метод секущих. Запрограммировать, показать работу на функциях.
- •14. Метод Мюллера. Запрограммировать, показать работу на функциях.
- •15. Метод обратной параболической интерполяции. Запрограммировать, показать работу на функциях.
- •16. Запрограммировать метод градиентного спуска. Показать его работу на функциях.
- •17. Запрограммировать метод наискорейшего спуска. Показать его работу на функциях.
- •19. Запрограммировать метод Ньютона многомерный. Показать его работу на функциях.
- •20. Запрограммировать метод Левенберга-Марквардта. Показать его работу на функциях.
- •21. Запрограммировать метод Нестерова-Немировского. Показать его работу на функциях.
- •22. Запрограммировать метод Барзилая-Борвейна 1. Показать его работу на функциях.
- •23. Запрограммировать метод Барзилая-Борвейна 2. Показать его работу на функциях.
- •28. Запрограммировать метод Армихо. Показать его работу на функциях.
- •29. Запрограммировать метод dfp. Показать его работу на функциях.
- •30. Запрограммировать метод bfgs. Показать его работу на функциях.
- •31. Запрограммировать метод l- bfgs. Показать его работу на функциях.
- •32. Запрограммировать метод доверительных областей. Показать его работу на функциях.
21. Запрограммировать метод Нестерова-Немировского. Показать его работу на функциях.
def NNsearch(f, df, x0, tol):
kmax = 1000
x_k = x0.copy()
coords = [x_k.copy()]
neval = 0
k = 0
deltaX = np.ones_like(x_k) * np.inf
while (norm(deltaX) >= tol) and (k < kmax):
g0 = df(x_k)
neval += 1
H0 = H(x_k, tol, df)
neval += 2 * len(x0)
v = np.linalg.solve(H0, g0)
lam = np.sqrt(abs((g0.T @ v).item()))
if lam <= 0.25:
alpha = 1.0
else:
alpha = 1.0 / (1.0 + lam)
dx = -alpha * v
x_new = x_k + dx
deltaX = x_new - x_k
x_k = x_new
coords.append(x_k.copy())
k += 1
xmin = x_k
fmin = f(xmin)
answer_ = [xmin, fmin, neval, coords]
return answer_
1. Зачем вводится демпфирование в методе Ньютона?
Ответ: Чтобы обеспечить сходимость метода вне области квадратичной сходимости Ньютона, когда полный ньютоновский шаг может приводить к расходимости.
2. В чём идея переменного демпфирующего параметра αₖ?
Ответ: Параметр αₖ позволяет автоматически уменьшать шаг вдали от минимума и использовать полный ньютоновский шаг (αₖ = 1) вблизи минимума.
3. Какой шаг используется в методе Нестерова–Немировского?
Ответ:
4. Что называется ньютоновским декрементом?
Ответ:
5. Какой смысл имеет ньютоновский декремент?
Ответ: Он характеризует расстояние до минимума в метрике Гессе и показывает, насколько надёжен ньютоновский шаг.
6. Как используется δₖ для выбора αₖ?
Ответ:
7. Какая формула для αₖ предложена Нестеровым и Немировским?
Ответ:
8. Почему при малом δₖ можно брать αₖ = 1?
Ответ: Потому что в этой области метод Ньютона гарантированно сходится квадратично и полный шаг является устойчивым.
9. Почему метод не требует линейного поиска?
Ответ: Потому что величина шага автоматически регулируется через ньютоновский декремент δₖ.
10. Что такое самосогласованные функции?
Ответ: Это класс функций, для которых третья производная ограничена через вторую, что гарантирует корректность оценки шага и глобальную сходимость метода.
11. В чём отличие метода Нестерова–Немировского от обычного демпфированного Ньютона?
Ответ: В методе Нестерова–Немировского демпфирование определяется аналитически через δₖ, а не с помощью внешнего линейного поиска.
12. Когда метод фактически превращается в обычный метод Ньютона?
Ответ: Когда δk≤1/4, то есть внутри области квадратичной сходимости.
13. Почему метод считается устойчивым?
Ответ: Потому что он автоматически уменьшает шаг при больших значениях δₖ и не делает агрессивных шагов вдали от минимума.
14. Как интерпретируется поведение метода на функции Розенброка?
Ответ: Сначала используется демпфированный режим, затем — полный шаг Ньютона при приближении к минимуму.
15. Основное преимущество метода Нестерова–Немировского?
Ответ: Комбинация глобальной сходимости и квадратичной скорости без линейного поиска.
22. Запрограммировать метод Барзилая-Борвейна 1. Показать его работу на функциях.
23. Запрограммировать метод Барзилая-Борвейна 2. Показать его работу на функциях.
1. К какому классу методов относится метод Барзилая–Борвейна?
Ответ: К градиентным методам с квазиньютоновской интерпретацией шага.
2. Какой базовый итерационный процесс лежит в основе метода Барзилая–Борвейна?
Ответ:
3. Как интерпретируется шаг αₖ в методе Барзилая–Борвейна?
Ответ: Как скалярная аппроксимация обратной матрицы Гессе:
4. Что обозначают величины ∆x и ∆g?
Ответ:
5. Какое квазиньютоновское условие используется при выводе метода?
Ответ:
Условие секущей:
6. Как выводится формула шага в методе Барзилая–Борвейна 1?
Ответ: Из минимизации нормы
что приводит к формуле
7. Как выводится формула шага в методе Барзилая–Борвейна 2?
Ответ: Из минимизации нормы
что приводит к формуле
8. В чём принципиальное различие между методами Барзилая–Борвейна 1 и 2?
Ответ: В разных способах аппроксимации секущего условия и, соответственно, в разных формулах для шага αₖ.
9. Требует ли метод Барзилая–Борвейна вычисления матрицы Гессе?
Ответ: Нет, используется только информация о градиентах.
10. Какие преимущества имеют методы Барзилая–Борвейна?
Ответ: В ряде задач обладают сверхлинейной сходимостью при сохранении низкой вычислительной сложности.
11. Обладают ли методы Барзилая–Борвейна глобальной сходимостью?
Ответ: Да, но не на всех задачах и не для всех начальных условий.
12. В чём заключается основной недостаток методов Барзилая–Борвейна?
Ответ: Возможна потеря сходимости и зацикливание траектории оптимизации.
13. Приведите пример функции, на которой метод Барзилая–Борвейна может зациклиться.
Ответ: Функция Розенброка при определённых начальных точках и высокой точности.
14. Что означает зацикливание метода Барзилая–Борвейна?
Ответ: Метод продолжает выполнять итерации, но не приближается к точке минимума.
15. Какова цель стабилизации метода Барзилая–Борвейна?
Ответ: Предотвращение зацикливания и улучшение сходимости.
16. Как определяется стабилизированный шаг αₖ^stab?
Ответ:
17. Как выбирается итоговый шаг в стабилизированном методе?
18. Как выглядит итерационная формула стабилизированного метода?
Ответ:
19. Какую роль играет параметр ∆ в стабилизированном методе?
Ответ: Ограничивает длину шага и предотвращает слишком большие перемещения.
20. Улучшает ли стабилизация поведение метода на функции Розенброка?
Ответ: Да, стабилизированный метод демонстрирует сходимость там, где нестабилизированный зацикливается.
21. Есть ли преимущество у одной версии метода Барзилая–Борвейна перед другой?
Ответ: Нет универсального преимущества; эффективность зависит от конкретной задачи.
22. Если метод Барзилая–Борвейна 1 зациклился, зациклится ли метод Барзилая–Борвейна 2?
Ответ: Не обязательно; разные формулы шага могут приводить к различному поведению.
Краткий вывод для экзамена
Ответ одной фразой: Методы Барзилая–Борвейна — это градиентные методы с адаптивным шагом, интерпретируемые как квазиньютоновские методы с диагональной аппроксимацией обратного гессиана.
24. Запрограммировать метод Флетчера-Ривса. Показать его работу на функциях.
25. Запрограммировать метод Хестенеса-Штифеля. Показать его работу на функциях.
26. Запрограммировать метод Дая-Юана. Показать его работу на функциях.
27. Запрограммировать метод Полака-Рибьера. Показать его работу на функциях.
def prsearch(f, df, x0, tol):
kmax = 1000
c1 = tol
c2 = 0.1
amax = 3
xk = x0.copy()
gk = df(xk)
neval = 1
pk = -gk
coords = [xk.copy()]
k = 0
while (norm(gk) >= tol) and (k < kmax):
alpha = wolfesearch(f, df, xk, pk, amax, c1, c2)
xk1 = xk + alpha * pk
gk1 = df(xk1)
neval += 1
#Полака-Рибьера
beta1 = np.dot((gk1 - gk).T, gk1)[0, 0] / np.dot(gk.T, gk)[0, 0]
#Дая-Юана
beta2 = - np.dot(gk1.T, gk1)[0, 0] / np.dot(pk.T, gk1 - gk)[0, 0]
#Хестенеса-Штифеля
beta3 = - np.dot(gk1.T, gk1 - gk)[0, 0] / np.dot(pk.T, gk1 - gk)[0, 0]
#Флетчера-Ривза
beta4 = np.dot(gk1.T, gk1)[0, 0] / np.dot(gk.T, gk)[0, 0]
pk = -gk1 + beta1 * pk
xk = xk1
gk = gk1
coords.append(xk.copy())
k += 1
xmin = xk
fmin = f(xmin)
answer_ = [xmin, fmin, neval, coords]
return answer_
1. Для какого класса задач изначально был разработан метод сопряжённых градиентов?
Ответ:
Для минимизации квадратичных функций с положительно определённой матрицей Гессе.
2. Какой вид имеет квадратичная функция, для которой применяется классический метод сопряжённых градиентов?
Ответ:
3. Как задаётся начальное направление в методе сопряжённых градиентов?
Ответ:
4. Что означает термин «сопряжённые направления»?
Ответ:
Направления
являются сопряжёнными, если
5. Как вычисляется шаг αₖ в квадратичном методе сопряжённых градиентов?
Ответ:
6. Как обновляется точка на очередной итерации в квадратичном случае?
Ответ:
7. Как обновляется градиент в квадратичном случае?
Ответ:
8. Как вычисляется параметр βₖ в классическом квадратичном алгоритме?
Ответ:
9. Как обновляется направление поиска в методе сопряжённых градиентов?
Ответ:
10. За сколько итераций сходится метод сопряжённых градиентов в квадратичном случае?
Ответ:
Не более чем за 𝑛 итераций, где 𝑛 — размерность задачи.
11. Почему метод сходится за конечное число шагов в квадратичном случае?
Ответ:
Потому что направления поиска являются взаимно сопряжёнными относительно матрицы 𝐴
12. В чём состоит основное отличие нелинейного метода сопряжённых градиентов?
Ответ:
Используется линейный поиск для нахождения αₖ и критерий остановки вместо фиксированного числа итераций.
13. Как определяется шаг αₖ в нелинейном методе сопряжённых градиентов?
Ответ:
Как решение задачи одномерной минимизации:
14. Почему точный линейный поиск часто заменяют приближённым?
Ответ:
Из-за высокой вычислительной стоимости точного поиска.
15. Какие условия используются для приближённого линейного поиска?
Ответ:
Условия Вульфа.
16. Какая формула для βₖ используется «по умолчанию» в нелинейном случае?
Ответ:
Формула Полака–Рибьера.
17. Запишите формулу Флетчера–Ривза для βₖ.
Ответ:
18. Запишите формулу Полака–Рибьера для βₖ.
Ответ:
19. Запишите формулу Хестенеса–Штифеля для βₖ.
Ответ:
20. Запишите формулу Дая–Юана для βₖ.
Ответ:
21. Почему все формулы βₖ совпадают в квадратичном случае?
Ответ:
Потому что градиенты и направления поиска удовлетворяют точному секущему условию.
22. Какие преимущества имеют методы сопряжённых градиентов?
Ответ:
Быстрая сходимость и отсутствие необходимости хранить матрицу Гессе.
23. Какое свойство матрицы Гессе желательно для быстрой сходимости?
Ответ:
Диагональное преобладание.
24. В чём основной недостаток методов сопряжённых градиентов?
Ответ:
Чувствительность к плохой обусловленности матрицы Гессе.
25. Что такое число обусловленности матрицы?
Ответ:
26. Что показывает число обусловленности?
Ответ:
Насколько задача является овражной и как быстро будет сходиться метод.
27. Чему равно число обусловленности для сферической квадратичной функции?
Ответ:
28. Как ведёт себя число обусловленности для сильно овражных задач?
Ответ:
29. Как влияет большое число обусловленности на сходимость метода?
Ответ:
Метод сходится медленно и может проявлять численную нестабильность.
30. Как можно улучшить работу метода сопряжённых градиентов при плохой обусловленности?
Ответ:
Использовать предобуславливание.
Краткий вывод для экзамена
Ответ одной фразой:
Метод сопряжённых градиентов — это эффективный метод оптимизации, использующий взаимно сопряжённые направления и обладающий конечной сходимостью в квадратичном случае.
