Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ЛО.DOC
Скачиваний:
42
Добавлен:
23.03.2016
Размер:
534.53 Кб
Скачать

3.5. Автоматные грамматики.

Определение: 1) Правило вывода порождающей грамматики будем называть заключительным, если оно имеет вид Ах, где А – нетерминальный символ, а х – терминальная цепочка.

2) Правило вывода порождающей грамматики называется праволинейным (леволинейным), если оно имеет вид АхВ.

3) Не укорачивающую КС-грамматику называют праволинейной (леволинейной), если все ее правила праволинейны (леволинейны) или заключительны.

Лемма 5. По любой праволинейной грамматике может быть построена эквивалентная ей автоматная грамматика. По любой грамматике, включающей лишь правила вида Аа также праволинейные и заключительные правила, может быть построена почти эквивалентная автоматная грамматика.

3.6. Методы распознавания и анализа языков.

3.6.1. Машина Тьюринга как распознающее устройство.

Определение: Машиной Тьюринга называется пятерка следующих объектов: Т=(КНq0F) (формальное определение машины Тьюринга),

где : К – конечное множество состояний машины;

Н – конечное множество символов рабочей ленты;

КН=, L, RН;

q0 – начальное состояние, q0К;

F – подмножество заключительных состояний, FK;

 – функция, отображающая множества КН в семейство всех подмножеств множества К (Н{L, R}).

Информацию, хранимую в памяти машины Тьюринга, и положение управляющей головки удобно представлять в виде так называемой конфигурации машины, которая задается цепочкой символов следующего вида : ai1ai2 ... aik-1q aik ... ain, где ail – символы рабочей ленты, q – состояние машины.

Пусть и – две конфигурации машины Тьюринга.

Запись   используется тогда, когда машина может перейти из конфигурации в конфигурацию за один рабочий такт.

Еслимашина переходит из конфигурации в конфигурацию занесколько рабочих тактов, то используется запись   .

Определение: Машина Тьюринга вычисляет функцию

f(a), если q0 a  ,

где aH*,

l(a)1,

 – конфигурация, в которую входит одно из заключи­тельных состояний машины.

Цепочку, полученную из вычеркиванием символа состояния и всех вхождений пустых символов, будем считать значением функции f от аргумента a

Все машины Тьюринга делятся на детерминированные и недетерминированные.

Машина Тьюринга называется детерминированной, если любая ее конфигурация однозначно определяет следующий такт работы машины.

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

Определение: Линейно-ограниченный автомат – это машина Тьюринга, рабочая лента которой ограничена длиной рассматри­ваемой цепочки. Линейно-ограниченным автоматом называется пятерка следующих объектов: В=(К, Н, q0, F),

где К – непустое множество состояний;

Н – непустое множество символов рабочей ленты, КН= 

 функция, отображающая множествоКН в семейство всех подмножеств множества КН{L, R, N};

q0 – начальное состояние, q0К;

F – подмножество заключительных состояний, FK\{q0}.

Утверждение: Класс языков, допускаемых линейно-ограниченными автоматами совпадает с классом НС языков.

Определенным недостатком машин Тьюринга при использовании их для распознавания является то обстоятельство, что анализируемая цепочка преобразуется в процессе работы. Удобнее для целей распознавания определить машину Тьюринга так, чтобы она читала распознаваемую цепочку, записанную на входной ленте, слева направо, не меняя эту цепочку. При этом можно считать, что в рабочей ленте в начальный момент никакая информация не содержится, а в процессе работы туда записывается некоторая цепочка, которая преобразуется по правилам, определенным для машин Тьюринга. Различные классы таких «двухленточных» машин Тьюринга обычно используются для распознавания формальных языков, в том числе языков программирования. Приведем их точное определение.

Определение: Машиной Тьюринга с входной лентой называется шестерка следующих объектов:

T’=(K, Н,  q0, F),

где К – конечное множество состояний машины;

Н – конечное множество символов рабочей ленты

 – конечное множество символов входной ленты.

КНК (Н{L, R}).

q0 – начальное состояние;

F – подмножество заключительных состояний.

Существует еще одна разновидность машин Тьюринга –машина с входной и выходной лентами. Выходная лента служит для записи синтаксической структуры. Определение такой машины подобно определению машины Т’ с той разницей, что на каждом такте работы машина с выходной лентой может на нее записать некоторую цепочку символов. Поэтому вводится в рассмотрение еще одно конечное множество символов  – множество символов выходной ленты, а функция имеет следующий вид КНК (Н{L, R})*.