Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
discrete_math1.docx
Скачиваний:
332
Добавлен:
30.03.2015
Размер:
1.1 Mб
Скачать

46. Задача анализа автоматов-распознавателей.

Задача анализа автомата состоит в том, чтобы для конкретного автомата найти язык, распознаваемый этим автоматом.

Опишем алгоритм, использующий квадратные матрицы r-го порядка С0, С1, С2, …, Сr(гдеr– число состояний автомата), элементами которых являются регулярные выражения. Элементы матрицы Сkобозначим через. Для каждой пары (i,j), гдеi,j= 1, 2, …,r, элементматрицы С0– это множество тех символов входного алфавита А, каждый из которых за один такт переводит автомат из состоянияviв состояниеvj. Поскольку это множество конечно, томожно задать регулярным выражением. Элементы матриц С1, С2, …, Сrбудем вычислять с помощью рекуррентного соотношения.

Из этого соотношения следует, что если все элементы матрицы Сk1 – регулярные выражения, то матрица Сk тоже будет состоять из регулярных выражений. Можно строго доказать, что для любого k = 1, 2, …, r элемент представляет собой множество всех входных слов, переводящих автомат из состоянияvi в состояние vj за несколько тактов, но так, чтобы при этом автомат не проходил через промежуточные состояния, номера которых превосходят k. Если считать, что v1 – начальное состояние автомата, а F – множество всех заключительных состояний, то язык L, распознаваемый этим автоматом, можно будет задать в виде суммы регулярных выражений, где суммирование ведется по всем заключительным состояниям автомата.

Пусть автомат, распознающий некоторый язык L, задан диаграммой Мура. Решив задачу анализа для этого автомата, мы получим регулярное выражение, задающее языкL. Спрашивается, каким регулярным выражением можно задать дополнительный язык? Рассмотрим два автомата, один из которых распознаетL, а другой –. Поскольку всякое слово из множества А* обязательно принадлежит одному из языковLили(но не обоим сразу!), то каждое слово распознается каким-либо одним этих автоматов, но не распознается другим. Следовательно, оба автомата задаются одинаковыми диаграммами Мура и имеют одно и то же начальное состояние. Отличаются они лишь тем, что каждое заключительное состояние одного из автоматов считается незаключительным состоянием для другого автомата. Поэтому, изменив набор заключительных состояний в диаграмме Мура, задающей автомат для распознаванияL, мы получим диаграмму автомата, распознающего. Например, если в автомате из примера 1, распознающем языкL, объявитьv1начальным состоянием, аv1иv2– заключительными, то полученный автомат будет распознавать дополнительный язык. Затем, решив для него задачу анализа, найдем регулярное выражение для.

47. Задача синтеза автоматов-распознавателей.

Задача синтеза состоит в том, чтобы для заданного языка Lпостроить (синтезировать) автомат, распознающий этот язык. Согласно основной теореме теории автоматов, такой автомат существует только тогда, когдаL– регулярный язык. Поэтому далее будем решать задачу синтеза в предположении, что исходный языкLзадан регулярным выражением.

Напомним, что диаграмма Мура детерминированного автомата удовлетворяет условию детерминированности, т.е. для любого символа входного алфавита А из каждой вершины должна выходить ровно одна дуга, помеченная этим символом. Далее нам потребуются ориентированные графы, напоминающие диаграмму Мура автомата-распознавателя, но не обязательно обладающие свойством детерминированности. Такие графы мы будем называть недетерминированными источниками. Недетерминированный источник отличается от диаграммы Мура тем, что из любой его вершины может выходить несколько дуг, помеченных одним и тем же входным символом, или не выходить ни одной дуги с этим символом. Кроме того, некоторые дуги источника могут быть пустыми, т.е. помеченными символом Λ. Устройство, описываемое недетерминированным источником, является недетерминированным автоматом. Его также будем называть недетерминированным источником (или просто источником). Очевидно, любой детерминированный автомат является источником, но не любой источник можно считать детерминированным автоматом из-за того, что в источнике может быть нарушено условие детерминированности. Источник, как и автомат-распознаватель, имеет одну начальную и одну или несколько заключительных вершин. Поэтому он тоже распознает некоторый язык.

ТЕОРЕМА.Если недетерминированный источник имеетnсостояний и распознает некоторый языкL, то найдется детерминированный автомат, который имеет не более 2nсостояний и распознает тот же самый языкL.

Из этой теоремы следует, что недетерминированные источники способны распознавать только регулярные языки. Более того, теорема утверждает, что для любого источника найдется эквивалентный ему автомат, т.е. автомат, распознающий тот же самый язык. Иными словами, в области распознавания языков детерминированные автоматы умеют выполнять ту же самую работу, что и недетерминированные источники. Теорема об источнике дает нам метод для решения задачи синтеза автомата. Действительно, сначала по заданному языку можно построить недетерминированный источник (это сделать проще, чем сразу строить детерминированный автомат), а затем полученный источник надо «детерминизировать», т.е. преобразовать в эквивалентный ему детерминированный автомат.

Алгоритм построения источника по заданному языку опирается на тот факт, что для любого регулярного языка существует распознающий его двухполюсный источник, т.е. источник с одной начальной и одной заключительной вершинами. Это позволяет строить требуемый источник последовательным и (или) параллельным соединением более простых источников, распознающих отдельные множители и слагаемые, входящие в состав заданного регулярного выражения. А именно, пусть имеются два двухполюсных источника G1иG2, распознающие языкиL1иL2. Черезu1,u2иv1,v2обозначим соответственно их начальные и заключительные вершины. Параллельное соединение этих источников изображено на рисунке «а». Все добавленные дуги являются пустыми, т.е. помечены символомΛ. Добавленные вершины и иvявляются начальной и заключительной вершинами полученного источника соответственно. Очевидно, этот источник распознает сумму языковL1+L2.

Последовательное соединение двухполюсников G1иG2изображено на рисунке «б». При последовательном соединении добавляется пустая дуга, идущая из заключительной вершины первого источника в начальную вершину второго источника. В полученном источнике начальной вершиной являетсяu1, а заключительной вершиной –v2. Этот источник распознает произведение языковL1· L2.

Чтобы из двухполюсника G1получить источник, распознающий итерацию языка (L1)*, необходимо выполнить следующие действия: добавить новые начальную и заключительную вершиныsиt; провести пустые дуги [s,t], [s, и1], [v1,u1], [v1,t]. В итоге получим двухполюсный источник с начальной вершинойsи заключительной вершинойt.

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

Определение.Подмножество вершин источникаGназывается замкнутым, если вместе с каждой вершинойvиз этого подмножества ему принадлежат также все вершины, в которые изvидет пустая дуга.

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