Fine-grained complexity
Мы уже привыкли к тому, что выражение «задача NP-трудна» стало синонимом «задача не решается за полиномиальное время», хотя неравенство классов P и NP до сих пор не доказано. А что, если задача всё-таки решается за полиномиальное время, но сам порядок полинома нас не очень устраивает? Например,
– Можем ли мы быстрее найти среди набора из бинарных строк две строки, у которых не совпадает ни один единичный бит?
– Можно ли найти в заданном наборе три числа с заданной суммой существенно быстрее ?
– Вычислим ли радиус заданного графа быстрее ?
В курсе мы постараемся установить связи между этими и другими классическими алгоритмическими задачами, многие из которых широко применяются и не являются NP-трудными. Например, докажем, что алгоритм со временем работы для первой задачи позволит решать задачу выполнимости быстрее ; а третий вопрос неразрывно связан с кубическим алгоритмом для задачи APSP вычисления матрицы кратчайших расстояний.
В отличие от полиномиальных сведений, которые используются для доказательства NP-трудности, в fine-grained сведениях мы будем более детально следить за временем работы и размером задачи (отсюда и название). Например, мы покажем, что задача из первого вопроса сводится (за время быстрее, чем ) к поиску наибольшей общей подпоследовательности (Longest Common Subsequence, LCS) заданных двух строк длины . Как следствие, алгоритм со временем работы для LCS повлечёт -алгоритм для задачи выполнимости.
Мы познакомимся с известными результаты области, как с классическими, так и с более современными, рассмотрим открытые вопросы, поговорим о лучших известных алгоритмах для некоторых из задач и о препятствиях для сведения их друг к другу.
Пререквизиты: для восприятия курса потребуется знакомство с базовым курсом алгоритмов.
Занятия
6 лекцийЛекция 1
Лекция 2
Лекция 3
Лекция 4
Лекция 5
Лекция 6
Дополнительные материалы
1 материал
Курс по алгоритмам непрерывной нелинейной оптимизации без ограничений