Возможность порождения формальной грамматикой произвольного перечислимого языка — различия между версиями
KK (обсуждение | вклад) м |
KK (обсуждение | вклад) м |
||
Строка 1: | Строка 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | |||
− | |||
− | |||
− | |||
{{Лемма | {{Лемма | ||
|statement= | |statement= | ||
Строка 66: | Строка 62: | ||
}} | }} | ||
+ | {{Теорема | ||
+ | |statement= | ||
+ | [[Перечислимые языки | Язык]] распознается [[Машина Тьюринга | машиной Тьюринга]] тогда и только тогда, когда он генерируется [[Формальные грамматики | формальной грамматикой]]. | ||
}} | }} | ||
Версия 00:19, 22 декабря 2015
Лемма: |
Для любой формальной грамматики существует машина Тьюринга, распознающая язык этой грамматики. |
Доказательство: |
Пусть Теперь сентенциальная форма вывода появляется по порядку между последними двумя . Если некоторый выбор переходов ведет к терминальной строке, она сравнивается с . Если они совпадают, допускает. недетерминированно симулирует вывод , начиная с . КаждаяФормально, пусть Из этой простой симуляции выводов в имеет на ленте . передвигает недетерминированно головку по , выбирая позицию и константу между и максимальной длиной левой части любого правила вывода в . Затем проверяет подстроки . Если — левая часть некоторого правила вывода из , она может быть заменена на правую часть. может сдвинуть либо влево, либо вправо, освобождая или заполняя место, если правая часть имеет длину, отличную от . видно, что печатает на ленте строку вида , в точности, если . Если , допускает . |
Лемма: |
Если язык распознается некоторой машиной Тьюринга, то существует формальная грамматика, которая его генерирует. |
Доказательство: |
Пусть допускает . Построим грамматику , которая недерминированно генерирует две копии представления некоторого слова из и затем симулирует поведение на одной из копий. Если допускает слово, то G трансформирует вторую копию в терминальную строку. Если не допускает , то вывод никогда не приводит к терминальной строке.Формально, пусть
Используя правила 1 и 2, Предположим, что Предположение индукции тривиально для нуля шагов. Предположим, что оно справедливо для По правилам 6 или 7: Теперь .Таким образом, , что доказывает предположение индукции.По правилам 8-10, если Таким образом, , легко показать что . может генерировать , если допускается . Таким образом, включает все слова, допускаемые . Для завершения доказательства необходимо показать, что все слова из допускаются . Индукцией доказывается, что только если допускается . |
Теорема: |
Язык распознается машиной Тьюринга тогда и только тогда, когда он генерируется формальной грамматикой. |
Примеры
Построение МТ по грамматике
Задача: |
построить МТ для слудующей грамматики:
|
Решением будет МТ, которая изменяет содержимое ленты следующим образом ( ):
- это первое правило грамматики
- это второе правило грамматики
- это третье правило грамматики
- это четвертое правило грамматики
- , где — допускающее состояние
Причем она перебирает все возможные последовательности применения таких преобразований недетерминированно (если ни одно применить нельзя, МТ возвращает ленту в исходное состояние)
Построение грамматики по МТ
Задача: |
написать грамматику, генерирующую язык заданной МТ:
|
Грамматика будет следующей:
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- .
См. также
Источники информации
- Math Help Planet — Порождающие грамматики
- И.А. Волкова, А.А. Вылиток, Т.В. Руденко — Формальные грамматики и языки. Элементы теории трансляции, 3-е изд. — Москва, Издательский отдел факультета ВМиК МГУ им. М.В.Ломоносова, 2009 — 115 с. : ISBN 978-5-89407-395-8
- Хопкрофт Д., Мотвани Р., Ульман Д. — Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2008. — 528 с. : ISBN 978-5-8459-1347-0 (рус.)