Распознаватели Лекция 14

advertisement
Лекция 14
Распознаватели
• Третий способ задания языка - это задание его с помощью
распознавателя.
• Распознаватель – схематизированный алгоритм, определяющий
некоторое множество. Распознаватель можно изобразить так,
как это показано на рисунке 14.1.
• Распознаватель состоит из трёх частей: входной ленты,
управляющего устройства с конечной памятью и
вспомогательной памяти.
• Входную ленту можно рассматривать как линейную
последовательность клеток или ячеек, причем каждая ячейка
содержит ровно один символ из некоторого конечного входного
алфавита. Самую левую и самую правую ячейку могут занимать
особые концевые маркеры; маркер может быть только на
правом конце ленты, маркеров может не быть вовсе.
• Входная головка: в каждый данный момент читает или
обозревает одну входную ячейку. За один шаг работы
распознавателя входная головка может сдвинуться на одну
ячейку влево, остаться неподвижной или сдвинуться на одну
ячейку вправо.
Определение 14.1
• Распознаватель, который никогда не
передвигает свою входную головку влево,
называется односторонним.
• Обычно предполагается, что входная головка
только читает (в ходе работы расположение
входных символов на входной ленте не
меняется). Но существуют распознаватели,
входная головка которых и читает, и пишет.
• Вспомогательной (рабочей) памятью
распознавателя может быть любого типа
хранилище информации, или данных.
Предполагается, что алфавит (рабочей)
памяти конечен и хранящаяся в памяти
информация построена (или образована)
только из символов этого алфавита.
Предполагается, что в любой момент
времени можно конечными средствами
описать содержимое и структуру памяти.
Поведение вспомогательной памяти
характеризуется с помощью двух функций:
функции доступа к памяти и функции
преобразования памяти.
• Функция доступа к памяти – это отображение множества
возможных состояний, или конфигураций, памяти в конечное
множество информационных символов, которое может
совпадать с алфавитом памяти.
• Функция преобразования памяти описывает изменения памяти,
т.е. описывает, каково будет следующее состояние памяти при
текущем состоянии памяти, входной ленты и состояния
управляющего устройства.
• Рабочая память является необязательным компонентом
распознавателя. Например, конечные автоматы (простейший
тип распознавателя) имеют только входную ленту (со своим
алфавитом) и управляющее устройство (со своим множеством
состояний и функцией переходов).
• Тип памяти определяет название распознавателя (если память
распознавателя магазинная, то распознаватель называется
распознавателем с магазинной памятью).
• Тип памяти также определяет, каковы функции
доступа к памяти и преобразования памяти.
Например, если память магазинная, то доступ
производится только к верхнему элементу памяти,
изменяться также может только верхний элемент
памяти либо может производиться запись в новый
элемент памяти, расположенный над верхним.
• Ядром распознавателя является управляющее
устройство (УУ) с конечной памятью; УУ управляет
поведением распознавателя.
• УУ характеризуется конечным множеством
состояний, а также отображением, которое
описывает, как меняются состояния в зависимости от
текущего входного символа, текущего состояния и
текущего состояния рабочей памяти. УУ определяет,
в каком направлении сдвинуть входную головку, и
какую информацию поместить в рабочую память.
• Распознаватель работает, проделывая некоторую
последовательность шагов, или тактов:
• входная головка сдвигается на одну ячейку влево,
одну ячейку вправо или сохраняется в исходном
положении,
• в рабочую память помещается некоторая
информация,
• изменяется состояние управляющего устройства.
• Поведение распознавателя удобно описывать в
терминах конфигураций. Конфигурация –
мгновенный снимок распознавателя, на котором
изображены:
• состояние управляющего устройства,
• содержание входной ленты вместе с положением
входной головки,
• содержание памяти.
• УУ распознавателя может быть детерминированным
или недетерминированным.
• Если УУ недетерминированное, то для каждой
конфигурации существует конечное множество
возможных следующих шагов, любой из которых
распознаватель может сделать, исходя из этой
конфигурации. Если УУ недетерминированное, то
распознаватель является недетерминированным.
• УУ называется детерминированным, если для
каждой конфигурации существует не более одного
возможного следующего шага. Если УУ
детерминированное, то распознаватель является
детерминированным.
Определение 14.2
• Конфигурация называется начальной, если
УУ находится в заданном начальном
состоянии, входная головка обозревает
самый левый символ на входной ленте и
память имеет заранее установленное
начальное содержимое.
Определение 14.3
• Конфигурация называется заключительной,
если УУ находится в одном из состояний
заранее выделенного множества
заключительных состояний, а входная
головка обозревает правый концевой маркер
или, если маркер отсутствует, сошла с
правого конца входной ленты.
Определение 14.4
• Говорят, что распознаватель допускает
входную цепочку , если, начиная с
начальной конфигурации, в которой цепочка
 записана на входной ленте,
распознаватель может проделать
последовательность шагов,
заканчивающуюся заключительной
конфигурацией.
Определение 14.5
• Язык, определяемый распознавателем, это
множество входных цепочек, которые он допускает.
• Таким образом, любой распознаватель
характеризуется:
• множеством состояний управляющего устройства,
• алфавитом входной ленты,
• алфавитом рабочей памяти (если рабочая память
является компонентом распознавателя),
• функцией переходов, описывающей правила
изменения состояний рабочей памяти и
управляющего устройства в зависимости от текущего
состояния входной ленты, управляющего устройства
и рабочей памяти,
• начальным состоянием рабочей памяти,
• начальным состоянием управляющего устройства,
• множеством заключительных состояний
управляющего устройства
• Для каждого класса грамматик иерархии Хомского,
существует естественный класс распознавателей:
• Язык L праволинейный тогда и только тогда, когда он
определяется (односторонним детерминированным)
конечным автоматом
• Язык L контекстно-свободный тогда и только тогда,
когда он определяется (односторонним
недетерминированным) автоматом с магазинной
памятью.
• Язык L контекстно – зависимый тогда и
только тогда, когда он определяется
(двусторонним недетерминированным)
линейно ограниченным автоматом.
• Далее рассмотрим два типа
распознавателей: конечные автоматы и
автоматы с магазинной памятью.
Download