Сложность алгоритмов — различия между версиями
(→Вопросы к экзамену по курсу «Сложность алгоритмов» для гр. 418.) |
(→Программа курса) |
||
Строка 49: | Строка 49: | ||
<li> Теорема о PSPACE-полноте задачи о квантифицированных булевских формулах. | <li> Теорема о PSPACE-полноте задачи о квантифицированных булевских формулах. | ||
<li> Теорема об иерархии по памяти. Несовпадение классов DLOG и PSPACE. | <li> Теорема об иерархии по памяти. Несовпадение классов DLOG и PSPACE. | ||
+ | </ol> | ||
'''Часть В – ответ без конспектов и почти без подготовки (с доказательствами).''' | '''Часть В – ответ без конспектов и почти без подготовки (с доказательствами).''' | ||
+ | <ol start="17"> | ||
<li> Сложность алгоритма бинарного поиска в упорядоченном массиве. | <li> Сложность алгоритма бинарного поиска в упорядоченном массиве. | ||
<li> Нижние оценки сложности поиска в упорядоченном массиве. | <li> Нижние оценки сложности поиска в упорядоченном массиве. | ||
Строка 69: | Строка 71: | ||
<li> Теорема о принадлежности задачи о квантифицированных булевских формулах классу PSPACE. | <li> Теорема о принадлежности задачи о квантифицированных булевских формулах классу PSPACE. | ||
<li> Класс DLOG. Соотношение между классами DLOG и P. | <li> Класс DLOG. Соотношение между классами DLOG и P. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</ol> | </ol> | ||
Версия 16:32, 29 декабря 2014
Обязательный курс для студентов 418 группы. Читается в осеннем семестре.
Лектор - профессор Алексеев Валерий Борисович.
Содержание
- 1 Программа курса
- 1.1 Примеры задач с оценкой временной сложности по порядку.
- 1.2 Некоторые общие результаты о сложности алгоритмов.
- 1.3 Метод динамического пpогpаммиpования.
- 1.4 Метод "pазделяй и властвуй" для построения быстрых алгоритмов.
- 1.5 Метод pасшиpения модели для построения быстрых алгоритмов.
- 1.6 Некоторые классы сложности.
- 1.7 Вопросы к экзамену по курсу «Сложность алгоритмов» для гр. 418.
- 2 Литература
Программа курса
Примеры задач с оценкой временной сложности по порядку.
Сложность распознавания симметрии на машине Тьюринга. Сложность распознавания полноты системы булевых функций на машине Тьюринга.
Некоторые общие результаты о сложности алгоритмов.
Вычислимые функции, их нумерация. Теоремы о существовании общерекурсивной функции, трудно вычислимой хотя бы в одной точке, в бесконечном числе точек и почти всюду. Регулярные языки и автоматы. Теорема о регулярности языка, распознаваемого со следом константной или слаборастущей длины. Несуществование задач с временной сложностью на машине Тьюринга по порядку между n и nlogn.
Метод динамического пpогpаммиpования.
Алгоpитм поиска кpатчайших путей между всеми паpами веpшин в гpафе. Алгоpитм для задачи об оптимальном поpядке умножения матpиц.
Метод "pазделяй и властвуй" для построения быстрых алгоритмов.
Алгоpитмы соpтиpовки вставкой и слиянием. Быстрые алгоpитмы для умножения чисел и матpиц.
Метод pасшиpения модели для построения быстрых алгоритмов.
Алгоpитмы обычного и булевского умножения матpиц с битовыми опеpациями. Алгоpитм тpанзитивного замыкания гpафа. Алгоpитмы для pаспознавания пpинадлежности булевых или многозначных функций, заданных векторно, некоторым замкнутым классам. Верхние оценки сложности распознавания полноты в множестве булевых и частичных булевых функций.
Некоторые классы сложности.
Определение классов DLOG, NLOG, P, NP, PSPACE, соотношение между ними. Теорема Кука об NP-полноте задачи о выполнимости конъюнктивной нормальной формы. Доказательство NP-полноты других задач.
Вопросы к экзамену по курсу «Сложность алгоритмов» для гр. 418.
Лектор: В.Б. Алексеев, осень 2014 года.
В билете 2 вопроса – один из части А и один из части В.
Часть А – ответ без подготовки, но по любым материалам (конспекты, книжки и т.д.). Проверяется, насколько осознаны все доказательства (основной вопрос – «почему?»). Определения и формулировки утверждений – без конспектов.
- Метод «разделяй и властвуй». Теорема о скорости роста функции, заданной рекуррентным неравенством.
- Алгоритм Тоома для умножения чисел.
- Алгоритм Штрассена для умножения матриц.
- Алгоритмы обычного и булевского умножения матриц с битовыми операциями.
- Сложность распознавания принадлежности функции, заданной векторно, классам, определяемым двухместными предикатами.
- Сложность распознавания принадлежности булевой функции, заданной векторно, классу FmU(Rm).
- Вычислимые функции, их нумерация. Теоремы о существовании трудно вычислимой общерекурсивной функции.
- Теорема Барздиня о распознавании симметрии.
- Теорема о совпадении классов регулярных языков и языков, распознаваемых автоматами.
- Теорема о регулярности языка, распознаваемого со следом константной длины.
- Теорема о регулярности языка, распознаваемого со слаборастущими длиной следа или временем.
- Теорема об NP-полноте языка ГАМИЛЬТОНОВ ЦИКЛ.
- Жадный алгоритм для задачи о кратчайшем остовном дереве.
- Задача коммивояжера, ее NP-трудность, теоремы о приближенных алгоритмах для нее.
- Теорема о PSPACE-полноте задачи о квантифицированных булевских формулах.
- Теорема об иерархии по памяти. Несовпадение классов DLOG и PSPACE.
Часть В – ответ без конспектов и почти без подготовки (с доказательствами).
- Сложность алгоритма бинарного поиска в упорядоченном массиве.
- Нижние оценки сложности поиска в упорядоченном массиве.
- Нижняя оценка сложности сортировки. Сложность алгоритма сортировки вставкой.
- Сложность алгоритма сортировки слиянием.
- Алгоритм динамического программирования для задачи об оптимальном порядке умножения матриц.
- Алгоритм динамического программирования для поиска кратчайших путей между всеми парами вершин в графе.
- Алгоритм Карацубы для умножения чисел.
- Алгоритм транзитивного замыкания графа.
- Верхние оценки сложности распознавания принадлежности булевой функции, заданной векторно, предполным классам Поста T0, T1, S, L, M.
- Леммы о максимальной длине и сумме длин различных слов.
- Классы P и NP. Примеры языков из NP. Замкнутость класса P относительно полиномиального сведения.
- Теоремы об NP-полноте языков КЛИКА, Независимое Множество Вершин, Вершинное Покрытие.
- Полиномиальный алгоритм для построения эйлерова цикла.
- Задача о минимальном вершинном покрытии, ее NP-трудность, жадный и 1-приближенный алгоритмы для нее.
- Класс PSPACE. Соотношение между классами NP и PSPACE. Верхняя оценка времени работы для задач из PSPACE.
- Теорема о принадлежности задачи о квантифицированных булевских формулах классу PSPACE.
- Класс DLOG. Соотношение между классами DLOG и P.
Литература
- Ахо А., Хопкpофт Дж., Ульман Дж. Постpоение и анализ вычислительных алгоpитмов. М.: Мир, 1979.
- Гэpи М., Джонсон Д. Вычислительные машины и тpудноpешаемые задачи. М.: Мир, 1982.
- Барздинь Я.М. Сложность распознавания симметрии на машинах Тьюринга. Сб. "Проблемы кибернетики", вып. 15 (1965), с. 245-248.
- Проблемы математической логики. Сложность алгоритмов и вычислимых функций. (Сб. переводов), М.: Мир, 1970.