
formal_language_theory / lectures / unit_7
.pdf
Машины Тьюринга и грамматики типа 0
Теорема 7.3. Если язык L порождается грамматикой типа 0, то язык L распознается машиной Тьюринга.
Доказательство. Пусть G = (VN, VT, P, S)
— грамматика типа 0 и L = L(G).
Опишем неформально недетерминированную машину Тьюринга T, распознающую язык L.
71

Машины Тьюринга и грамматики типа 0
Положим T = (Q, VT, , , q0, F), где
= VN VT {B, #, X}, причём
B, #, X VN VT.
Мы не задаём всех состояний во множестве Q сразу, но назначаем их, как только в них возникает потребность при построении .
Мы разрешаем T печатать пробел B, если необходимо.
72

Машины Тьюринга и грамматики типа 0
Сначала T имеет на ленте w VT*. Затем, сдвигая цепочку w на одну ячейку вправо, она вставляет на освободившееся перед w место символ #. Следом за w печатается цепочка # S #.
Содержание ленты в этот момент имеет вид # w # S #.
С этого момента Tm T будет недетерминированно моделировать вывод в грамматике G, начиная с символа S. Каждая сентенциальная форма будет появляться по очереди между двумя последними ограничителями # (рабочее пространство).
73

Машины Тьюринга и грамматики типа 0
Если некоторый выбор движений приводит к цепочке терминалов на рабочем пространстве, то она сравнивается с w. Если эти две цепочки равны, то Tm T принимает.
Более детально, пусть в какой-то момент Tm T имеет на своей ленте цепочку вида
#w#A1A2 ... Ak#. Машина T передвигает свою головку по цепочке A1A2 ... Ak, недетерминированно выбирая позицию i и константу r между 1 и максимальной длиной левой части любого правила из множества P.
74

Машины Тьюринга и грамматики типа 0
Затем Tm T исследует подцепочку
Ai Ai + 1... Ai + r – 1.
Если она является левой частью (lhs) некоторого правила, то она заменяется правой частью (rhs) этого же правила.
75

Машины Тьюринга и грамматики типа 0
При этом, если = | rhs | | lhs |, и 0, то
если 0 (правая часть правила короче
левой), то Tm T сдвигает последний символ # влево на | |, заполняя ячейки справа от него пробелами B;
если 0 (правая часть правила длиннее
левой), то Tm T слева от последнего символа
# временно вставляет заполнителей X, чтобы дать место для длинной правой части правила.
76

Машины Тьюринга и грамматики типа 0
Из этого простого моделирования выводов в грамматике G должно быть ясно, что Tm T
будет печатать на своей ленте строку |
вида |
|
* |
* |
|
. |
||
# w # #, где V , точно тогда, когда S |
||
|
G |
|
Кроме того, если = w, то Tm T принимает. |
Заметим, что для реализации проверки этого равенства опять пригодится символ X.
Что и требовалось доказать.
77

Машины Тьюринга и грамматики типа 0
Теорема 7.4. Если язык L распознается машиной Тьюринга, то язык L порождается грамматикой типа 0.
Доказательство. Пусть язык L распознается машиной Тьюринга
T = (Q, , , , q0, F).
Мы построим грамматику G, которая недетерминированно порождает две копии представления некоторого слова из множества *, а затем моделирует действие Tm T на одной из этих копий.
78

Машины Тьюринга и грамматики типа 0
Если Tm T принимает слово, то грамматика G превращает вторую копию в терминальную строку.
Если Tm T не принимает слово, вывод никогда не даёт в результате терминальную строку.
Снова мы предполагаем без потери общности рассуждений, что для каждого q F и X значение (q, X) не определено.
79

Машины Тьюринга и грамматики типа 0
Формально положим G = (VN, , P, A1), где
VN = {[X, Y] X { }, Y } Q{A1, A2, A3}, а
P= {(1) A1 q0A2;
(2)A2 [a, a]A2 для каждого a ;
(3)A2 A3;
(4)A3 [ , B]A3 ;
(5)A3 ;
Правила (1) – (5) порождают образ начальной конфигурации Tm T, включая рабочее пространство на её ленте.
80