Difference between revisions of "BSc: IntroductionToOptimizationAndNumericalOptimizationMethods"

From IU
Jump to navigation Jump to search
(Created page with "= <span style="color:red;">Название дисциплины</span> = : '''Квалификация выпускника''': <span style="color:red;">бакалавр/ма...")
 
Line 1: Line 1:
  +
= Численные методы оптимизации=
= <span style="color:red;">Название дисциплины</span> =
 
: '''Квалификация выпускника''': <span style="color:red;">бакалавр/магистр</span>
+
: '''Квалификация выпускника''': бакалавр
: '''Направление подготовки''': __________________
+
: '''Направление подготовки''': 09.03.01 - “Информатика и вычислительная техника”
: '''Направленность (профиль) образовательной программы''': <span style="color:red;">(Указывается направленность (профиль) образовательной программы</span>
+
: '''Направленность (профиль) образовательной программы''': Математические основы ИИ
: '''Программу разработал(а)''': __________________
+
: '''Программу разработали''': А.В. Гасников, Р. Хильдебранд
   
 
== 1. Краткая характеристика дисциплины ==
 
== 1. Краткая характеристика дисциплины ==
  +
Изучение дисциплины обеспечивает формирование и развитие компетенций обучающихся в области численных методов оптимизации. Рассматриваются разные классы задач и подходящие методы решения вместе с оценками скорости сходимости. Во вводной части предоставляются необходимые элементы математического и выпуклого анализа и линейной алгебры. Обучающиеся знакомятся с классическими формулировками задач оптимизации, базовыми методами оптимизации, а также способами их настройки, сравнения и выбора под конкретные задачи. Изучаются методы разных порядков, методы для решения маломерных задач, а также приёмы автоматического дифференцирования для построения оракулов.
Изучение дисциплины обеспечивает формирование и развитие компетенций обучающихся в области <span style="color:red;">(указывается область изучаемой дисциплины. Например: программного обеспечения и его разработки; робототехники и т.д.)</span>, их применение для решения различных прикладных задач в рамках профессиональной деятельности. В ходе освоения дисциплины обучающиеся рассматривают <span style="color:red;">(краткое описание содержания дисциплины)</span>.
 
   
 
== 2. Перечень планируемых результатов обучения ==
 
== 2. Перечень планируемых результатов обучения ==
  +
: '''Целью освоения дисциплины''' является изучение современных численных методов оптимизации, как с точки зрения теории сложности, так и с практической точки зрения подбора подходящего метода для конкретной задачи.
: '''Целью освоения дисциплины''' ...
 
   
  +
: '''Задачами дисциплины'''
: '''Задачами дисциплины''' вляются ... <span style="color:red;">(перечислить задачи дисциплины, например: изучение принципов организации подсистем обработки естественного языка для различных прикладных задач и тенденций развития лингвистических ресурсов в сфере интеллектуальных информационных технологий и т.д.).</span>
 
  +
  +
• изучение различных постановок и классов задач оптимизации;<br>
  +
• изучение понятий из теории выпуклого анализа, мат. анализа и линейной алгебры, необходимых для построения теории численных методов оптимизации;<br>
  +
• изучение теории сложности задач и алгоритмов, критерии точности решения;<br>
  +
• изучение простых методов для решения элементарных задач, которые возникают как низко-уровневые подзадачи в более сложных алгоритмах;<br>
  +
• изучение методов для решения маломерных выпуклых задач;<br>
  +
• изучение приёмов штрафных функций и барьеров для решения обусловленных задач;<br>
  +
• изучение метода множителей Лагранжа для решения обусловленных задач, условия ККТ;<br>
  +
• изучение методов первого порядка (градиентный спуск, метод тяжелого шарика, ускоренный метод Нестерова), а также их различных модификаций и практических улучшений;<br>
  +
• изучение методов негладкой оптимизации: субградиентного спуска, метода Франк-Вульфа;<br>
  +
• изучение метода сопряжённых градиентов для решения больших линейных систем и квадратичных задач;<br>
  +
• изучение методов второго порядка и методов квази-Ньютона;<br>
  +
• изучение задач линейного программирования и симплекс-метода для их решения;<br>
  +
• изучение приёмов автоматического дифференцирования;<br>
  +
• изучение рандомизированных методов оптимизации.
   
 
=== Общая характеристика результата обучения по дисциплине ===
 
=== Общая характеристика результата обучения по дисциплине ===
: '''Знания:''' сформированы систематические знания ...
+
: '''Знания:'''
<span style="color:red;">(информация, которой обладает обучающийся в определенных областях, полученная в процессе обучения, то есть это информация для осуществления какой-либо деятельности (действия))</span>
 
   
  +
• различные постановки задач оптимизации, классификация задач по разным признакам;<br>
: '''Умения:''' сформированы умения ...
 
  +
• математические основы алгоритмов оптимизации;<br>
<span style="color:red;">(предполагает целенаправленное выполнение действий, по изученной информации)</span>
 
  +
• классические методы оптимизации, их сложность, область применения и скорость сходимости;<br>
  +
• приёмы автоматического дифференцирования для построения оракулов;<br>
   
  +
: '''Навыки (владения):''' сформировано владение навыками ...
 
  +
: '''Умения:'''
<span style="color:red;">(автоматизированные устойчивые умения выполнять определенную работу, то есть действие выполняется без контроля сознания, автоматически)</span>
 
  +
  +
• дифференцирование (теоретическое и практическое) функций, зависящих от многих переменных;<br>
  +
• реализация различных методов оптимизации;<br>
  +
• настройка параметров методов оптимизации под конкретные задачи;<br>
  +
• выбор методов оптимизации в зависимости от задачи.
  +
  +
: '''Навыки (владения):'''
  +
  +
• оперирование базовыми понятиями из выпуклого анализа, мат. анализа и линейной алгебры;<br>
  +
• реализация базовых методов оптимизации;<br>
  +
• сравнение сложности и скорости сходимости различных методов оптимизации между собой;<br>
  +
• оперирование различными оптимизационными постановками и методами их решения;<br>
  +
• самостоятельное усовершенствование оптимизационных постановок в зависимости от требований на получаемое решение задачи;<br>
   
 
== 3. Структура и содержание дисциплины ==
 
== 3. Структура и содержание дисциплины ==
  +
<span style="color:red;">(Указываются: 1) порядковый номер раздела (количество разделов зависит от содержания Вашей дисциплины); 2) наименования разделов дисциплины; 3) темы указанных разделов (количество тем в каждом разделе зависит от содержания Вашей дисциплины)</span>
 
 
{| class="wikitable" style="width:70%;"
 
{| class="wikitable" style="width:70%;"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
Line 30: Line 59:
 
| style="width:30%" | Наименование раздела <br> дисциплины
 
| style="width:30%" | Наименование раздела <br> дисциплины
 
| style="width:60%" | Содержание дисциплины по темам
 
| style="width:60%" | Содержание дисциплины по темам
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
+
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 1. || элементы выпуклого анализа, мат. анализа и линейной алгебры || - Отделяющие и опорные плоскости
| style="text-align:center;" | 1. || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
  +
|- style="background-color:#F8F9FA; color:#202122;"
 
  +
- нормальный конус
| style="text-align:center;" | 2. || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
  +
|- style="background-color:#F8F9FA; color:#202122;"
 
  +
- теорема о неявной функции
| style="text-align:center;" | 3. || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
  +
|- style="background-color:#F8F9FA; color:#202122;"
 
  +
- условия оптимальности ККТ, условие Слейтера
| style="text-align:center;" | 4. || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
  +
|- style="background-color:#F8F9FA; color:#202122;"
 
  +
- двойственное векторное пространство
| style="text-align:center;" | 5. || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
  +
|- style="background-color:#F8F9FA; color:#202122;"
 
  +
- субградиент, градиент и гессиан
| style="text-align:center;" | ... || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 2. || классы функций и задач оптимизации || - выпуклые, строго выпуклые, липшицевые и гладкие функции
  +
  +
- функции с липшицевым градиентом
  +
  +
- выпуклые / невыпуклые задачи
  +
  +
- обусловленные / безусловные задачи
  +
  +
- гладкие / негладкие задачи
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 3. || оракулы, сложность класса задач оптимизации || - Алгоритм, опирающийся на вызов оракула
  +
  +
- сопротивляющийся оракул
  +
  +
- нижние оценки сложности
  +
  +
- оптимальный метод для данного класса
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 4. || одномерный поиск || - Метод дихотомии
  +
  +
- метод золотого сечения
  +
  +
- правило Армихо
  +
  +
- неточные методы
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 5. || Простейшие задачи оптимизации || - Минимизация линейной функции на кубе, l1 шаре, симплексе, зонотопе, l2 шаре, эллипсоиде
  +
  +
- минимизация квадратичной функции на l2 шаре, сфере
  +
  +
- минимизация выпуклой квадратичной функции на аффинном подпространстве
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 6. || Методы решения маломерных выпуклых задач || - Метод эллипсоидов
  +
  +
- метод центров тяжести
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 7. || Методы первого порядка || - градиентный спуск
  +
  +
- момент инерции и ускорение, метод тяжелого шарика и метод Нестерова
  +
  +
- метод сопряжённых градиентов
  +
  +
- теоретическая сходимость методов градиентного спуска, тяжелого шарика и Нестерова
  +
  +
- теоретическая оптимальность
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 8. || Методы условной оптимизации || - Штрафные функции
  +
  +
- барьеры
  +
  +
- метод обобщённого лагранжиана
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 9. || Метод Ньютона || - метод Ньютона
  +
  +
- аффинная инвариантность метода Ньютона, самосогласованные функции
  +
  +
- Ньютоновский декремент
  +
  +
- квазиньютоновские методы: BFGS, L-BFGS
  +
  +
- метод Ньютона с кубической регуляризацией
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 10. || Методы негладкой оптимизации || - Субградиентный метод
  +
  +
- метод Франк-Вульфа
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 11. || Линейное программирование || - Линейные программы
  +
  +
- сильная двойственность
  +
  +
- симплекс-метод, прямой и двойственный
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 12. || Автоматическое дифференцирование || - граф вычислений
  +
  +
- библиотеки матрично-векторного дифференцирования (autograd, pytorch, jax)
  +
  +
- реализация простейших методов оптимизации с помощью библиотек дифференцирования
  +
  +
 
|}
 
|}
   
