Сложность алгоритмов
В курсе излагаются основные (начальные) разделы теории сложности алгоритмов. Различаются алгебраическая и битовая сложности, каждая из которых рассматривается в худшем случае и в среднем. Ряд основных понятий теории сложности, как-то: оценки снизу и сверху, нижняя граница сложности алгоритмов некоторого класса, оптимальный алгоритм и т.д., рассматривается не только в обычном функциональном, но и в асимптотическом смысле: асимптотические оценки, асимптотическая нижняя граница, оптимальность по порядку сложности и т.д. Показывается, что при исследовании существования алгоритма решения задачи, имеющего «не очень высокую» сложность, важную роль может играть сводимость одной задачи к другой.
Изложение сопровождается анализом сложности большого числа алгоритмов арифметики, сортировки и поиска, вычислительной геометрии, теории графов и др.
- 01:19:21Лекция 1. Сложность в худшем случае
- 01:26:02Лекция 2. Асимптотические оценки
- 01:27:10Лекция 3. Сложность в среднем
- 01:20:46Лекция 4. Сортировки и конечные вероятностные пространства
- 01:25:04Лекция 5. Рандомизированные алгоритмы
- 01:08:19Лекция 6. Вероятностное пространство сценариев
- 01:21:22Лекция 7. Полиномиальные языки
- 01:23:56Лекция 8. Алгоритмы и задачи проектирования, интегральные схемы
- 01:31:24Лекция 9. Схемы и сложность оценки
- 01:34:35Лекция 10. Машина Тьюринга
- 01:18:35Лекция 11. Число шагов алгоритма
- 01:25:45Лекция 12. Завершимость алгоритма
- 01:20:39Лекция 13. Нижние границы сложности. Оптимальные алгоритмы
- 01:17:24Лекция 14. Оптимальность по сложности в среднем
- 01:15:21Лекция 15. Битовая сложность
- 01:25:34Лекция 16. Сложность модулярных алгоритмов
- 01:25:56Лекция 17. Булева сложность
- 01:16:32Лекция 18. Рекуррентные соотношения
- 01:22:02Лекция 19. Принцип "Разделяй и властвуй"
- 01:20:06Лекция 20. Линейная сводимость
- 27:43Лекция 21. Линейная сводимость и нижние границы сложности
