Языки и их представление
Итак, если сокращать нельзя, достраиваем слово до ближайшего подходящего квадрата. В данном случае удобнее достроить слово до т.к. для достройки до нам бы потребовалось перевести , т.е. опять что-то сократить. Напомним, что в КЗ-грамматиках допускается переход аксиомы в пустую цепочку ( ), если аксиома нигде более не встречается в правых частях правил (т.е. когда из начального ничего получают другое ничего).
Мы получили несокращающую грамматику. Но широко используемые при ее построении правила вида ( и т.п.), очевидно, не подходят под определение НС-грамматики (убедитесь!). Такие "рокировки" , однако, легко раскрыть через цепочку правил вида
где и - нигде более в грамматике не используемые вспомогательные знаки. Отметим, что замену на промежуточные знаки и обратно на исходные нужно осуществлять в одном и том же порядке (слева-направо или, наоборот, только справа-налево), иначе в общем случае (когда назначение A и B в грамматике различно) возникают лишние цепочки.
Так, применение замены
(нарушен порядок замен) при наличии соответствующего прово- кационного окружения допускает подмену B на A:
Замена AB на BA в рамках НС-грамматики коротко обозначается, как и обычный вывод: .
Таким образом, один из возможных наборов правил искомой НС-грамматики имеет следующий вид:
Правила | Вид получаемой цепочки |
BSE | |
BCnDn E | |
BCn-1DCADn-1E | |
BCn-1(DA)nCE | |
B(DAn)nCnE | |
a2BAn(DAn)n-1CnE | |
(a2An)nBCnE | |
(a2An)nBEa2n | |
an*n+2nBEa2n | |
Машины Тьюринга
Формально машина Тьюринга ( Tm ) - это , где
Q - конечное множество состояний;
- множество заключительных состояний;
- множество допустимых ленточных символов; один из них, обычно обозначаемый B, - пустой символ
- множество входных символов, подмножество \Gamma, не включающее B,
D функция переходов, отображение из для некоторых аргументов функция D может быть не определена.
- начальное состояние.
Так определенная машина Тьюринга называется детерминированной. Недетерминированная машина Тьюринга для каждой пары может иметь несколько возможных переходов. В начале n ячеек ленты содержат вход , остальная часть ленты содержит пустые символы. Обозначим конфигурацию машины Тьюринга как , где - текущее состояние, i - выделенный элемент строки, "положение головки" , w - текущее содержимое занятого участка ленты. Если головка сдвигается с ячейки, машина должна записать в нее символ, так что лента всегда состоит из участка, состоящего из конечного числа непустых символов и бесконечного количества пустых символов.
Шаг Tm определим следующим образом.
Пусть (q, A1, A2, ... An, i) - конфигурация Tm,
где .
Если и D(q, Ai) = (p, A, R)
То есть Tm печатает символ A и передвигается вправо.
Если и
( L от англ. Left), то если i = n, то допустимо A = B и
Tm печатает A и передвигается влево, но не за конец ленты.
Если i = n + 1, головка просматривает пустой символ B.
Если D(q, B) = (p, A, R), то и
Если D(q, B) = (p, A, L), то допустимо A=B и
Если две конфигурации связаны отношением , то мы говорим, что вторая получается из первой за один шаг. Если вторая получается из первой за конечное, включая ноль, число шагов, то такое отношение будем обозначать .
Язык, допускаемый Tm, это множество таких слов из T*, которые будучи расположены в левом конце ленты переводят Tm из начального состояния q0 с начальным положением головки в самом левом конце ленты в конечное состояние. Формально, язык, допускаемй Tm, это
Если Tm распознает L, то Tm останавливается, то есть не имеет переходов после того, как слово допущено. Однако, если слово не допущено, возможно, что Tm не останавливается.
Язык, допускаемый некоторой Tm, называется рекурсивно перечислимым. Если Tm останавливается на всех входах, то говорят, что Tm задает алгоритм и язык называется рекурсивным.
Существует машина Тьюринга, которая по некоторому описанию произвольной Tm и кодированию слова x моделирует поведение Tm со входом x. Такая машина Тьюринга называется универсальной машиной Тьюринга.
Неразрешимость проблемы останова
Проблема останова для машины Тьюринга формулируется следующим образом: можно ли определить по данной машине Тьюринга в произвольной конфигурации со строкой конечной длины непустых символов на ленте остановится ли она? Говорят, что эта проблема рекурсивно неразрешима, что означает, что не существует алгоритма, который для любой Tm в произвольной конфигурации определял бы остановится ли в конце концов Tm.
Перенумеруем все машины Тьюринга и все возможные входы над алфавитом . Рассмотрим язык
L1={xi|xi не допускается Ti}
Ясно, что не допускается никакой Tm. Допустим, что это не так. Пусть допускается Tj. Тогда тогда и только тогда, когда не допускается Но поскольку допускает тогда и только тогда, когда допускается - противоречие. Так что - не является рекурсивно перечислимым множеством.