Line 50: Line 159:
 
| style="width:10%" | №<br>п/п
 
| style="width:10%" | №<br>п/п
 
| style="width:30%" | Наименование раздела<br>дисциплины (модуля)
 
| style="width:30%" | Наименование раздела<br>дисциплины (модуля)
| style="width:60%" | Перечень рассматриваемых тем (вопросов)<br><span style="color:red;">(Указываются ВСЕ задания для практических занятий по разделам дисциплины подробно в соответствии с темами)</span>
+
| style="width:60%" | Перечень рассматриваемых тем (вопросов)<br>
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
+
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 1. || элементы выпуклого анализа, мат. анализа и линейной алгебры || 1. Постройте опорную плоскость к данному выпуклому множеству в данной точке.
| style="text-align:center;" | 1. || ||
 
  +
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
  +
2. Постройте отделяющую плоскость между данными выпуклыми множествами.
| style="text-align:center;" | 2. || ||
 
  +
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
  +
3. Постройте нормальный конус к данному выпуклому множеству в данной точке.
| style="text-align:center;" | 3. || ||
 
  +
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
  +
4. Установите, в окрестностях каких точек <math>(x,y)</math> система равенств <math>\Phi(x,y) = 0</math> локально задаёт функцию <math>y(x)</math>.
| style="text-align:center;" | 4. || ||
 
  +
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
  +
5. Найдите субградиент функции <math>f: R^d \to R</math>
| style="text-align:center;" | 5. || ||
 
  +
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
  +
6. Найдите градиент функции <math>f: R^d \to R</math>
| style="text-align:center;" | ... || ||
 
  +
  +
7. Найдите гессиан функции: <math>f: R^d \to R</math>
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 2. || классы функций и задач оптимизации || 1. Исследуйте данную функцию на (строгую) выпуклость, липшицевость, гладкость, липшицевость градиента.
  +
  +
2. Исследуйте данное множество на выпуклость.
  +
  +
3. Установите гладкость / негладкость, выпуклость / невыпуклость, обусловленность / безусловность данной задачи оптимизации.
  +
  +
4. Вычислите константы липшица / липшица градиента / строгой выпуклости для данной функции.
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 3. || оракулы, сложность класса задач оптимизации || 1. Постройте отделяющий оракул для задачи линейного программирования <math>min_x <c,x> : Ax <= b</math>.
  +
  +
2. Для данной функции, постройте оракул 0-го, 1-го, 2-го порядка.
  +
  +
3. Постройте сопротивляющийся оракул, выдающий знак градиента, для одномерной задачи минимизации <math>C^1</math> функции на интервале.
  +
  +
4. Постройте сопротивляющийся оракул 0-го порядка для одномерной задачи <math>C^0</math> функции на интервале.
  +
  +
5. Выпишите нижние оценки сложности для данного класса задач оптимизации.
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 4. || одномерный поиск || 1. Реализуйте метод бисекции на луче и на интервале.
  +
  +
2. Реализуйте метод золотого сечения на луче и на интервале.
  +
  +
3. Реализуйте неточный одномерный поиск по правилу Армихо.
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 5. || Простейшие задачи оптимизации || 1. Реализуйте функции, минимизирующие линейный функционал на кубе, l1 шаре, симплексе, зонотопе, l2 шаре, эллипсоиде.
  +
  +
2. Реализуйте функции, минимизирующие квадратичный функционал на l2 шаре и на сфере.
  +
  +
3. Реализуйте функцию, минимизирующую квадратичный функционал на аффинном подпространстве.
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 6. || Методы решения маломерных выпуклых задач || 1. Реализуйте метод эллипсоида для решения задач линейного программирования <math>min_x <c,x> : Ax <= b</math>.
  +
  +
2. Реализуйте метод центров тяжести для решения задачи минимизации линейного функционала на политопе, опирающийся на вызов оракула, вычисляющего центр тяжести политопа.
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 7. || Методы первого порядка || 1. Реализуйте метод градиентного спуска
  +
  +
2. Реализуйте метод тяжёлого шарика
  +
  +
3. Реализуйте ускоренный метод Нестерова
  +
  +
4. Реализуйте метод сопряжённых градиентов.
  +
  +
5. Охарактеризуйте скорость сходимости методов.
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 8. || Методы условной оптимизации || 1. Предложите барьер для данного множества.
  +
  +
2. Предложите штрафную функцию для данного множества.
  +
  +
3. Реализуйте метод обобщённого лагранжиана.
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 9. || Метод Ньютона || 1. Реализуйте метод Ньютона
  +
  +
2. Реализуйте метод BFGS
  +
  +
3. Реализуйте метод L-BFGS. Обоснуйте эффективность реализации
  +
  +
4. Охарактеризуйте сходимость методов.
  +
  +
5. Реализуйте метод Ньютона с кубической реализацией.
  +
  +
6. Вычислите Ньютоновский декремент для данной функции в данной точке.
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 10. || Методы негладкой оптимизации || 1. Реализуйте субградиентный метод.
  +
  +
2. Реализуйте метод Франк-Вульфа.
  +
  +
3. Охарактеризуйте сходимость методов.
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 11. || Линейное программирование || 1. Установите, является ли данная задача оптимизации линейной программой.
  +
  +
2. Сформулируйте данную задачу оптимизации в виде линейной программы.
  +
  +
3. Для данного полиэдра, перечислите все вершины и установите, какие из них вырождены.
  +
  +
4. Для данной задачи линейного программирования, сформулируйте двойственную задачу.
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 12. || Автоматическое дифференцирование || 1. По графу вычислений, найдите производные по всем переменным
  +
  +
2. Реализуйте дифференцирование функции c помощью библиотеки autograd
  +
  +
3. Реализуйте дифференцирование функции c помощью библиотеки pytorch
  +
  +
4. Реализуйте дифференцирование функции c помощью библиотеки jax
  +
  +
 
|}
 
|}
  +
 
'''Текущий контроль успеваемости обучающихся по дисциплине:'''
 
'''Текущий контроль успеваемости обучающихся по дисциплине:'''
   
