1 / 20

Вычислительная сложность Классы сложности P и NP .

Вычислительная сложность Классы сложности P и NP. Сергей Казаков, аспирант каф. КТ, НИУ ИТМО. Как все начиналось…. Начало 1960-х годов Alan Cobham , 1964 Jack Edmonds, 1965 Они ввели сложностные классы. Разрешимые и неразрешимые задачи. Проблема останова – неразрешимая задача

Download Presentation

Вычислительная сложность Классы сложности P и NP .

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Вычислительная сложностьКлассы сложности P и NP. Сергей Казаков, аспирант каф. КТ, НИУ ИТМО

  2. Как все начиналось… • Начало 1960-х годов • Alan Cobham, 1964 • Jack Edmonds, 1965 • Они ввели сложностные классы

  3. Разрешимые и неразрешимые задачи • Проблема останова – неразрешимая задача • Доказательство – от противного.

  4. Сложностный класс P • Класс P— класс задач, разрешимых на детерминированной машине Тьюринга за полиномиальное время

  5. Класс P. Примеры-1 • Посчитать сумму чисел • Посчитать произведение чисел • Проверка простоты числа • Сортировка массива • Определение связности графа • Эйлеров путь/цикл

  6. Эйлеров путь/цикл in P • Путь, проходящий по всем ребрам графа, и при этом только по одному разу • Граф Кёнигсбергских мостов: • Эйлер (1735 год): цикл существует  граф связный и все вершины четной степени

  7. Эйлеров путь

  8. Эйлеров цикл procedurefind_all_cycles (v): • пока есть цикл, проходящий через v • находим его • добавляем все вершины цикла к ответу • удаляем цикл из графа • идем по вершинам из ответа и для каждой рекурсивно вызываем себя find_all_cycles(nv) • Working Time – O(M), M – число ребер

  9. Сложностный класс NP • Класс NP— класс задач, у которых есть сертификат решения, который можно быстро (за полином) проверить на машине Тьюринга. • Класс NP — класс задач, которые можно быстро решить (за полином) на недетерминированной машине Тьюринга.

  10. Класс NP. Примеры-1 • Задача выполнимости булевых форму (SAT) • Определение наличия в графе гамильтонова цикла • Задача о коммивояжёре • Задача поиска вершинного покрытия графа

  11. Гамильтонов путь/цикл • Гамильтонов путь— путь в графе, содержащий каждую вершину графа ровно один раз • Гамильтонов цикл – гамильтонов путь, начальная и конечная вершина которого совпадают

  12. Гамильтонов путь/цикл

  13. Задача коммивояжёра Задача коммивояжёра (англ. Travellingsalesmanproblem, TSP)

  14. NP-трудные и NP-полные задачи • Сведение по Карпу: P1 сводится к P2  f: (pP1  f(p)P2) • NP-трудность: P1 – NP-трудная задача, если P2NP, P2 сводится к P1 • NP-полная задача: из NP и NP-трудная

  15. Соотношения P и NP

  16. NP-трудные и NP-полные задачи • Стивен Кук (1971 год): • термин «NP-полная задача» • задача SAT была первой задачей, для которой доказывалось это свойство. • Определение наличия в графе гамильтонова цикла – NP-полная • Задача о коммивояжёре – • с оптимизацией – NP-трудная • не длиннее k – NP-полная

  17. Приближенные решения • Многие задачи, представляющие практический интерес – NP-полные • Для них маловероятно найти точный алгоритм с полиномиальным временем работы • При небольшом объеме входных данных может подойти алгоритм, время работы которого выражается показательной функцией • Иногда удается выделить важные частные случаи, разрешимые в течение полиномиального времени

  18. Приближенные решения • Можно найти в течение полиномиального времени решение, близкое к оптимальному. • Алгоритм, возвращающий решения, близкие к оптимальным, называется приближенным алгоритмом.

  19. Методы решения NP-полных задач • Приближенные и эвристические методы – применение эвристик для выбора элементов решения. • Псевдо полиномиальные алгоритмы – подкласс динамического программирования. • Метод локальных улучшений – поиск более оптимального решения в окрестности некоторого текущего решения. • Метод ветвей и границ - отбрасывание заведомо неоптимальных решений целыми классами в соответствии с некоторой оценкой. • Метод случайного поиска – представление выбора последовательностью случайных выборов.

  20. Спасибо за внимание!Вопросы?

More Related