Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по ТА.docx
Скачиваний:
11
Добавлен:
24.09.2019
Размер:
355.83 Кб
Скачать

22. Рекурсивный и рекурсивно-перечислимые языки. Иерархия языков по Хомскому

Запишем машину Тьюринга как: M= (Q,Σ,Г,δ,q0,B,F), где:

Q – конечное множество состояний Q={ q0,q1,q2,…,qn }

Σ – алфавит (внешний) Σ={0,1}

Г – внутренний алфавит Σ Г (то, что может быть записано на ленте)

δ – функция перехода δ: (q,X) →(P,Y,D) – функция.

q0 – состояние запуска

В – символ ленты. Если головке надо сдвинутся вправо/влево, то она сдвигается и заносит туда пробел В (если там нет символа). B принадлежит Г, не принадлежит Σ, В – символ

F – множество заключительных состояний

Эта машина Тьюринга детерминирована, δ – не обязательно функция, может быть отношением, значит, машина станет недетерминированной. В машине может быть несколько лент внешней памяти, несколько головок. Машина Тьюринга читает цепочки. Прочитав цепочку, она либо остановится, либо нет.

Опр. С каждой машиной Тьюринга связан язык – те цепочки, которые она допускает. Тот язык, который допускается машиной Тьюринга называется рекурсивно-перечислимым (рп-язык).

Машина Тьюринга останавливается, если обозревает в данном состоянии символ х. У нее нет перехода в следующее состояние, когда попадает в один из символов, принадлежащих F.

Опр. Язык машины Тьюринга называется рекурсивным, если машина Тьюринга останавливается независимо от того, допускает ли она слово или нет.

Пример.

M=({q0,q1,q2,q3,q4},{0,1},{0,1,X,Y,B}, δ, q0,B,{ q4})

Г

Q

0

1

Х

У

В

q0

(q1,Х,П)

-

-

(q3,У,П)

-

q1

(q1,0,П)

(q2,У,1)

-

(q1,У,П)

-

q2

(q2,0,П)

-

(q0,Х,П)

(q2,У,Л)

-

q3

-

-

-

(q3,У,П)

(q4,В,П)

q4

-

-

-

-

-

L={0n1n|n≥1} – язык этой машины Тьюринга.

Машина останавливается, если обозревая в некотором состоянии q символ Х, нет перехода в другое состояние. Если у машины есть состояние цикла, то её язык не является рекурсивным, он является рекурсивно-перечислимым.

Иерархия языков по Хомскому:

1. Рекурсивные языки(языки любого автомата)

2. рекурсивно перечислимые, но не перечислимые Ln (языки машины Тьюринга)

3. не рекурсивно перечислимые Ld (языки,не реализуемые на машине Тьюринга)

23. Временная сложность машин Тьюринга. Классы p и np языков и связь между ними

Опр. Временем работы машины Тьюринга на входе цепочки w наз число шагов, которое машина делает до остановки. Если, читая слово, машина не останавливается, то время равно ∞.

Опр. Временная сложность машины Тьюринга T(n) – функция, равная максимуму времени работы этой машины на всех входах длины n. (|w|=n).

Проблемы, решаемые на машине Тьюринга. Делятся на легко разрешимые (их можно решить эффективно) и трудно разрешимые на основе того, можно ли их решить за полиномиальное время или время, более, чем полиномиальное.

Алгоритм кодирования двоичных цепочек:

Пусть w – двоичная цепочка. Допишем к ней 1 – 1w и рассмотрим как записать некоторое натуральное число в двоичной системе. Получим номер этой цепочки.

1w → i N wi – i-тая цепочка.

Пустая цепочка имеет номер 1, цепочка 0 имеет номер 2.

1 – 3, 00 – 4 и т.д.

w (0+1)* - двоичные цепочки, длины их равны n.

1w – некоторое число цепочек, записанное в двоичном коде.

w→i (ставим в соответствие номер wi), ε→1, 0→2, 1→3, 01→4, 10→5, …

Каждую МТ можно закодировать определённым номером, т.е. поставить в соответствие i-тый номер.

Пусть M = (Q, Σ,…,F) – машина Тьюринга. Представим ее как двоичную цепочку:

1.→q1 – стартовое состояние, qr* - заключительное.

2.x1→0,x2→1,x3→B, оставшимся числам xi, i>3 приписываем натуральные числа

Л-D1,П -D2

δ(q1;xi)=(qk,xi,Dm) (δ – функция перехода) 0i10j10k10l10m.

Как закодируется машина Тьюринга?

111с211с31…1сr (где первая 1 указывает на то, что нужно присвоить номер машине Тьюринга, буква с - команда)

Опр.i – той машиной Тьюринга называется машина Тьюринга кодом которой называется i-тая двоичная цепочка wi.

Классы P и NP.

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

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

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

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

И в P и в NP существует машина Тьюринга и она обрабатывает слова длины n. Языки класса P образуются на детерминированных машинах Тьюринга, а NP на недетерминированных. Если машина детерминирована, значит, существует переход только в одно состояние. Любая детерминированная машина является недетерминированной, но не наоборот.

Языки класса P автоматически являются языками NP. То есть P NP. Вопрос об обратном включении. Верно ли, что класс P совпадает с NP? Задача решается путем сведения к другой, то есть проблему сводим к той, которая уже известна.

24. NP – полные проблемы

Опр. L называется NP полным. Если: 1) L принадлежит NP (то есть существует недетерминировааная машина Тьюринга и полиномиальная временная сложность T(n), для которой L – язык машины, а у машины нет последовательности переходов больше, чем T(n) при обработке входа длины n) 2)Для любого языка L’, принадлежащего NP существует полиномиальный язык (то есть для него существует машина Тьюринга, которая обрабатывает слова одной и той же длины за время, являющееся многочленом от n), который сводится к L, то есть L’ и L. An→A, A={0,1}

1 проблема (выполнимости). Дана булева функция, которая принимает значения 0 или 1. Функция называется выполнимой, если на каком-т наборе переменных принимает значение 1. Дана произвольная булева функция, узнать, выполнима она или нет (x’→y·z)vx (нужно перебрать все значения и вычислить). Каково время T(n), которое затратим, если будет n переменных, строк? Будет 22n

2 проблема (проблема выполнимости конъюнктивной нормальной функции). Любую функцию можно привести к нормальной форме (конъюнкции дизъюнктивных переменных и т.п.)

x1 x2 x3 … xn. Чтобы составить таблицу для этой функции, нужно сделать не меньше n! шагов.

3 проблема (конъюнктивная нормальная функция от трех переменных)

Проблема конъюнктивной нормальной формы. Требует времени не больше, чем полиномиальная.

Иерархия языков по Хомскому:

1. Рекурсивные языки (языки любого автомата)

2. рекурсивно перечислимые, но не перечислимые Ln (языки машины Тьюринга)

3. не рекурсивно перечислимые Ld (языки, не реализуемые на машине Тьюринга)

39

*