<span style="color:red;">(К формам текущего контроля можно отнести собеседование, коллоквиум, тест, контрольную работу, лабораторную работу, эссе, реферат и иные творческие работы.)</span>
 
 
{| class="wikitable" style="width:70%;"
 
{| class="wikitable" style="width:70%;"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
 
| style="width:5%" | №<br>п/п
 
| style="width:5%" | №<br>п/п
 
| style="width:20%" | Наименование раздела<br>дисциплины
 
| style="width:20%" | Наименование раздела<br>дисциплины
| style="width:25%" | Форма текущего контроля<br><br><span style="color:red;">(выберите соответствующие формы контроля)</span>
+
| style="width:25%" | Форма текущего контроля<br>
| style="width:50%" | Материалы текущего контроля<br><br><span style="color:red;">(Указываются ВСЕ ЗАДАНИЯ/ВОПРОСЫ текущего контроля успеваемости обучающихся по разделам дисциплины подробно в соответствии с требованиями)</span>
+
| style="width:50%" | Материалы текущего контроля<br>
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
+
|- style="background-color:#F8F9FA; color:#202122;"
| style="text-align:center;" | 1.
+
| style="text-align:center;" | 1. || элементы выпуклого анализа, мат. анализа и линейной алгебры
  +
|
 
  +
классы функций и задач оптимизации
| style="text-align:center;" | <span style="color:red;">Проверка выполнения домашних заданий;<br>Устный / письменный опрос;<br>Тестирование (письменное или компьютерное);<br>Эссе;<br>Доклад;<br>Защита проекта; Коллоквиум;<br>Проверка разработки отдельных частей кода программного продукта и другие формы текущего контроля, используемые Вами на занятиях</span>
 
  +
| Например:
 
  +
оракулы, сложность класса задач оптимизации || Домашние задание;
Устный / письменный опрос:<br>-<br>-<br>-<br>...<br>
 
  +
Коллоквиум || В домашнее задание включаются задачи, нерешенные во время семинарских занятий
Тематика групповых проектов:<br>-<br>-<br>-<br>...<br>
 
  +
|- style="background-color:#F8F9FA; color:#202122;"
Темы докладов:<br>-<br>-<br>-<br>...<br>
 
  +
| style="text-align:center;" | 2. || одномерный поиск
Тематика эссе:<br>-<br>-<br>-<br>...<br>
 
  +
Задания, в том числе, для групповых проектов:<br>-<br>-<br>-<br>...<br>
 
  +
Простейшие задачи оптимизации
Тестирование (письменное или компьютерное):<br>-<br>-<br>-<br>...<br><br>
 
  +
Проверка разработки отдельных частей кода программного продукта.
 
  +
Методы решения маломерных выпуклых задач || Домашние задание;
  +
Коллоквиум || В домашнее задание включаются задачи, нерешенные во время семинарских занятий
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 3. || Методы первого порядка
  +
  +
Методы условной оптимизации
  +
  +
Метод Ньютона || Домашние задание;
  +
Коллоквиум || В домашнее задание включаются задачи, нерешенные во время семинарских занятий
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 4. || Методы негладкой оптимизации
  +
  +
Линейное программирование
  +
  +
Автоматическое дифференцирование || Домашние задание;
  +
Коллоквиум || В домашнее задание включаются задачи, нерешенные во время семинарских занятий
  +
   
Другие формы текущего контроля, используемые Вами на занятиях<br>-<br>-<br>-<br>...<br>
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 2.
 
|
 
| style="text-align:center;" | <span style="color:red;">Проверка выполнения домашних заданий;<br>Устный / письменный опрос;<br>Тестирование (письменное или компьютерное);<br>Эссе;<br>Доклад;<br>Защита проекта; Коллоквиум;<br>Проверка разработки отдельных частей кода программного продукта и другие формы текущего контроля, используемые Вами на занятиях</span>
 
|
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 3.
 
|
 
| style="text-align:center;" | <span style="color:red;">Проверка выполнения домашних заданий;<br>Устный / письменный опрос;<br>Тестирование (письменное или компьютерное);<br>Эссе;<br>Доклад;<br>Защита проекта; Коллоквиум;<br>Проверка разработки отдельных частей кода программного продукта и другие формы текущего контроля, используемые Вами на занятиях</span>
 
|
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 4.
 
|
 
| style="text-align:center;" | <span style="color:red;">Проверка выполнения домашних заданий;<br>Устный / письменный опрос;<br>Тестирование (письменное или компьютерное);<br>Эссе;<br>Доклад;<br>Защита проекта; Коллоквиум;<br>Проверка разработки отдельных частей кода программного продукта и другие формы текущего контроля, используемые Вами на занятиях</span>
 
|
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 5.
 
|
 
| style="text-align:center;" | <span style="color:red;">Проверка выполнения домашних заданий;<br>Устный / письменный опрос;<br>Тестирование (письменное или компьютерное);<br>Эссе;<br>Доклад;<br>Защита проекта; Коллоквиум;<br>Проверка разработки отдельных частей кода программного продукта и другие формы текущего контроля, используемые Вами на занятиях</span>
 
|
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | ... || || ||
 
 
|}
 
|}
  +
 
'''Контрольные вопросы для подготовки к промежуточной аттестации:'''
 
'''Контрольные вопросы для подготовки к промежуточной аттестации:'''
 
{| class="wikitable" style="width:70%;"
 
{| class="wikitable" style="width:70%;"
Line 116: Line 308:
 
| style="width:25%" | Наименование <br> раздела дисциплины
 
| style="width:25%" | Наименование <br> раздела дисциплины
 
| style="width:65%" | Вопросы
 
| style="width:65%" | Вопросы
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
+
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 1. || элементы выпуклого анализа, мат. анализа и линейной алгебры || Как определяется опорная плоскость? Как определяется отделяющая плоскость? Постройте контрпример непересекающихся невыпуклых множеств, которых нельзя отделить друг от друга плоскостью. Как определяется двойственное векторное пространство? Как определяется нормальный конус? Почему градиент является двойственным вектором? Как формулируются условия Каруша-Куна-Такера?
| style="text-align:center;" | 1. || ||
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
+
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 2. || классы функций и задач оптимизации || Что такое выпуклая функция? Что такое липшицева функция? Что такое гладкая функция? Что такое функция с липшицевым градиентом? Что такое сильно выпуклая функция? По каким признакам можно классифицировать задачи оптимизации?
| style="text-align:center;" | 2. || ||
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
+
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 3. || оракулы, сложность класса задач оптимизации || Что такое сопротивляющийся оракул? Имеет ли смысл понятие сложности для одной конкретной задачи? Может ли оптимальный для данного класса задач алгоритм работать хуже на конкретной задаче из этого класса, чем неоптимальный алгоритм?
| style="text-align:center;" | 3. || ||
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
+
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 4. || одномерный поиск || Как построить оракул для метода дихотомии и метода золотого сечения? Какие скорости сходимости у методов дихотомии и золотого сечения? Почему при поиске по неограниченному подмножеству числовой прямой неоптимально строить итерации через равные промежутки?
| style="text-align:center;" | 4. || ||
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
+
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 5. || Простейшие задачи оптимизации || Запишите решения задачи минимизации линейной функции на кубе, l1 шаре, симплексе, зонотопе, l2 шаре, эллипсоиде. Выведите формулу для минимума выпуклой квадратичной функции на аффинном подпространстве с помощью метода множителей Лагранжа. Выведите формулу для минимума однородной квадратичной функции на сфере с помощью метода множителей Лагранжа.
| style="text-align:center;" | 5. || ||
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
+
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 6. || Методы решения маломерных выпуклых задач || Почему в решении обусловленной задачи оптимизации методом эллипсоида нет принципиальной разницы между итерациями в допустимом множестве и вне его? Почему метод эллипсоида не пригоден для невыпуклых задач? Почему используется метод эллипсоидов, несмотря на то, что метод центров тяжести сходится быстрее?
| style="text-align:center;" | ... || ||
 
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 7. || Методы первого порядка || Запишите итерацию метода градиентного спуска/тяжелого шарика/метода Нестерова/сопряжённых градиентов. Какие скорости сходимости у этих методов на выпуклых функциях / липшицевых функциях / сильно выпуклых функциях функциях с липшицевым градиентом? Почему поведение метода градиентного спуска зависит от выбранной системы координат?
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 8. || Методы условной оптимизации || Как определяется штрафная функция? Как определяется барьерная функция? Запишите итерацию метода обобщённого лагранжиана.
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 9. || Метод Ньютона || Как определяется итерация метода Ньютона / метода Ньютона с кубической регуляризацией / метода BFGS ? Что такое ньютоновский декремент? Вычислите декремент для выпуклой квадратичной функции. Почему метод Ньютона аффинно инвариантен? Какова локальная скорость сходимости метода Ньютона?
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 10. || Методы негладкой оптимизации || Выпишите итерацию метода Франк-Вульфа для минимизации функции на l1 шаре. Какие скорости сходимости у метода Франк-Вульфа и у субградиентного метода?
  +
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 11. || Линейное программирование || Чем характеризуется линейная программа? Ограничения на какие нормы могут быть интегрированы в формулировку линейной программы? Как формулируется теорема о сильной двойственности? Выпишите необходимые и достаточные условия оптимальности для прямо-двойственной пары линейных программ.
  +
  +
 
|}
 
|}
 
'''Вопросы/Задания к промежуточной аттестации в устной/письменной форме:'''
 
'''Вопросы/Задания к промежуточной аттестации в устной/письменной форме:'''
   
  +
1. Элементы выпуклого анализа, мат. анализа и линейной алгебры<br>
<span style="color:red;">(Указываются ВСЕ ЗАДАНИЯ/ВОПРОСЫ для промежуточной аттестации.)</span>
 
  +
Определение выпуклого множества. Определение выпуклой функции. Определение двойственного векторного пространства. Определение отделяющей и опорной плоскости. Задачи на вычисление опорной плоскости и отделяющей плоскости. Условие оптимальности Каруша-Куна-Такера.<br>
  +
Формулировка условия локального минимума на <math>R^d</math> для произвольной непрерывно дифференцируемой функции. Формулировка условия глобального минимума на <math>R^d</math> для выпуклой непрерывно дифференцируемой функции. <br>
  +
Определение нормального конуса к выпуклому множеству в точке. Вычисление нормального конуса на примере.<br>
  +
2. Классы функций и задач оптимизации<br>
  +
Критерий выпуклости для функции класса <math>C^2</math>. Классы липшицевых функций, сильно выпуклых функций, функций с липшицевым градиентом. Определение классов функций <math>C^k<math>. Ограниченность градиента для липшицевых функций.<br>
  +
Способы классификации задач оптимизации. Примеры классов функций. Примеры классов задач оптимизации. <br>
  +
3. Оракулы, сложность класса задач оптимизации<br>
  +
Определение оракула. Определение класса задач с помощью оракула. Примеры оракулов и классов задач. Нижние оценки сложности алгоритмов для класса задач. Что такое сопротивляющийся оракул? Оптимальные алгоритмы для решения класса задач.<br>
  +
4. Одномерный поиск<br>
  +
Оракул для метода дихотомии и метода золотого сечения. Оценки на количество итераций на неограниченном интервале. Скорости сходимости методов дихотомии и золотого сечения. Правило Армихо для неточного 1-мерного поиска.<br>
  +
5. Простейшие задачи оптимизации<br>
  +
Формулы решения задачи минимизации линейной функции на кубе, l1 шаре, симплексе, зонотопе, l2 шаре, эллипсоиде. Формула для минимума выпуклой квадратичной функции на аффинном подпространстве. Формула для минимума однородной квадратичной функции на сфере и на l2 шаре.<br>
  +
