Сложность алгоритмов — различия между версиями
(→Вопросы к экзамену по курсу «Сложность алгоритмов» для гр. 418.) |
|||
Строка 29: | Строка 29: | ||
'''В билете 2 вопроса – один из части А и один из части В.''' | '''В билете 2 вопроса – один из части А и один из части В.''' | ||
− | Часть А – ответ без подготовки, но по любым материалам (конспекты, книжки и т.д.). Проверяется, насколько осознаны все доказательства (основной вопрос – «почему?»). Определения и формулировки утверждений – без конспектов. | + | '''Часть А – ответ без подготовки, но по любым материалам (конспекты, книжки и т.д.).''' |
+ | Проверяется, насколько осознаны все доказательства (основной вопрос – «почему?»). Определения и формулировки утверждений – без конспектов. | ||
<ol> | <ol> | ||
Строка 35: | Строка 36: | ||
<li> Алгоритм Тоома для умножения чисел. | <li> Алгоритм Тоома для умножения чисел. | ||
<li> Алгоритм Штрассена для умножения матриц. | <li> Алгоритм Штрассена для умножения матриц. | ||
− | + | <li> Алгоритмы обычного и булевского умножения матриц с битовыми операциями. | |
− | + | <li> Сложность распознавания принадлежности функции, заданной векторно, классам, определяемым двухместными предикатами. | |
− | + | <li> Сложность распознавания принадлежности булевой функции, заданной векторно, классу FmU(Rm). | |
− | + | <li> Вычислимые функции, их нумерация. Теоремы о существовании трудно вычислимой общерекурсивной функции. | |
− | + | <li> Теорема Барздиня о распознавании симметрии. | |
− | + | <li> Теорема о совпадении классов регулярных языков и языков, распознаваемых автоматами. | |
− | + | <li> Теорема о регулярности языка, распознаваемого со следом константной длины. | |
− | + | <li> Теорема о регулярности языка, распознаваемого со слаборастущими длиной следа или временем. | |
− | + | <li> Теорема об NP-полноте языка ГАМИЛЬТОНОВ ЦИКЛ. | |
− | + | <li> Жадный алгоритм для задачи о кратчайшем остовном дереве. | |
− | + | <li> Задача коммивояжера, ее NP-трудность, теоремы о приближенных алгоритмах для нее. | |
− | + | <li> Теорема о PSPACE-полноте задачи о квантифицированных булевских формулах. | |
− | + | <li> Теорема об иерархии по памяти. Несовпадение классов DLOG и PSPACE. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | '''Часть В – ответ без конспектов и почти без подготовки (с доказательствами).''' | ||
+ | <li> Сложность алгоритма бинарного поиска в упорядоченном массиве. | ||
+ | <li> Нижние оценки сложности поиска в упорядоченном массиве. | ||
+ | <li> Нижняя оценка сложности сортировки. Сложность алгоритма сортировки вставкой. | ||
+ | <li> Сложность алгоритма сортировки слиянием. | ||
+ | <li> Алгоритм динамического программирования для задачи об оптимальном порядке умножения матриц. | ||
+ | <li> Алгоритм динамического программирования для поиска кратчайших путей между всеми парами вершин в графе. | ||
+ | <li> Алгоритм Карацубы для умножения чисел. | ||
+ | <li> Алгоритм транзитивного замыкания графа. | ||
+ | <li> Верхние оценки сложности распознавания принадлежности булевой функции, заданной векторно, предполным классам Поста T0, T1, S, L, M. | ||
+ | <li> Леммы о максимальной длине и сумме длин различных слов. | ||
+ | <li> Классы P и NP. Примеры языков из NP. Замкнутость класса P относительно полиномиального сведения. | ||
+ | <li> Теоремы об NP-полноте языков КЛИКА, Независимое Множество Вершин, Вершинное Покрытие. | ||
+ | <li> Полиномиальный алгоритм для построения эйлерова цикла. | ||
+ | <li> Задача о минимальном вершинном покрытии, ее NP-трудность, жадный и 1-приближенный алгоритмы для нее. | ||
+ | <li> Класс PSPACE. Соотношение между классами NP и PSPACE. Верхняя оценка времени работы для задач из PSPACE. | ||
+ | <li> Теорема о принадлежности задачи о квантифицированных булевских формулах классу PSPACE. | ||
+ | <li> Класс DLOG. Соотношение между классами DLOG и P. | ||
+ | </ol> | ||
+ | '''Литература.''' | ||
+ | <ol> | ||
+ | <li> Алексеев В.Б. Введение в теорию сложности алгоритмов. М.: Изд. отдел ф-та ВМиК МГУ, 2002. | ||
+ | <li> Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М., «Мир», 1979. | ||
+ | <li> Пападимитриу Х., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность. М., «Мир», 1985. | ||
+ | </ol> | ||
== Литература == | == Литература == |
Версия 16:29, 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.
Литература.
- Алексеев В.Б. Введение в теорию сложности алгоритмов. М.: Изд. отдел ф-та ВМиК МГУ, 2002.
- Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М., «Мир», 1979.
- Пападимитриу Х., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность. М., «Мир», 1985.
Литература
- Ахо А., Хопкpофт Дж., Ульман Дж. Постpоение и анализ вычислительных алгоpитмов. М.: Мир, 1979.
- Гэpи М., Джонсон Д. Вычислительные машины и тpудноpешаемые задачи. М.: Мир, 1982.
- Барздинь Я.М. Сложность распознавания симметрии на машинах Тьюринга. Сб. "Проблемы кибернетики", вып. 15 (1965), с. 245-248.
- Проблемы математической логики. Сложность алгоритмов и вычислимых функций. (Сб. переводов), М.: Мир, 1970.