Рассмотрим следующие алгоритмические задачи:
Хорошо известно, что некоторые из этих задач принадлежат классу P, то есть могут быть решены за полиномиальное время, а некоторые — NP-полны, что означает, что никто для этих задач не знает полиномиального алгоритма (если найти такой алгоритм для хотя бы одной NP-полной задачи, то сразу все задачи из класса NP решатся за полиномиальное время и вообще окажется, что P=NP). Но разделение на классы P и NP слишком грубое: оно ничего не говорит про то, можно ли, например, задачу о редакционном расстоянии решить за время \(n^{1.99}\) или задачу выполнимости — за время \(1.99^n\). Существование обоих упомянутых только что алгоритмов — большая открытая задача. Построить такие алгоритмы было бы интересно как с теоретической, так и с практической точек зрения.
Область под названием fine grained complexity, активно развивающаяся в последнее десятилетие, пытается дать ответы на эти вопросы. На многие интересные вопросы ответов у нас так и нет, но зато были найдены некоторые удивительные связи. Например, доказано, что если есть алгоритм для задачи о редакционном расстоянии со временем работы \(n^{1.9}\), то есть и алгоритм для задачи выполнимости со временем работы \(1.999^n\). Доказано также, что задачу о кратчайших путях можно решить за время \(\frac{n^3}{2^{\sqrt{\log n}}}\).
В курсе мы познакомимся с современным положением дел в этой области: узнаем и последние результаты, и открытые задачи. После каждой лекции будет выдаваться домашнее задание. Оценка за курс будет ставиться по результатам решения этих домашних заданий. Курс будет читаться по материалам курса, прочитанного летом 2019 г. Карлом Брингманом и Марвином Кунеманом.
Semester | Branch |
---|---|
autumn 2019 | Saint Petersburg |