6. Методы решения маломерных выпуклых задач<br>
  +
Итерация метода эллипсоида с формулами обновления. Принцип работы метода центров тяжести. Скорость сходимости этих методов в терминах числа итераций. Построение отделяющего оракула для метода эллипсоидов для конкретной задачи.<br>
  +
7. Методы первого порядка<br>
  +
Итерация метода градиентного спуска. Зачем нужен параметр длины шага? Скорость сходимости градиентного спуска для гладких сильно выпуклых задач. <br>
  +
Итерации метода тяжелого шарика и ускоренного градиентного метода (метода Нестерова). Скорость сходимости ускоренных методов для гладких сильно выпуклых задач. <br>
  +
Итерация метода сопряжённых градиентов.<br>
  +
Нижние оценки сложности методов первого порядка для решения гладких сильно выпуклых задач. <br>
  +
8. Методы условной оптимизации<br>
  +
Определение штрафной функции. Определение барьерной функции. Доказательство сходимости метода штрафных функций в непрерывном случае. Доказательство сходимости метода барьерных функций в непрерывном случае. Метод обобщённого лагранжиана.<br>
  +
9. Метод Ньютона<br>
  +
Итерация метода Ньютона. Интерпретация через аппроксимацию Тейлора. Скорость сходимости метода Ньютона для сильно выпуклых задач с Липшицевым гессианом. Определение Ньютоновского декремента. Поведение декремента при итерациях, зависимость от длины шага. Аффинная инвариантность метода Ньютона.<br>
  +
Итерация методов BFGS и L-BFGS. Сходимость этих методов.<br>
  +
Итерация метода Ньютона с кубической регуляризацией. Решение вспомогательной задачи. Локальная сходимость метода. Свойство обхода седловых точек.<br>
  +
10. Методы негладкой оптимизации<br>
  +
Итерация метода субградиентного спуска. Скорость сходимости метода для выпуклых задач с липшицевой функцией. <br>
  +
Итерация метода Франк-Вульфа. Скорость сходимости метода.<br>
  +
11. Линейное программирование<br>
  +
Определение класса линейных программ. Какие задачи оптимизации могут быть представлены в виде линейной программы? Теорема о сильной двойственности. Построение двойственной линейной программы. Необходимые и достаточные условия оптимальности для прямо-двойственной пары линейных программ.<br>
  +
Принцип работы симплекс-метода. Варианты симплекс-метода.<br>
  +
12. Автоматическое дифференцирование<br>
  +
Пакеты для автоматического дифференцирования. Определение вычислительного графа. Принцип автоматического дифференцирования.<br>
  +
   
1.<br>2.<br>3.<br>...<br>48.<br>49.<br>50.<br>...
 
 
=== Перечень учебно-методического обеспечения дисциплины ===
 
=== Перечень учебно-методического обеспечения дисциплины ===
 
Список основной литературы:
 
Список основной литературы:
   
  +
1. Воронцова Е.А., Гасников А.В., Хильдебранд Р.Ф., Стонякин Ф.С. Выпуклая оптимизация. Москва, МФТИ, 2021.<br>
Список дополнительной литературы:
 
  +
2. Гасников А.В. Современные численные методы оптимизации. Москва, МЦМНО, 2021.<br>
  +
3. Yurii Nesterov, Lectures on Convex Optimization (2nd edition), Springer, 2018 / ISBN: 978-3-319-91578-4<br>
  +
<br>
  +
Список дополнительной литературы:<br>
  +
1. А.С. Немировский and Д.Б. Юдин. Сложность задач и эффективность методов оптимизации. Москва, Наука, 1979.<br>
  +
2. Б.Т. Поляк. Введение в оптимизацию. Москва, Наука, 1983.<br>
  +
3. R.T. Rockafellar. Convex analysis. https://convexoptimization.com/TOOLS/AnalyRock.pdf<br>
  +
 
=== Методические указания для обучающихся по освоению дисциплины ===
 
=== Методические указания для обучающихся по освоению дисциплины ===
<span style="color:red;">(Указываются рекомендации для обучающихся, которые раскрывают суть их работы при различных видах деятельности в рамках освоения дисциплины. Данные рекомендации должны охватывать работу с лекционным материалом, подготовку и работу во время проведения семинарских занятий, самостоятельную работу, подготовку к текущему контролю и промежуточной аттестации)</span>
 
   
  +
