Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
NikitchenkoNEWNEW.doc
Скачиваний:
26
Добавлен:
08.11.2019
Размер:
2.99 Mб
Скачать

4.7.2. Еквівалентність машин Тьюрінга та породжуючих граматик

Наведений у попередньому прикладі протокол машини Тьюрінга підказує ідею побудови породжуючої граматики за програмою машини. Таку побудову зробимо в два етапи: спочатку за програмою побудуємо продукції переходу (перетворення) конфігурацій машини Тьюрінга, потім зробимо обернення побудованих продукцій та додамо правило для аксіоми та правила породження і видалення порожніх символів. Отримана породжуюча граматика буде еквівалентна вибраній машині Тьюрінга.

Кожна команда машини Тьюрінга породжує наступні правила перетворення конфігурацій:

  • Команда виду qapbR породжує правило qabp.

  • Команда виду qapbL породжує множину правил перетворення { cqapcb | сA}.

  • Команда виду qapb породжує правило qapb.

На другому етапі побудови обернемо отримані правила (перетворення виду α→β замінимо на правило породжуючої граматики β→α), додамо правило для аксіоми S#qF#. Враховуючи, що за таких побудованих простих правилах можуть бути зайві #, переведемо їх в пустий ланцюжок  правилом #, або створимо у разі необхідності додаткові порожні символи # правилом ###. Нарешті, потрібно буде видалити початковий стан, щоб отримати (породити) початковий ланцюжок правилом q0.

Таким чином, буде створена граматика GM=(N,T, P, S), яка має наступні параметри:

  • N={S}Q{#} (SQ{#}).

  • T=A\{#}.

  • SN.

  • P будується за вказаним вище алгоритмом.

Продемонструємо наведений алгоритм прикладом.

Приклад 4.15. Візьмемо машину Тьюрінга, запропоновану в попередньому прикладі, та побудуємо еквівалентну їй граматику. Отримаємо граматику GM =({ S, q0, qa, q-a, qb, q-b, qL, qF, #}, {a, b}, P, S).

Потрібні перетворення команд наведено в таблиці, третій стовпчик якої задає продукції P.

Таблиця 4.1

Команди машини Тьюрінга

Правила

перетворення конфігурацій

Продукції породжуючої граматики

  1. q0aqa#R

  2. q0bqb#R

  3. qaaqaaR

  4. qabqabR

  5. qa#q-a#L

  6. q-aaqL#L

  1. qbaqbaR

  2. qbbqbbR

  3. qb#q-b#L

  4. q-bbqL#L

  1. qLaqLaL

  1. qLbqLbL

  1. qL#q0#R

  2. q0#qF#

  1. #q0a#qa

  2. #q0b#qb

  3. qaaaqa

  4. qabbqa

  5. aqa#q-aa#

  6. aq-aaqLa#; bq-aaqLb#; #q-aaqL##;

  7. qbaaqb

  8. qbbbqb

  9. bqb#q-bb#

  10. aq-bbqLa#; bq-bbqLb#;

#q-bbqL##;

  1. aqLaqLaa; bqLaqLba; #qLaqL#a

  2. aqLbqLab; bqLbqLbb; #qLbqL#b

  3. qL##q0

  4. #q0##qF#

0. S #qF#

0#. # ##

  1. #qa  #q0a

  2. #qb #q0b

  3. aqaqaa

  4. bqaqab

  5. q-aa#  aqa#

  6. qLa#  aq-aa; qLb#  bq-aa; qL##  #q-aa

  7. aqbqba

  8. bqbqbb

  9. q-bb#  bqb#

  10. qLa#  aq-bb; qLb#  bq-bb; qL##  #q-bb

  11. qLaaaqLa; qLbabqLa; qL#a  #qLa;

  12. qLabaqLb; qLbbbqLb; qL#b  #qLb;

  13. #q0qL#

  14. #qF##q0#

  1. q0

  2. #

Правила, отримані перетворенням команди з номером n (n=6, 10, 11, 12), будемо далі нумерувати як n(1), n(2), n(3).

Продемонструємо коректність правил виводу для породження ланцюжка abba (індекси вказують на застосоване правило):

S0#qF#14#q0#13#qL#0##qL##10(3) ##q-bb#16#q-bb#9#bqb#8 #qbb#0###q0b#13#qL#bb#12(3)##qLbb#16#qLbb#12(2) #bqLb#0#

#bqLb##6(2) #bbq-aa#5#bbaqa#3#bbqaa#4#bqaba#4#qabba#1

#q0abba#16 q0abba#16 q0abba.

Зауважимо, що в процесі виводу застосовувались правила породження та знищення порожнього символу #.

Наведені вище міркування та приклад дозволяють сформулювати наступне твердження.

Теорема 4.3. За кожною машиною Тьюрінга M можна побудувати еквівалентну їх породжуючу граматику G, що породжує ту ж мову, яку сприймає M, тобто: LT(M)=L(G).

Ця теорема може бути обернена.

Теорема 4.4. За кожною породжуючою граматикою G можна побудувати еквівалентну їх машину Тьюрінга M, що сприймає ту ж мову, яку породжує G, тобто: LT(M)=L(G).

Доведення може бути конструктивним, коли машиною Тьюрінга моделюється зворотній до породження процес сприйняття ланцюжка, або можна скористатися тезою Чорча, що стверджує існування машини Тьюрінга для формального подання інтуїтивних алгоритмів. Тут деталі такої побудови описувати не будемо.

З наведених теорем випливає, що граматики типу 0 породжують усі рекурсивно-зліченні множини (мови) в алфавіті A. Тим самим клас породжуючих граматик має таку ж виразну потужність, як і інші універсальні моделі алгоритмів.

Відзначимо, що є різні варіанти машин Тьюрінга, наприклад, машини з різною кількістю стрічок, з різними обмеженнями на команди. Зокрема, виділяють детерміновані (не існує команд з однаковими лівими частинами та різними правими частинами), та недетерміновані машини Тьюрінга (існують команди з однаковими лівими частинами та різними правими частинами). Клас формальних мов, що сприймаються машинами Тьюрінга, є однаковий для детермінованих та недетермінованих машин, та для машин з різною кількістю стрічок.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]