User Tools

Site Tools


courses:algorithms_building_and_analysis:lectures

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
courses:algorithms_building_and_analysis:lectures [2024/01/31 00:49]
kalishenko
courses:algorithms_building_and_analysis:lectures [2024/05/11 23:08]
kalishenko
Line 1: Line 1:
 ====== Программа ====== ====== Программа ======
 ===== Сложность алгоритмов ===== ===== Сложность алгоритмов =====
-  - Виды сложности+  - Виды сложности
 +    * Операции 
 +    * Время 
 +    * Память
   - Понятие вычислительной сложности в зависимости от размера входа   - Понятие вычислительной сложности в зависимости от размера входа
   - Константная сложность на примере vector и unordered_set:​   - Константная сложность на примере vector и unordered_set:​
     * Амортизированная     * Амортизированная
     * В среднем     * В среднем
 +    * В худшем
  
 ===== Поиск с возвращением ===== ===== Поиск с возвращением =====
Line 17: Line 21:
  
 ===== Жадные алгоритмы ===== ===== Жадные алгоритмы =====
-  - ...+  - Задача об оптимальном расписании 
 +  - Задача о префиксном кодировании 
 +  - Принцип доказательства оптимальности работы жадного алгоритма
  
 ===== Графы ===== ===== Графы =====
Line 32: Line 38:
   - Оптимизация Штейна алгоритма Каргера   - Оптимизация Штейна алгоритма Каргера
  
-==== Кратчайшие пути. A* и его расширения ​==== +==== Кратчайшие пути. A* ==== 
-  ​Напоминание ​о A*+  - Напоминание об алгоритмах поиска пути: 
 +    - Поиск в ширину 
 +    - Дейкстра 
 +  - A*: 
 +    - Выбор направления ​пути Дейкстрой при 0-взвешивании рёбер оптимального пути 
 +    - Доказательство неизменности пути при перевзвешивании рёбер 
 +    - Ограничения А*
   - Эвристические функции   - Эвристические функции
 +
 +==== Кратчайшие пути. Расширения A* ====
   - Алгоритм ALT   - Алгоритм ALT
   - Алгоритм REACH   - Алгоритм REACH
   - Алгоритм Arc flags   - Алгоритм Arc flags
- 
-==== Топологическая сортировка ====  ​ 
-  - Ограничения на циклы 
-  - Алгоритм нумерацией шагов обхода 
-  - Алгоритм исключения вершины с минимальным количеством входящих рёбер 
  
 ==== Задача о коммивояжёре ==== ==== Задача о коммивояжёре ====
Line 55: Line 64:
  
 ==== Потоки в графах ==== ==== Потоки в графах ====
 +  - Напоминание Форда-Фолкерсона
 +    * Идея поиска пути в остаточной сети
 +    * Обратные рёбра
 +    * Сложность ​
   - Алгоритм Гольдберга (проталкивания предпотока):​   - Алгоритм Гольдберга (проталкивания предпотока):​
     * Идея push-relabel алгоритмов     * Идея push-relabel алгоритмов
Line 82: Line 95:
   - Наивное построение префикс-функции и его сложность   - Наивное построение префикс-функции и его сложность
   - Построение префикс-функции за линейное время   - Построение префикс-функции за линейное время
 +  - Оптимизация сложности по памяти
  
 ==== Алгоритм Ахо-Корасик ==== ==== Алгоритм Ахо-Корасик ====
Line 94: Line 108:
     * Сведение к графу     * Сведение к графу
     * Выделение подзадачи     * Выделение подзадачи
-  - Задача о рюкзаке:​ 
-    * Без повторений (одномерный случай) 
-    * С повторениями (двумерный случай) 
   - Задача о порядке перемножения матриц  ​   - Задача о порядке перемножения матриц  ​
  
Line 134: Line 145:
   - Применения и сложность задачи построения клик графа   - Применения и сложность задачи построения клик графа
   - Алгоритм нахождения клик на основе поиска с возвращением.   - Алгоритм нахождения клик на основе поиска с возвращением.
 +
 +==== Топологическая сортировка ====  ​
 +  - Ограничения на циклы
 +  - Алгоритм нумерацией шагов обхода
 +  - Алгоритм исключения вершины с минимальным количеством входящих рёбер
  
 ==== Алгоритм Рабина-Карпа ==== ==== Алгоритм Рабина-Карпа ====
Line 145: Line 161:
   - Метод расщепления   - Метод расщепления
   - Сведения   - Сведения
 +
 +===== Динамическое программирование =====
 +  - Задача о рюкзаке:​
 +    * Без повторений (одномерный случай)
 +    * С повторениями (двумерный случай)
 </​WRAP>​ </​WRAP>​
courses/algorithms_building_and_analysis/lectures.txt · Last modified: 2024/05/11 23:09 by kalishenko