<span style="color:red;">(Выберите соответствующие виды учебных занятий, которые используются при изучении Вашей дисциплины)</span>
 
 
{| class="wikitable" style="width:80%;"
 
{| class="wikitable" style="width:80%;"
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#FF0000; font-weight:bold;"
+
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; font-weight:bold;"
 
| style="width:20%" | Вид учебных<br>занятий/деятельности
 
| style="width:20%" | Вид учебных<br>занятий/деятельности
 
| style="width:80%" | Деятельность обучающегося
 
| style="width:80%" | Деятельность обучающегося
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Лекция
+
| style="vertical-align:middle; text-align:center;" | Лекция
| style="vertical-align:middle; text-align:left; color:red;" | Написание конспекта лекций: кратко, схематично, последовательно фиксировать основные положения лекции, выводы, формулировки, обобщения; помечать важные мысли, выделять ключевые слова, термины. Обозначить вопросы, термины или другой материал, который вызывает трудности, пометить и попытаться найти ответ в рекомендуемой литературе. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия.
+
| style="vertical-align:middle; text-align:left;" | Написание конспекта лекций: кратко, схематично, последовательно фиксировать основные положения лекции, выводы, формулировки, обобщения; помечать важные мысли, выделять ключевые слова, термины. Обозначить вопросы, термины или другой материал, который вызывает трудности, пометить и попытаться найти ответ в рекомендуемой литературе. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Практическое (семинарское) занятие
+
| style="vertical-align:middle; text-align:center;" | Практическое (семинарское) занятие
| style="vertical-align:middle; text-align:left; color:red;" | При подготовке к семинарскому (практическому) занятию необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме. На основании обработанной информации постараться сформировать собственное мнение по выносимой на обсуждение тематике. Обосновать его аргументами, сформировать список источников, подкрепляющих его.<br>Во время семинарского (практического) занятия активно участвовать в обсуждении вопросов, высказывать аргументированную точку зрения на проблемные вопросы. Приводить примеры из источниковой базы и научной и/или исследовательской литературы.
+
| style="vertical-align:middle; text-align:left;" | При подготовке к семинарскому (практическому) занятию необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме. На основании обработанной информации постараться сформировать собственное мнение по выносимой на обсуждение тематике. Обосновать его аргументами, сформировать список источников, подкрепляющих его.<br>Во время семинарского (практического) занятия активно участвовать в обсуждении вопросов, высказывать аргументированную точку зрения на проблемные вопросы. Приводить примеры из источниковой базы и научной и/или исследовательской литературы.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Устный/письменный опрос
+
| style="vertical-align:middle; text-align:center;" | Устный/письменный опрос
| style="vertical-align:middle; text-align:left; color:red;" | Отвечать, максимально полно, логично и структурировано, на поставленный вопрос. Основная цель – показать всю глубину знаний по конкретной теме или ее части.
+
| style="vertical-align:middle; text-align:left;" | Отвечать, максимально полно, логично и структурировано, на поставленный вопрос. Основная цель – показать всю глубину знаний по конкретной теме или ее части.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Реферат
+
| style="vertical-align:middle; text-align:center;" | Реферат
| style="vertical-align:middle; text-align:left; color:red;" | Поиск источников и литературы, составление библиографии. При написании реферата рекомендуется использовать разнообразные источники, монографии и статьи из научных журналов, позволяющие глубже разобраться в различных точках зрения на заданную тему. Изучение литературы следует начинать с наиболее общих трудов, затем следует переходить к освоению специализированных исследований по выбранной теме. Могут быть использованы ресурсы сети «Интернет» с соответствующими ссылками на использованные сайты.<br>Если тема содержит проблемный вопрос, следует сформулировать разные точки зрения на него. Рекомендуется в выводах указать свое собственное аргументированное мнение по данной проблеме. Подготовить презентацию для защиты реферата.
+
| style="vertical-align:middle; text-align:left;" | Поиск источников и литературы, составление библиографии. При написании реферата рекомендуется использовать разнообразные источники, монографии и статьи из научных журналов, позволяющие глубже разобраться в различных точках зрения на заданную тему. Изучение литературы следует начинать с наиболее общих трудов, затем следует переходить к освоению специализированных исследований по выбранной теме. Могут быть использованы ресурсы сети «Интернет» с соответствующими ссылками на использованные сайты.<br>Если тема содержит проблемный вопрос, следует сформулировать разные точки зрения на него. Рекомендуется в выводах указать свое собственное аргументированное мнение по данной проблеме. Подготовить презентацию для защиты реферата.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Эссе
+
| style="vertical-align:middle; text-align:center;" | Эссе
| style="vertical-align:middle; text-align:left; color:red;" | Написание прозаического сочинения небольшого объема и свободной композиции, выражающего индивидуальные впечатления и соображения по конкретному поводу или вопросу и заведомо не претендующего на определяющую или исчерпывающую трактовку предмета. При работе над эссе следует четко и грамотно формулировать мысли, структурировать информацию, использовать основные понятия, выделять причинно-следственные связи. Как правило эссе имеет следующую структуру: вступление, тезис и аргументация его, заключение. В качестве аргументов могут выступать исторические факты, явления общественной жизни, события, жизненные ситуации и жизненный опыт, научные доказательства, ссылки на мнение ученых и др.
+
| style="vertical-align:middle; text-align:left;" | Написание прозаического сочинения небольшого объема и свободной композиции, выражающего индивидуальные впечатления и соображения по конкретному поводу или вопросу и заведомо не претендующего на определяющую или исчерпывающую трактовку предмета. При работе над эссе следует четко и грамотно формулировать мысли, структурировать информацию, использовать основные понятия, выделять причинно-следственные связи. Как правило эссе имеет следующую структуру: вступление, тезис и аргументация его, заключение. В качестве аргументов могут выступать исторические факты, явления общественной жизни, события, жизненные ситуации и жизненный опыт, научные доказательства, ссылки на мнение ученых и др.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Подготовка к промежуточной аттестации
+
| style="vertical-align:middle; text-align:center;" | Подготовка к промежуточной аттестации
| style="vertical-align:middle; text-align:left; color:red;" | При подготовке к промежуточной аттестации необходимо проработать вопросы по темам, которые рекомендуются для самостоятельной подготовки. При возникновении затруднений с ответами следует ориентироваться на конспекты лекций, семинаров, рекомендуемую литературу, материалы электронных и информационных справочных ресурсов, статей.<br>Если тема вызывает затруднение, четко сформулировать проблемный вопрос и задать его преподавателю.
+
| style="vertical-align:middle; text-align:left;" | При подготовке к промежуточной аттестации необходимо проработать вопросы по темам, которые рекомендуются для самостоятельной подготовки. При возникновении затруднений с ответами следует ориентироваться на конспекты лекций, семинаров, рекомендуемую литературу, материалы электронных и информационных справочных ресурсов, статей.<br>Если тема вызывает затруднение, четко сформулировать проблемный вопрос и задать его преподавателю.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Практические (лабораторные) занятия
+
| style="vertical-align:middle; text-align:center;" | Практические (лабораторные) занятия
| style="vertical-align:middle; text-align:left; color:red;" | Практические занятия предназначены прежде всего для разбора отдельных сложных положений, тренировки аналитических навыков, а также для развития коммуникационных навыков. Поэтому на практических занятиях необходимо участвовать в тех формах обсуждения материала, которые предлагает преподаватель: отвечать на вопросы преподавателя, дополнять ответы других студентов, приводить примеры, задавать вопросы другим выступающим, обсуждать вопросы и выполнять задания в группах. Работа на практических занятиях подразумевает домашнюю подготовку и активную умственную работу на самом занятии. Работа на практических занятиях в форме устного опроса заключается прежде всего в тренировке навыков применять теоретические положения к самому разнообразному материалу. В ходе практических занятий студенты работают в группах для обсуждения предлагаемых вопросов.
+
| style="vertical-align:middle; text-align:left;" | Практические занятия предназначены прежде всего для разбора отдельных сложных положений, тренировки аналитических навыков, а также для развития коммуникационных навыков. Поэтому на практических занятиях необходимо участвовать в тех формах обсуждения материала, которые предлагает преподаватель: отвечать на вопросы преподавателя, дополнять ответы других студентов, приводить примеры, задавать вопросы другим выступающим, обсуждать вопросы и выполнять задания в группах. Работа на практических занятиях подразумевает домашнюю подготовку и активную умственную работу на самом занятии. Работа на практических занятиях в форме устного опроса заключается прежде всего в тренировке навыков применять теоретические положения к самому разнообразному материалу. В ходе практических занятий студенты работают в группах для обсуждения предлагаемых вопросов.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Самостоятельная работа
+
| style="vertical-align:middle; text-align:center;" | Самостоятельная работа
| style="vertical-align:middle; text-align:left; color:red;" | Самостоятельная работа состоит из следующих частей: 1) чтение учебной, справочной, научной литературы; 2) повторение материала лекций; 3) составление планов устных выступлений; 4) подготовка видеопрезентации. При чтении учебной литературы нужно разграничивать для себя материал на отдельные проблемы, концепции, идеи. Учебную литературу можно найти в электронных библиотечных системах, на которые подписан АНО Университет Иннополис.
+
| style="vertical-align:middle; text-align:left;" | Самостоятельная работа состоит из следующих частей: 1) чтение учебной, справочной, научной литературы; 2) повторение материала лекций; 3) составление планов устных выступлений; 4) подготовка видеопрезентации. При чтении учебной литературы нужно разграничивать для себя материал на отдельные проблемы, концепции, идеи. Учебную литературу можно найти в электронных библиотечных системах, на которые подписан АНО Университет Иннополис.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Видеопрезентация
+
| style="vertical-align:middle; text-align:center;" | Видеопрезентация
| style="vertical-align:middle; text-align:left; color:red;" | Подготовка видеопрезентаций по курсу. Видеопрезентации могут быть сделаны на любую тему, затронутую в ходе курса. Темы должны быть заранее согласованы с преподавателем. Видеопрезентации продолжительностью около 5 минут (300 секунд) должны быть подготовлены в группах, определяемых преподавателем. Несмотря на то, что это групповая работа, должен явно присутствовать вклад каждого члена группы.
+
| style="vertical-align:middle; text-align:left;" | Подготовка видеопрезентаций по курсу. Видеопрезентации могут быть сделаны на любую тему, затронутую в ходе курса. Темы должны быть заранее согласованы с преподавателем. Видеопрезентации продолжительностью около 5 минут (300 секунд) должны быть подготовлены в группах, определяемых преподавателем. Несмотря на то, что это групповая работа, должен явно присутствовать вклад каждого члена группы.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Доклад
+
| style="vertical-align:middle; text-align:center;" | Доклад
| style="vertical-align:middle; text-align:left; color:red;" | Публичное, развернутое сообщение по определенной теме или вопросу, основанное на документальных данных. При подготовке доклада рекомендуется использовать разнообразные источники, позволяющие глубже разобраться в теме. Учебную литературу можно найти в электронных библиотечных системах, на которые подписан АНО Университет Иннополис.
+
| style="vertical-align:middle; text-align:left;" | Публичное, развернутое сообщение по определенной теме или вопросу, основанное на документальных данных. При подготовке доклада рекомендуется использовать разнообразные источники, позволяющие глубже разобраться в теме. Учебную литературу можно найти в электронных библиотечных системах, на которые подписан АНО Университет Иннополис.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Дискуссия
+
| style="vertical-align:middle; text-align:center;" | Дискуссия
| style="vertical-align:middle; text-align:left; color:red;" | Публичное обсуждение спорного вопроса, проблемы. Каждая сторона должна оппонировать мнение собеседника, аргументируя свою позицию.
+
| style="vertical-align:middle; text-align:left;" | Публичное обсуждение спорного вопроса, проблемы. Каждая сторона должна оппонировать мнение собеседника, аргументируя свою позицию.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Контрольная работа
+
| style="vertical-align:middle; text-align:center;" | Контрольная работа
| style="vertical-align:middle; text-align:left; color:red;" | При подготовке к контрольной работе необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме.
+
| style="vertical-align:middle; text-align:left;" | При подготовке к контрольной работе необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Тестирование (устное/письменное)
+
| style="vertical-align:middle; text-align:center;" | Тестирование (устное/письменное)
| style="vertical-align:middle; text-align:left; color:red;" | При подготовке к тестированию необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме. Основная цель тестирования – показать уровень сформированности знаний по конкретной теме или ее части.
+
| style="vertical-align:middle; text-align:left;" | При подготовке к тестированию необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме. Основная цель тестирования – показать уровень сформированности знаний по конкретной теме или ее части.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Индивидуальная работа
+
| style="vertical-align:middle; text-align:center;" | Индивидуальная работа
| style="vertical-align:middle; text-align:left; color:red;" | При выполнение индивидуальной работы необходимо взять задание у преподавателя, ознакомиться с требованиями к выполнению работы, изучить поставленную проблему, найти решение проблемы. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия. Оформить результаты работы.
+
| style="vertical-align:middle; text-align:left;" | При выполнение индивидуальной работы необходимо взять задание у преподавателя, ознакомиться с требованиями к выполнению работы, изучить поставленную проблему, найти решение проблемы. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия. Оформить результаты работы.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Разработка отдельных частей кода
+
| style="vertical-align:middle; text-align:center;" | Разработка отдельных частей кода
| style="vertical-align:middle; text-align:left; color:red;" | Разработать часть кода, исходя из поставленной задачи и рекомендаций преподавателя. При выполнении работы рекомендуется обращаться к материалам лекций и семинарских (практических) занятий. Если возникают затруднения, необходимо проконсультироваться с преподавателем.
+
| style="vertical-align:middle; text-align:left;" | Разработать часть кода, исходя из поставленной задачи и рекомендаций преподавателя. При выполнении работы рекомендуется обращаться к материалам лекций и семинарских (практических) занятий. Если возникают затруднения, необходимо проконсультироваться с преподавателем.
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Выполнение домашних заданий и групповых проектов
+
| style="vertical-align:middle; text-align:center;" | Выполнение домашних заданий и групповых проектов
| style="vertical-align:middle; text-align:left; color:red;" | Для выполнения домашних заданий и групповых проектов необходимо получить формулировку задания от преподавателя и убедиться в понимании задания. При выполнение домашних заданий и групповых проектов необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме.
+
| style="vertical-align:middle; text-align:left;" | Для выполнения домашних заданий и групповых проектов необходимо получить формулировку задания от преподавателя и убедиться в понимании задания. При выполнение домашних заданий и групповых проектов необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме.
 
