This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:algorithms_building_and_analysis:lectures [2024/03/30 20:58] kalishenko |
courses:algorithms_building_and_analysis:lectures [2024/05/11 23:09] (current) kalishenko |
||
---|---|---|---|
Line 21: | Line 21: | ||
===== Жадные алгоритмы ===== | ===== Жадные алгоритмы ===== | ||
- | - ... | + | - Задача об оптимальном расписании |
+ | - Задача о префиксном кодировании | ||
+ | - Принцип доказательства оптимальности работы жадного алгоритма | ||
===== Графы ===== | ===== Графы ===== | ||
Line 36: | Line 38: | ||
- Оптимизация Штейна алгоритма Каргера | - Оптимизация Штейна алгоритма Каргера | ||
- | ==== Кратчайшие пути. A* и его расширения ==== | + | ==== Кратчайшие пути. A* ==== |
- | - Напоминание о A* | + | - Напоминание об алгоритмах поиска пути: |
+ | - Поиск в ширину | ||
+ | - Дейкстра | ||
+ | - A*: | ||
+ | - Выбор направления пути Дейкстрой при 0-взвешивании рёбер оптимального пути | ||
+ | - Доказательство неизменности пути при перевзвешивании рёбер | ||
+ | - Ограничения А* | ||
- Эвристические функции | - Эвристические функции | ||
+ | |||
+ | ==== Кратчайшие пути. Расширения A* ==== | ||
- Алгоритм ALT | - Алгоритм ALT | ||
- Алгоритм REACH | - Алгоритм REACH | ||
- Алгоритм Arc flags | - Алгоритм Arc flags | ||
- | |||
- | ==== Топологическая сортировка ==== | ||
- | - Ограничения на циклы | ||
- | - Алгоритм нумерацией шагов обхода | ||
- | - Алгоритм исключения вершины с минимальным количеством входящих рёбер | ||
==== Задача о коммивояжёре ==== | ==== Задача о коммивояжёре ==== | ||
Line 59: | Line 64: | ||
==== Потоки в графах ==== | ==== Потоки в графах ==== | ||
+ | - Напоминание Форда-Фалкерсона | ||
+ | * Идея поиска пути в остаточной сети | ||
+ | * Обратные рёбра | ||
+ | * Сложность | ||
- Алгоритм Гольдберга (проталкивания предпотока): | - Алгоритм Гольдберга (проталкивания предпотока): | ||
* Идея push-relabel алгоритмов | * Идея push-relabel алгоритмов | ||
Line 86: | Line 95: | ||
- Наивное построение префикс-функции и его сложность | - Наивное построение префикс-функции и его сложность | ||
- Построение префикс-функции за линейное время | - Построение префикс-функции за линейное время | ||
+ | - Оптимизация сложности по памяти | ||
==== Алгоритм Ахо-Корасик ==== | ==== Алгоритм Ахо-Корасик ==== | ||
Line 135: | Line 145: | ||
- Применения и сложность задачи построения клик графа | - Применения и сложность задачи построения клик графа | ||
- Алгоритм нахождения клик на основе поиска с возвращением. | - Алгоритм нахождения клик на основе поиска с возвращением. | ||
+ | |||
+ | ==== Топологическая сортировка ==== | ||
+ | - Ограничения на циклы | ||
+ | - Алгоритм нумерацией шагов обхода | ||
+ | - Алгоритм исключения вершины с минимальным количеством входящих рёбер | ||
==== Алгоритм Рабина-Карпа ==== | ==== Алгоритм Рабина-Карпа ==== |