Лекция 12 Сложность алгоритмов.ppt
- Количество слайдов: 11
Сложность алгоритмов Пушникова Марина Юрьевна
Разрешимые проблемы l l l Функция называется вычислимой, если существует машина Тьюринга такая, что если функция определена, то машина Тьюринга должна остановиться, если же функция не определена, машина Тьюринга не остановится Предикат М(х) называется разрешимым, если его характеристическая функция вычислима. В противном случае предикат называется неразрешимым В контексте разрешимости предикаты часто называют проблемами
Неразрешимые проблемы l l l Теорема Черча о неразрешимости логики предикатов: не существует алгоритма, который для любой формулы логики предикатов устанавливает, общезначима она или нет Проблема остановки: не существует совершенно общего метода проверки программ на наличие в них бесконечных циклов Диофантовы уравнения: не существует общего метода решения диофантовых уравнений
Сложность вычислений Любая проблема имеет следующие характеристики: l Длина вычислений, которая характеризует время вычислений l Глубина вычислений, т. е. число уровней параллельных шагов l Объем памяти, требуемый для вычислений l Сложность в наихудшем случае l Сложность поведения в среднем
Функции сложности вычислений n. F n 10 30 50 60 0, 1 cек. 24, 3 cек. 5, 2 мин. 13 мин. 0, 001 cек. 17, 9 мин. 35, 7 лет 366 столетий
Классификация проблем по степени сложности l l l Алгоритм называется полиномиальным или алгоритмом класса Р, если у него временная сложность равна В противном случае алгоритм называется экспоненциальным или алгоритмом класса Е Проблема называется труднорешаемой, если для нее не существует разрешающего полиномиального алгоритма
Задачи с полиномиальным алгоритмом l l Рассортировать множество из n чисел. Сложность поведения в среднем порядка О(nlgn) Кратчайший путь на графе, состоящем из n вершин и m ребер. Сложность алгоритма – O(nm) Умножение целых чисел. Сложность алгоритма – О(nm) Умножение матриц. Сложность алгоритма –
Задачи класса Е Построить множество всех подмножеств данного множества l Построить все полные подграфы некоторого графа Алгоритм называется детерминированным, если для любого данного состояния существует не более одного вполне определенного следующего состояния Недетерминированные алгоритмы могут находится одновременно во многих состояниях Задача принадлежит NP классу, если она решается недетерминированным алгоритмом, работающим в течении полиномиального времени или решение задачи может быть проверено с полиномиальной сложностью за полиномиальное время l
Задачи класса NР l l l Решение систем уравнений с целыми переменными Составление расписания, учитывающего определенные условия Задача коммивояжера Размещение обслуживающих центров для максимального числа клиентов при минимальном числе центров Оптимальная загрузка емкости при наименьшей стоимости
Взаимодействие задач класса P и NP P NP NPС Задача принадлежит классу NPC или NP-полных задач, если она принадлежит классу NP и ее можно полиноминально свести к задаче NP класса Например: существует ли такое распределение истинностных значений высказывательных переменных, при которых формула исчисления высказываний, находящаяся в КНФ, выполнима?
Теорема о задачах класса NPC Если существует задача класса NPC, для которой существует полиномиальный алгоритм решения, то класс Р совпадает с классом NP
Лекция 12 Сложность алгоритмов.ppt