|}
 
|}
 
=== Методы и технологии обучения, способствующие формированию компетенции ===
 
=== Методы и технологии обучения, способствующие формированию компетенции ===
<span style="color:red;">(Указываются все используемые преподавателем методы и технологии обучения)</span>
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
 
| Методы и технологии обучения, способствующие формированию компетенции
 
| Методы и технологии обучения, способствующие формированию компетенции
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
  +
| Информационно – коммуникационная технология, Педагогика сотрудничества, Традиционные технологии, Модульная технология
| &nbsp;
 
  +
|}
 
<span style="color:red;">Например:</span>
 
{| class="wikitable" style="width:80%;"
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center; width:5%;" | 1.
 
| style="width:20%;" | Информационно – коммуникационная технология
 
| style="width:75%;" | &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 2.
 
| Технология развития критического мышления
 
| Основные методические приемы развития критического мышления
 
# Прием «Кластер»
 
# Таблица
 
#Учебно-мозговой штурм
 
#Интеллектуальная разминка
 
#Зигзаг, зигзаг -2
 
#Прием «Инсерт»
 
#Эссе
 
#Приём «Корзина идей»
 
#Приём «Составление синквейнов»
 
#Метод контрольных вопросов
 
#Приём «Знаю../Хочу узнать…/Узнал…»
 
#Круги по воде
 
#Ролевой проект
 
#Да – нет
 
#Приём «Чтение с остановками»
 
#Приём «Взаимоопрос»
 
#Приём «Перепутанные логические цепочки»
 
#Приём «Перекрёстная дискуссия»
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 3.
 
| Проектная технология
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 4.
 
| Технология проблемного обучения
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 5.
 
| Кейс – технология
 
| К методам кейс-технологий, активизирующим учебный процесс, относятся:
 
*метод ситуационного анализа (Метод анализа конкретных ситуаций, ситуационные задачи и упражнения; кейс-стадии)
 
*метод инцидента;
 
*метод ситуационно-ролевых игр;
 
*метод разбора деловой корреспонденции;
 
*игровое проектирование;
 
*метод дискуссии.
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 6.
 
| Технология интегрированного обучения
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 7.
 
| Педагогика сотрудничества
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 8.
 
| Технологии уровневой дифференциации
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 9.
 
| Групповая технология
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 10.
 
| Традиционные технологии (классно-урочная система)
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 11.
 
| Здоровьесберегающие технологии
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 12.
 
| Игровая технология
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 13.
 
| Модульная технология
 
|
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 14.
 
| Технология мастерских
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| &nbsp;
 
| и др.
 
| &nbsp;
 
 
|}
 
|}

Revision as of 17:09, 4 April 2024

Численные методы оптимизации

Квалификация выпускника: бакалавр
Направление подготовки: 09.03.01 - “Информатика и вычислительная техника”
Направленность (профиль) образовательной программы: Математические основы ИИ
Программу разработали: А.В. Гасников, Р. Хильдебранд

1. Краткая характеристика дисциплины

Изучение дисциплины обеспечивает формирование и развитие компетенций обучающихся в области численных методов оптимизации. Рассматриваются разные классы задач и подходящие методы решения вместе с оценками скорости сходимости. Во вводной части предоставляются необходимые элементы математического и выпуклого анализа и линейной алгебры. Обучающиеся знакомятся с классическими формулировками задач оптимизации, базовыми методами оптимизации, а также способами их настройки, сравнения и выбора под конкретные задачи. Изучаются методы разных порядков, методы для решения маломерных задач, а также приёмы автоматического дифференцирования для построения оракулов.

2. Перечень планируемых результатов обучения

Целью освоения дисциплины является изучение современных численных методов оптимизации, как с точки зрения теории сложности, так и с практической точки зрения подбора подходящего метода для конкретной задачи.
Задачами дисциплины
   • изучение различных постановок и классов задач оптимизации;
• изучение понятий из теории выпуклого анализа, мат. анализа и линейной алгебры, необходимых для построения теории численных методов оптимизации;
• изучение теории сложности задач и алгоритмов, критерии точности решения;
• изучение простых методов для решения элементарных задач, которые возникают как низко-уровневые подзадачи в более сложных алгоритмах;
• изучение методов для решения маломерных выпуклых задач;
• изучение приёмов штрафных функций и барьеров для решения обусловленных задач;
• изучение метода множителей Лагранжа для решения обусловленных задач, условия ККТ;
• изучение методов первого порядка (градиентный спуск, метод тяжелого шарика, ускоренный метод Нестерова), а также их различных модификаций и практических улучшений;
• изучение методов негладкой оптимизации: субградиентного спуска, метода Франк-Вульфа;
• изучение метода сопряжённых градиентов для решения больших линейных систем и квадратичных задач;
• изучение методов второго порядка и методов квази-Ньютона;
• изучение задач линейного программирования и симплекс-метода для их решения;
• изучение приёмов автоматического дифференцирования;
• изучение рандомизированных методов оптимизации.

Общая характеристика результата обучения по дисциплине

Знания:
   • различные постановки задач оптимизации, классификация задач по разным признакам;
• математические основы алгоритмов оптимизации;
• классические методы оптимизации, их сложность, область применения и скорость сходимости;
• приёмы автоматического дифференцирования для построения оракулов;


Умения:
   • дифференцирование (теоретическое и практическое) функций, зависящих от многих переменных;
• реализация различных методов оптимизации;
• настройка параметров методов оптимизации под конкретные задачи;
• выбор методов оптимизации в зависимости от задачи.
Навыки (владения):
   • оперирование базовыми понятиями из выпуклого анализа, мат. анализа и линейной алгебры;
• реализация базовых методов оптимизации;
• сравнение сложности и скорости сходимости различных методов оптимизации между собой;
• оперирование различными оптимизационными постановками и методами их решения;
• самостоятельное усовершенствование оптимизационных постановок в зависимости от требований на получаемое решение задачи;

3. Структура и содержание дисциплины


п/п
Наименование раздела
дисциплины
Содержание дисциплины по темам
1. элементы выпуклого анализа, мат. анализа и линейной алгебры - Отделяющие и опорные плоскости

- нормальный конус

- теорема о неявной функции

- условия оптимальности ККТ, условие Слейтера

- двойственное векторное пространство

- субградиент, градиент и гессиан

2. классы функций и задач оптимизации - выпуклые, строго выпуклые, липшицевые и гладкие функции

- функции с липшицевым градиентом

- выпуклые / невыпуклые задачи

- обусловленные / безусловные задачи

- гладкие / негладкие задачи

3. оракулы, сложность класса задач оптимизации - Алгоритм, опирающийся на вызов оракула

- сопротивляющийся оракул

- нижние оценки сложности

- оптимальный метод для данного класса

4. одномерный поиск - Метод дихотомии

- метод золотого сечения

- правило Армихо

- неточные методы

5. Простейшие задачи оптимизации - Минимизация линейной функции на кубе, l1 шаре, симплексе, зонотопе, l2 шаре, эллипсоиде

- минимизация квадратичной функции на l2 шаре, сфере

- минимизация выпуклой квадратичной функции на аффинном подпространстве

6. Методы решения маломерных выпуклых задач - Метод эллипсоидов

- метод центров тяжести

7. Методы первого порядка - градиентный спуск

- момент инерции и ускорение, метод тяжелого шарика и метод Нестерова

- метод сопряжённых градиентов

- теоретическая сходимость методов градиентного спуска, тяжелого шарика и Нестерова

- теоретическая оптимальность

8. Методы условной оптимизации - Штрафные функции

- барьеры

- метод обобщённого лагранжиана

9. Метод Ньютона - метод Ньютона

- аффинная инвариантность метода Ньютона, самосогласованные функции

- Ньютоновский декремент

- квазиньютоновские методы: BFGS, L-BFGS

- метод Ньютона с кубической регуляризацией

10. Методы негладкой оптимизации - Субградиентный метод

- метод Франк-Вульфа

11. Линейное программирование - Линейные программы

- сильная двойственность

- симплекс-метод, прямой и двойственный

12. Автоматическое дифференцирование - граф вычислений

- библиотеки матрично-векторного дифференцирования (autograd, pytorch, jax)

- реализация простейших методов оптимизации с помощью библиотек дифференцирования


4. Методические и оценочные материалы

Задания для практических занятий:


п/п
Наименование раздела
дисциплины (модуля)
Перечень рассматриваемых тем (вопросов)
1. элементы выпуклого анализа, мат. анализа и линейной алгебры 1. Постройте опорную плоскость к данному выпуклому множеству в данной точке.

2. Постройте отделяющую плоскость между данными выпуклыми множествами.

3. Постройте нормальный конус к данному выпуклому множеству в данной точке.

4. Установите, в окрестностях каких точек система равенств локально задаёт функцию .

5. Найдите субградиент функции

6. Найдите градиент функции

7. Найдите гессиан функции:

2. классы функций и задач оптимизации 1. Исследуйте данную функцию на (строгую) выпуклость, липшицевость, гладкость, липшицевость градиента.

