Теория и реализация языков программирования

       

что язык распознается машиной Тьюринга


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

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

Теорема 2.4. Если L генерируется грамматикой типа 0, то L распознается машиной Тьюринга.

Доказательство. Пусть
что язык распознается машиной Тьюринга
- грамматика типа 0 и L = L(G). Опишем неформально недетерминированную машину Тьюринга Tm, допускающую L.

что язык распознается машиной Тьюринга


где
что язык распознается машиной Тьюринга


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

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

Теперь Tm недетерминированно симулирует вывод в G, начиная с S. Каждая сентенциальная форма вывода появляется по порядку между последними двумя #. Если некоторый выбор переходов ведет к терминальной строке, она сравнивается с w. Если они совпадают, Tm допускает.

Формально, пусть Tm имеет на ленте #w#A1A2...Ak#. Tm передвигает недетерминированно головку по A1A2...Ak, выбирая позицию i и константу r между 1 и максимальной длиной левой части любого правила вывода в P. Затем Tm проверяет подстроки AiAi+1...Ai+r-1. Если AiAi+1...Ai+r-1

- левая часть некоторого правила вывода из P, она может быть заменена на правую часть. Tm может сдвинуть Ai+rAi+r+1...Ak# либо влево, либо вправо, освобождая или заполняя место, если правая часть имеет длину, отличную от r.

Из этой простой симуляции выводов в G видно, что Tm печатает на ленте строку вида
что язык распознается машиной Тьюринга
в точности, если
что язык распознается машиной Тьюринга
. Если y = w, Tm допускает L.



Теорема 2.5. Если L распознается некоторой машиной Тьюринга,то L генерируется грамматикой типа 0.

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


и затем симулирует поведение Tm на одной из копий. Если Tm допускает слово, то G трансформирует вторую копию в терминальную строку. Если Tm не допускает L, то вывод никогда не приводит к терминальной строке.

Формально, пусть

что язык распознается машиной Тьюринга
, где
что язык распознается машиной Тьюринга


Продукции таковы:

  1. что язык распознается машиной Тьюринга
  2. что язык распознается машиной Тьюринга
    для каждого
    что язык распознается машиной Тьюринга
  3. что язык распознается машиной Тьюринга
  4. что язык распознается машиной Тьюринга
  5. что язык распознается машиной Тьюринга
  6. что язык распознается машиной Тьюринга
    для каждого
    что язык распознается машиной Тьюринга
    и каждого
    что язык распознается машиной Тьюринга
    и
    что язык распознается машиной Тьюринга
    такого, что
    что язык распознается машиной Тьюринга
  7. что язык распознается машиной Тьюринга
    для каждого C, J, I из
    что язык распознается машиной Тьюринга
    , a и b
  8. что язык распознается машиной Тьюринга
    для каждого
    что язык распознается машиной Тьюринга


Используя правила 1 и 2

что язык распознается машиной Тьюринга


где
что язык распознается машиной Тьюринга
для некоторого
что язык распознается машиной Тьюринга


Предположим, что Tm допускает строку a1a2 ... an. Тогда для некоторого m Tm использует не более, чем m ячеек справа от входа. Используя правило 3, затем правило 4 m раз, и наконец, правило 5, имеем

что язык распознается машиной Тьюринга


Начиная с этого момента могут быть использованы только правила 6 и 7, пока не сгенерируется допускающее состояние. Отметим, что первые компоненты ленточных символов в
что язык распознается машиной Тьюринга
никогда не меняются. Индукцией по числу шагов Tm можно показать, что если

что язык распознается машиной Тьюринга
, то

что язык распознается машиной Тьюринга


что язык распознается машиной Тьюринга


где a1, a2, ... an принадлежат
что язык распознается машиной Тьюринга
, an+1 = an+2 = ... an+m = e,

X1 X2, ...Xn+m принадлежат
что язык распознается машиной Тьюринга
и XS+1=XS+2=...Xn+m=B

Предположение индукции тривиально для нуля шагов. Предположим, что оно справедливо для k - 1 шагов. Пусть

что язык распознается машиной Тьюринга


за k шагов. По предположению индукции

что язык распознается машиной Тьюринга


Пусть E = L, если j2 = j1 - 1 и E = R, если j2 = j1 + 1. В этом случае D(q1, Xj1 ) = (q2, Yj1, E).

По правилам 6 или 7

что язык распознается машиной Тьюринга


что язык распознается машиной Тьюринга


в зависимости от того, равно ли E значению R или L.

Теперь Xi = Yi для всех
что язык распознается машиной Тьюринга
.

Таким образом,

что язык распознается машиной Тьюринга


что доказывает предположение индукции.

По правилу 8, если
что язык распознается машиной Тьюринга
, легко показать, что

что язык распознается машиной Тьюринга


Таким образом, G может генерировать a1a2 ... an, если a1a2 ... an допускается Tm. Таким образом, L(G) включает все слова, допускаемые Tm. Для завершения доказательства необходимо показать, что все слова из L(G) допускаются Tm. Индукцией доказывается, что
что язык распознается машиной Тьюринга
только если w допускается Tm.


Содержание раздела