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
courses:algorithms_building_and_analysis:lectures [2023/05/12 23:20]
kalishenko
courses:algorithms_building_and_analysis:lectures [2024/05/11 23:09] (current)
kalishenko
Line 1: Line 1:
 ====== Программа ====== ====== Программа ======
 +===== Сложность алгоритмов =====
 +  - Виды сложности:​
 +    * Операции
 +    * Время
 +    * Память
 +  - Понятие вычислительной сложности в зависимости от размера входа
 +  - Константная сложность на примере vector и unordered_set:​
 +    * Амортизированная
 +    * В среднем
 +    * В худшем
 +
 ===== Поиск с возвращением ===== ===== Поиск с возвращением =====
   - Идея поиска с возвращением (backtracking)   - Идея поиска с возвращением (backtracking)
Line 8: Line 19:
     * Пример на площади фигуры     * Пример на площади фигуры
     * Ограничения и условия применимости ​     * Ограничения и условия применимости ​
 +
 +===== Жадные алгоритмы =====
 +  - Задача об оптимальном расписании
 +  - Задача о префиксном кодировании
 +  - Принцип доказательства оптимальности работы жадного алгоритма
  
 ===== Графы ===== ===== Графы =====
Line 22: Line 38:
   - Оптимизация Штейна алгоритма Каргера   - Оптимизация Штейна алгоритма Каргера
  
-==== Кратчайшие пути. A* и его расширения ​==== +==== Кратчайшие пути. A* ==== 
-  ​Напоминание ​о A*+  - Напоминание об алгоритмах поиска пути: 
 +    - Поиск в ширину 
 +    - Дейкстра 
 +  - A*: 
 +    - Выбор направления ​пути Дейкстрой при 0-взвешивании рёбер оптимального пути 
 +    - Доказательство неизменности пути при перевзвешивании рёбер 
 +    - Ограничения А*
   - Эвристические функции   - Эвристические функции
 +
 +==== Кратчайшие пути. Расширения A* ====
   - Алгоритм ALT   - Алгоритм ALT
   - Алгоритм REACH   - Алгоритм REACH
   - Алгоритм Arc flags   - Алгоритм Arc flags
- 
-==== Топологическая сортировка ====  ​ 
-  - Ограничения на циклы 
-  - Алгоритм нумерацией шагов обхода 
-  - Алгоритм исключения вершины с минимальным количеством входящих рёбер 
  
 ==== Задача о коммивояжёре ==== ==== Задача о коммивояжёре ====
Line 43: Line 62:
     * Имитация отжига ​     * Имитация отжига ​
   - Приближённое решение (2-приближённый алгоритм)  ​   - Приближённое решение (2-приближённый алгоритм)  ​
- 
  
 ==== Потоки в графах ==== ==== Потоки в графах ====
 +  - Напоминание Форда-Фалкерсона
 +    * Идея поиска пути в остаточной сети
 +    * Обратные рёбра
 +    * Сложность ​
   - Алгоритм Гольдберга (проталкивания предпотока):​   - Алгоритм Гольдберга (проталкивания предпотока):​
     * Идея push-relabel алгоритмов     * Идея push-relabel алгоритмов
Line 51: Line 73:
     * Доказательство корректности     * Доказательство корректности
     * Сравнение сложности с Фордом-Фалкерсоном ​     * Сравнение сложности с Фордом-Фалкерсоном ​
 +
 +==== Изоморфизм графов ====
 +  - Задача изоморфизма:​
 +    * Точный изоморфизм
 +    * Поиск подграфа в графе
 +  - Алгоритм Ульмана (переборный с матрицей)
 +  - Применение изоморфизма
  
 ===== Строки ===== ===== Строки =====
Line 66: Line 95:
   - Наивное построение префикс-функции и его сложность   - Наивное построение префикс-функции и его сложность
   - Построение префикс-функции за линейное время   - Построение префикс-функции за линейное время
 +  - Оптимизация сложности по памяти
  
 ==== Алгоритм Ахо-Корасик ==== ==== Алгоритм Ахо-Корасик ====
Line 78: Line 108:
     * Сведение к графу     * Сведение к графу
     * Выделение подзадачи     * Выделение подзадачи
-  - Задача о рюкзаке:​ 
-    * Без повторений (одномерный случай) 
-    * С повторениями (двумерный случай) 
   - Задача о порядке перемножения матриц  ​   - Задача о порядке перемножения матриц  ​
- 
-===== Разное ===== 
-  - Сложность алгоритмов. Виды сложности 
  
 ----- -----
Line 121: Line 145:
   - Применения и сложность задачи построения клик графа   - Применения и сложность задачи построения клик графа
   - Алгоритм нахождения клик на основе поиска с возвращением.   - Алгоритм нахождения клик на основе поиска с возвращением.
 +
 +==== Топологическая сортировка ====  ​
 +  - Ограничения на циклы
 +  - Алгоритм нумерацией шагов обхода
 +  - Алгоритм исключения вершины с минимальным количеством входящих рёбер
  
 ==== Алгоритм Рабина-Карпа ==== ==== Алгоритм Рабина-Карпа ====
Line 132: Line 161:
   - Метод расщепления   - Метод расщепления
   - Сведения   - Сведения
 +
 +===== Динамическое программирование =====
 +  - Задача о рюкзаке:​
 +    * Без повторений (одномерный случай)
 +    * С повторениями (двумерный случай)
 </​WRAP>​ </​WRAP>​
courses/algorithms_building_and_analysis/lectures.1683933611.txt.gz · Last modified: 2023/05/12 23:20 by kalishenko