2. Исследуйте данное множество на выпуклость.

3. Установите гладкость / негладкость, выпуклость / невыпуклость, обусловленность / безусловность данной задачи оптимизации.

4. Вычислите константы липшица / липшица градиента / строгой выпуклости для данной функции.

3. оракулы, сложность класса задач оптимизации 1. Постройте отделяющий оракул для задачи линейного программирования .

2. Для данной функции, постройте оракул 0-го, 1-го, 2-го порядка.

3. Постройте сопротивляющийся оракул, выдающий знак градиента, для одномерной задачи минимизации функции на интервале.

4. Постройте сопротивляющийся оракул 0-го порядка для одномерной задачи функции на интервале.

5. Выпишите нижние оценки сложности для данного класса задач оптимизации.

4. одномерный поиск 1. Реализуйте метод бисекции на луче и на интервале.

2. Реализуйте метод золотого сечения на луче и на интервале.

3. Реализуйте неточный одномерный поиск по правилу Армихо.

5. Простейшие задачи оптимизации 1. Реализуйте функции, минимизирующие линейный функционал на кубе, l1 шаре, симплексе, зонотопе, l2 шаре, эллипсоиде.

2. Реализуйте функции, минимизирующие квадратичный функционал на l2 шаре и на сфере.

3. Реализуйте функцию, минимизирующую квадратичный функционал на аффинном подпространстве.

6. Методы решения маломерных выпуклых задач 1. Реализуйте метод эллипсоида для решения задач линейного программирования .

2. Реализуйте метод центров тяжести для решения задачи минимизации линейного функционала на политопе, опирающийся на вызов оракула, вычисляющего центр тяжести политопа.

7. Методы первого порядка 1. Реализуйте метод градиентного спуска

2. Реализуйте метод тяжёлого шарика

3. Реализуйте ускоренный метод Нестерова

4. Реализуйте метод сопряжённых градиентов.

5. Охарактеризуйте скорость сходимости методов.

8. Методы условной оптимизации 1. Предложите барьер для данного множества.

2. Предложите штрафную функцию для данного множества.

3. Реализуйте метод обобщённого лагранжиана.

9. Метод Ньютона 1. Реализуйте метод Ньютона

2. Реализуйте метод BFGS

3. Реализуйте метод L-BFGS. Обоснуйте эффективность реализации

4. Охарактеризуйте сходимость методов.

5. Реализуйте метод Ньютона с кубической реализацией.

6. Вычислите Ньютоновский декремент для данной функции в данной точке.

10. Методы негладкой оптимизации 1. Реализуйте субградиентный метод.

2. Реализуйте метод Франк-Вульфа.

3. Охарактеризуйте сходимость методов.

11. Линейное программирование 1. Установите, является ли данная задача оптимизации линейной программой.

2. Сформулируйте данную задачу оптимизации в виде линейной программы.

3. Для данного полиэдра, перечислите все вершины и установите, какие из них вырождены.

4. Для данной задачи линейного программирования, сформулируйте двойственную задачу.

12. Автоматическое дифференцирование 1. По графу вычислений, найдите производные по всем переменным

2. Реализуйте дифференцирование функции c помощью библиотеки autograd

3. Реализуйте дифференцирование функции c помощью библиотеки pytorch

4. Реализуйте дифференцирование функции c помощью библиотеки jax


Текущий контроль успеваемости обучающихся по дисциплине:


п/п
Наименование раздела
дисциплины
Форма текущего контроля
Материалы текущего контроля
1. элементы выпуклого анализа, мат. анализа и линейной алгебры

классы функций и задач оптимизации

оракулы, сложность класса задач оптимизации || Домашние задание; Коллоквиум || В домашнее задание включаются задачи, нерешенные во время семинарских занятий

2. одномерный поиск

Простейшие задачи оптимизации

Методы решения маломерных выпуклых задач || Домашние задание; Коллоквиум || В домашнее задание включаются задачи, нерешенные во время семинарских занятий

3. Методы первого порядка

Методы условной оптимизации

Метод Ньютона || Домашние задание; Коллоквиум || В домашнее задание включаются задачи, нерешенные во время семинарских занятий

4. Методы негладкой оптимизации

Линейное программирование

Автоматическое дифференцирование || Домашние задание; Коллоквиум || В домашнее задание включаются задачи, нерешенные во время семинарских занятий


Контрольные вопросы для подготовки к промежуточной аттестации:


п/п
Наименование
раздела дисциплины
Вопросы
1. элементы выпуклого анализа, мат. анализа и линейной алгебры Как определяется опорная плоскость? Как определяется отделяющая плоскость? Постройте контрпример непересекающихся невыпуклых множеств, которых нельзя отделить друг от друга плоскостью. Как определяется двойственное векторное пространство? Как определяется нормальный конус? Почему градиент является двойственным вектором? Как формулируются условия Каруша-Куна-Такера?
2. классы функций и задач оптимизации Что такое выпуклая функция? Что такое липшицева функция? Что такое гладкая функция? Что такое функция с липшицевым градиентом? Что такое сильно выпуклая функция? По каким признакам можно классифицировать задачи оптимизации?
3. оракулы, сложность класса задач оптимизации Что такое сопротивляющийся оракул? Имеет ли смысл понятие сложности для одной конкретной задачи? Может ли оптимальный для данного класса задач алгоритм работать хуже на конкретной задаче из этого класса, чем неоптимальный алгоритм?
4. одномерный поиск Как построить оракул для метода дихотомии и метода золотого сечения? Какие скорости сходимости у методов дихотомии и золотого сечения? Почему при поиске по неограниченному подмножеству числовой прямой неоптимально строить итерации через равные промежутки?
5. Простейшие задачи оптимизации Запишите решения задачи минимизации линейной функции на кубе, l1 шаре, симплексе, зонотопе, l2 шаре, эллипсоиде. Выведите формулу для минимума выпуклой квадратичной функции на аффинном подпространстве с помощью метода множителей Лагранжа. Выведите формулу для минимума однородной квадратичной функции на сфере с помощью метода множителей Лагранжа.
6. Методы решения маломерных выпуклых задач Почему в решении обусловленной задачи оптимизации методом эллипсоида нет принципиальной разницы между итерациями в допустимом множестве и вне его? Почему метод эллипсоида не пригоден для невыпуклых задач? Почему используется метод эллипсоидов, несмотря на то, что метод центров тяжести сходится быстрее?
7. Методы первого порядка Запишите итерацию метода градиентного спуска/тяжелого шарика/метода Нестерова/сопряжённых градиентов. Какие скорости сходимости у этих методов на выпуклых функциях / липшицевых функциях / сильно выпуклых функциях функциях с липшицевым градиентом? Почему поведение метода градиентного спуска зависит от выбранной системы координат?
8. Методы условной оптимизации Как определяется штрафная функция? Как определяется барьерная функция? Запишите итерацию метода обобщённого лагранжиана.
9. Метод Ньютона Как определяется итерация метода Ньютона / метода Ньютона с кубической регуляризацией / метода BFGS ? Что такое ньютоновский декремент? Вычислите декремент для выпуклой квадратичной функции. Почему метод Ньютона аффинно инвариантен? Какова локальная скорость сходимости метода Ньютона?
10. Методы негладкой оптимизации Выпишите итерацию метода Франк-Вульфа для минимизации функции на l1 шаре. Какие скорости сходимости у метода Франк-Вульфа и у субградиентного метода?
11. Линейное программирование Чем характеризуется линейная программа? Ограничения на какие нормы могут быть интегрированы в формулировку линейной программы? Как формулируется теорема о сильной двойственности? Выпишите необходимые и достаточные условия оптимальности для прямо-двойственной пары линейных программ.


Вопросы/Задания к промежуточной аттестации в устной/письменной форме:

