Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
47
Добавлен:
31.05.2021
Размер:
111.52 Кб
Скачать

§ Формальное определение сложности и классов сложности на машинах Тьюринга.

Формализация алгоритма с помощью машин Тьюринга позволяет определить временную сложность как количество шагов, сделанных машиной M при обработке входных данных x, а пространственную сложность как количество ячеек на ленте, на которых побывала головка машины M при обработке входных данных x. Если на входных данных x машина зацикливается, то значения сложностей не определены.

Детерминированные машины Тьюринга

Можно ввести определение многоленточной детерминированной машины Тьюринга, каждый шаг которой определяется символами, расположенными в текущих ячейках на всех лентах, т.е. набором (q, a1,…, ak) QxAk. По этому набору определяются выполняемые действия: (q′, b1, s1,…, bk, sk) Qx(AxS)k. Эти действия также производятся на всех лентах: на i-й ленте в текущую ячейку записывается символ bi и головка смещается в соответствии с si.

Примечание. Головки на лентах перемещаются независимо друг от друга.

Временная сложность многоленточной машины определяется так же, как и для одноленточной. Пространственная сложность k-ленточной машины при входных данных x определяется как максимальное количество ячеек, на которых при обработке входных данных x побывали головки машины M на всех лентах. Это определение согласуется с данным ранее определением для k=1.

Для любой машины Тьюринга емкостная сложность не превышает временную.

Количество лент машины Тьюринга принципиально не влияет на временную сложность. Более того, если считать, что машины Тьюринга эквивалентны, если выполняют одну и ту функцию, то для любой k-ленточной машины M существует эквивалентная ей одноленточная машина M′.

Введем определение первого класса сложности:

DTIME(f(n)) — это класс задач, для каждой из которых существует детерминированная МТ, решающая эту задачу.

Примечание. Под решением задачи понимается вычисление некоторой функции.

Каждая алгоритмически разрешимая задача принадлежит некоторому классу DTIME(f(n)). Можно сказать, что класс временной сложности - это совокупность всех задач, которые могут быть решены детерминированной по времени машиной Тьюринга.

Также можно ввести классы полиномиальной и экспоненциальной сложности.

P = PTIME = k>0DTIME(nk) — класс задач, разрешимых за полиномиальное время.

EXPTIME = k>0DTIME(2^( nk)) — класс задач, решаемых за экспоненциальное время. Здесь выражение 2^x означает «2 в степени x».

В связи с эквивалентностью машин Тьюринга определение классов PTIME и EXPTIME не зависит от количества лент в машине.

Недетерминированные машины Тьюринга

В недетерминированной машине Тьюринга появляется выбор действия из нескольких вариантов. Для недетерминированных алгоритмов обычно рассматривают только наиболее характерную разновидность задач, а именно задачи распознавания языков.

Рассмотрим подробнее определение принимаемых и отвергаемых слов для недетерминированной машины Тьюринга. Понятно, что на некоторых шагах выбор следующей конфигурации недетерминирован. Считается, что недетерминированная машина Тьюринга принимает входное слово x, если хотя бы одна такая последовательность конфигураций приводит к принимающему состоянию qY (такая последовательность называется принимающей). Если ни одна последовательность конфигураций не приводит к принимающему состоянию, машина M не принимает слово x. Таким образом, в отличие от детерминированных машин ситуации принятия и непринятия входного слова не симметричны.

Недетерминированная машина Тьюринга имеет временную сложность T(n), если для всякого принимаемого входного слова длины n найдется последовательность, состоящая не более чем из T(n) шагов, приводящая в допускающее состояние.

Недетерминированная машина Тьюринга имеет пространственную сложность S(n), если для всякого принимаемого входного слова длины n найдется последовательность, приводящая в принимающее состояние, в которой число просмотренных ячеек на каждой ленте не превышает S(n).

Для любой k-ленточной недетерминированной машины Тьюринга, имеющей временную сложность T(n), существует эквивалентная ей одноленточная недетерминированная машина Тьюринга.

В соответствии с введенным формализмом (формальным описанием алгоритмов как машин Тьюринга) Можно формально определить класс сложности NP.

NDTIME(f(n)) — это класс задач, для каждой из которых существует недетерминированная одноленточная машина Тьюринга, решающая эту задачу со сложностью O(f(n))).

NP = NPTIME = k>0NDTIME(nk) — класс задач, решаемых недетерминированными алгоритмами за полиномиальное время.

NEXPTIME = k>0NDTIME(2^( nk)) — класс задач, решаемых недетерминированными алгоритмами за экспоненциальное время.

По аналогии с классами по временной сложности можно ввести классы по пространственной сложности.

DSPACE(f(n)) — это класс языков, для каждого из которых существует детерминированная МТ, распознающая этот язык с пространственной сложностью O(f(n))).

PSPACE = k>0DSPACE(nk) — класс языков, распознаваемых с полиномиальной

пространственной сложностью.

NSPACE(f(n)) — это класс языков, для каждого из которых существует недетерминированная МТ, распознающая этот язык с пространственной сложностью O(f(n))).

NPSPACE = k>0NSPACE(nk) — класс языков, распознаваемых недетерминированными машинами с полиномиальной пространственной сложностью.

Для любой функции f справедливы соотношения DTIME(f(n)) DSPACE(f(n)) и

NTIME(f(n)) NSPACE(f(n)). Следовательно, NP NPSPACE. В результате соотношение классов можно изобразить в виде следующей схемы:

Класс сложности co-NP – это класс, задачи в котором являются отрицанием задач в NP, то есть задачи, для которых ответ «нет» можно проверить за полиномиальное время.

Соседние файлы в папке АОПИ. Лекции