1. Элементы выпуклого анализа, мат. анализа и линейной алгебры
Определение выпуклого множества. Определение выпуклой функции. Определение двойственного векторного пространства. Определение отделяющей и опорной плоскости. Задачи на вычисление опорной плоскости и отделяющей плоскости. Условие оптимальности Каруша-Куна-Такера.
Формулировка условия локального минимума на для произвольной непрерывно дифференцируемой функции. Формулировка условия глобального минимума на для выпуклой непрерывно дифференцируемой функции.
Определение нормального конуса к выпуклому множеству в точке. Вычисление нормального конуса на примере.
2. Классы функций и задач оптимизации
Критерий выпуклости для функции класса . Классы липшицевых функций, сильно выпуклых функций, функций с липшицевым градиентом. Определение классов функций <math>C^k<math>. Ограниченность градиента для липшицевых функций.
Способы классификации задач оптимизации. Примеры классов функций. Примеры классов задач оптимизации.
3. Оракулы, сложность класса задач оптимизации
Определение оракула. Определение класса задач с помощью оракула. Примеры оракулов и классов задач. Нижние оценки сложности алгоритмов для класса задач. Что такое сопротивляющийся оракул? Оптимальные алгоритмы для решения класса задач.
4. Одномерный поиск
Оракул для метода дихотомии и метода золотого сечения. Оценки на количество итераций на неограниченном интервале. Скорости сходимости методов дихотомии и золотого сечения. Правило Армихо для неточного 1-мерного поиска.
5. Простейшие задачи оптимизации
Формулы решения задачи минимизации линейной функции на кубе, l1 шаре, симплексе, зонотопе, l2 шаре, эллипсоиде. Формула для минимума выпуклой квадратичной функции на аффинном подпространстве. Формула для минимума однородной квадратичной функции на сфере и на l2 шаре.
6. Методы решения маломерных выпуклых задач
Итерация метода эллипсоида с формулами обновления. Принцип работы метода центров тяжести. Скорость сходимости этих методов в терминах числа итераций. Построение отделяющего оракула для метода эллипсоидов для конкретной задачи.
7. Методы первого порядка
Итерация метода градиентного спуска. Зачем нужен параметр длины шага? Скорость сходимости градиентного спуска для гладких сильно выпуклых задач.
Итерации метода тяжелого шарика и ускоренного градиентного метода (метода Нестерова). Скорость сходимости ускоренных методов для гладких сильно выпуклых задач.
Итерация метода сопряжённых градиентов.
Нижние оценки сложности методов первого порядка для решения гладких сильно выпуклых задач.
8. Методы условной оптимизации
Определение штрафной функции. Определение барьерной функции. Доказательство сходимости метода штрафных функций в непрерывном случае. Доказательство сходимости метода барьерных функций в непрерывном случае. Метод обобщённого лагранжиана.
9. Метод Ньютона
Итерация метода Ньютона. Интерпретация через аппроксимацию Тейлора. Скорость сходимости метода Ньютона для сильно выпуклых задач с Липшицевым гессианом. Определение Ньютоновского декремента. Поведение декремента при итерациях, зависимость от длины шага. Аффинная инвариантность метода Ньютона.
Итерация методов BFGS и L-BFGS. Сходимость этих методов.
Итерация метода Ньютона с кубической регуляризацией. Решение вспомогательной задачи. Локальная сходимость метода. Свойство обхода седловых точек.
10. Методы негладкой оптимизации
Итерация метода субградиентного спуска. Скорость сходимости метода для выпуклых задач с липшицевой функцией.
Итерация метода Франк-Вульфа. Скорость сходимости метода.
11. Линейное программирование
Определение класса линейных программ. Какие задачи оптимизации могут быть представлены в виде линейной программы? Теорема о сильной двойственности. Построение двойственной линейной программы. Необходимые и достаточные условия оптимальности для прямо-двойственной пары линейных программ.
Принцип работы симплекс-метода. Варианты симплекс-метода.
12. Автоматическое дифференцирование
Пакеты для автоматического дифференцирования. Определение вычислительного графа. Принцип автоматического дифференцирования.


Перечень учебно-методического обеспечения дисциплины

Список основной литературы:

1. Воронцова Е.А., Гасников А.В., Хильдебранд Р.Ф., Стонякин Ф.С. Выпуклая оптимизация. Москва, МФТИ, 2021.
2. Гасников А.В. Современные численные методы оптимизации. Москва, МЦМНО, 2021.
3. Yurii Nesterov, Lectures on Convex Optimization (2nd edition), Springer, 2018 / ISBN: 978-3-319-91578-4

Список дополнительной литературы:
1. А.С. Немировский and Д.Б. Юдин. Сложность задач и эффективность методов оптимизации. Москва, Наука, 1979.
2. Б.Т. Поляк. Введение в оптимизацию. Москва, Наука, 1983.
3. R.T. Rockafellar. Convex analysis. https://convexoptimization.com/TOOLS/AnalyRock.pdf

Методические указания для обучающихся по освоению дисциплины

Вид учебных
занятий/деятельности
Деятельность обучающегося
Лекция Написание конспекта лекций: кратко, схематично, последовательно фиксировать основные положения лекции, выводы, формулировки, обобщения; помечать важные мысли, выделять ключевые слова, термины. Обозначить вопросы, термины или другой материал, который вызывает трудности, пометить и попытаться найти ответ в рекомендуемой литературе. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия.
Практическое (семинарское) занятие При подготовке к семинарскому (практическому) занятию необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме. На основании обработанной информации постараться сформировать собственное мнение по выносимой на обсуждение тематике. Обосновать его аргументами, сформировать список источников, подкрепляющих его.
Во время семинарского (практического) занятия активно участвовать в обсуждении вопросов, высказывать аргументированную точку зрения на проблемные вопросы. Приводить примеры из источниковой базы и научной и/или исследовательской литературы.
Устный/письменный опрос Отвечать, максимально полно, логично и структурировано, на поставленный вопрос. Основная цель – показать всю глубину знаний по конкретной теме или ее части.
Реферат Поиск источников и литературы, составление библиографии. При написании реферата рекомендуется использовать разнообразные источники, монографии и статьи из научных журналов, позволяющие глубже разобраться в различных точках зрения на заданную тему. Изучение литературы следует начинать с наиболее общих трудов, затем следует переходить к освоению специализированных исследований по выбранной теме. Могут быть использованы ресурсы сети «Интернет» с соответствующими ссылками на использованные сайты.
Если тема содержит проблемный вопрос, следует сформулировать разные точки зрения на него. Рекомендуется в выводах указать свое собственное аргументированное мнение по данной проблеме. Подготовить презентацию для защиты реферата.
Эссе Написание прозаического сочинения небольшого объема и свободной композиции, выражающего индивидуальные впечатления и соображения по конкретному поводу или вопросу и заведомо не претендующего на определяющую или исчерпывающую трактовку предмета. При работе над эссе следует четко и грамотно формулировать мысли, структурировать информацию, использовать основные понятия, выделять причинно-следственные связи. Как правило эссе имеет следующую структуру: вступление, тезис и аргументация его, заключение. В качестве аргументов могут выступать исторические факты, явления общественной жизни, события, жизненные ситуации и жизненный опыт, научные доказательства, ссылки на мнение ученых и др.
Подготовка к промежуточной аттестации При подготовке к промежуточной аттестации необходимо проработать вопросы по темам, которые рекомендуются для самостоятельной подготовки. При возникновении затруднений с ответами следует ориентироваться на конспекты лекций, семинаров, рекомендуемую литературу, материалы электронных и информационных справочных ресурсов, статей.
Если тема вызывает затруднение, четко сформулировать проблемный вопрос и задать его преподавателю.
Практические (лабораторные) занятия Практические занятия предназначены прежде всего для разбора отдельных сложных положений, тренировки аналитических навыков, а также для развития коммуникационных навыков. Поэтому на практических занятиях необходимо участвовать в тех формах обсуждения материала, которые предлагает преподаватель: отвечать на вопросы преподавателя, дополнять ответы других студентов, приводить примеры, задавать вопросы другим выступающим, обсуждать вопросы и выполнять задания в группах. Работа на практических занятиях подразумевает домашнюю подготовку и активную умственную работу на самом занятии. Работа на практических занятиях в форме устного опроса заключается прежде всего в тренировке навыков применять теоретические положения к самому разнообразному материалу. В ходе практических занятий студенты работают в группах для обсуждения предлагаемых вопросов.
Самостоятельная работа Самостоятельная работа состоит из следующих частей: 1) чтение учебной, справочной, научной литературы; 2) повторение материала лекций; 3) составление планов устных выступлений; 4) подготовка видеопрезентации. При чтении учебной литературы нужно разграничивать для себя материал на отдельные проблемы, концепции, идеи. Учебную литературу можно найти в электронных библиотечных системах, на которые подписан АНО Университет Иннополис.
Видеопрезентация Подготовка видеопрезентаций по курсу. Видеопрезентации могут быть сделаны на любую тему, затронутую в ходе курса. Темы должны быть заранее согласованы с преподавателем. Видеопрезентации продолжительностью около 5 минут (300 секунд) должны быть подготовлены в группах, определяемых преподавателем. Несмотря на то, что это групповая работа, должен явно присутствовать вклад каждого члена группы.
Доклад Публичное, развернутое сообщение по определенной теме или вопросу, основанное на документальных данных. При подготовке доклада рекомендуется использовать разнообразные источники, позволяющие глубже разобраться в теме. Учебную литературу можно найти в электронных библиотечных системах, на которые подписан АНО Университет Иннополис.
Дискуссия Публичное обсуждение спорного вопроса, проблемы. Каждая сторона должна оппонировать мнение собеседника, аргументируя свою позицию.
Контрольная работа При подготовке к контрольной работе необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме.
Тестирование (устное/письменное) При подготовке к тестированию необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме. Основная цель тестирования – показать уровень сформированности знаний по конкретной теме или ее части.
Индивидуальная работа При выполнение индивидуальной работы необходимо взять задание у преподавателя, ознакомиться с требованиями к выполнению работы, изучить поставленную проблему, найти решение проблемы. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия. Оформить результаты работы.
Разработка отдельных частей кода Разработать часть кода, исходя из поставленной задачи и рекомендаций преподавателя. При выполнении работы рекомендуется обращаться к материалам лекций и семинарских (практических) занятий. Если возникают затруднения, необходимо проконсультироваться с преподавателем.
Выполнение домашних заданий и групповых проектов Для выполнения домашних заданий и групповых проектов необходимо получить формулировку задания от преподавателя и убедиться в понимании задания. При выполнение домашних заданий и групповых проектов необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме.

Методы и технологии обучения, способствующие формированию компетенции

Методы и технологии обучения, способствующие формированию компетенции
Информационно – коммуникационная технология, Педагогика сотрудничества, Традиционные технологии, Модульная технология