русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Автоматы–распознаватели


Дата добавления: 2015-07-23; просмотров: 5468; Нарушение авторских прав


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

 

Пусть задано конечное непустое множество символов . Назовем его алфавитом. Природа букв может быть различной (цифры, буквы, иероглифы и т.д.), главное, чтобы из символов можно было образовывать слова (цепочки). Например, может быть подмножеством русского алфавита или просто .

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

Слово может быть пустым. Пустое слово обозначается : .

Слово называется подсловом , если , где любые слова в данном алфавите, в том числе пустые.

Над словами можно выполнять некоторые операции, важнейшей из которых является конкатенация.

Конкатенацией слов и называется слово , или просто . Например, если , то 11011○100010 = 11011100010. Операция конкатенации ассоциативна, но не коммутативна, т.е. , но . Слово вида , в которое входит раз, обычно обозначают . Обозначение соответствует слову, включающему произвольное число букв .

Языком в алфавите называется произвольное множество слов в этом алфавите. . Если – множество букв русского алфавита, то может быть множеством слов русского языка, если – множество символов языка программирования, то – множество слов этого языка.



Пусть – подмножество множества . Тогда – множество всех слов, образованных конкатенацией слов из множества , т.е. .

К языкам применимы обычные операции над множествами: объединение, пересечение, разность, взятие дополнения.

 

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

Роль распознавателя может выполнить автомат без выхода. Свяжем с некоторыми состояниями автомата символ «Да» и объединим их вмножество . С остальными состояниями свяжем символ «Нет». Тогда множество входных цепочек автомата разобьется на два класса: одни – приводящие автомат в одно из состояний, помеченных «Да», все другие – приводящие автомат в одно из состояний, помеченных «Нет».

Определение. Конечным автоматом–распознавателем называется пятерка объектов: , где

– конечное непустое множество (состояний);

– конечное непустое множество входных сигналов (входной алфавит);

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

– функция переходов;

- множество финальных состояний.

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

Обратите внимание, что входом для является буква из (автомат читает по буквам!) и состояние, принадлежащее множеству . Выходом является состояние из (возможно то же самое). Если автомат находится в состоянии и «читает» букву , то является входом для , и – следующее состояние. Для автомата в качестве «начала» можно использовать состояние . Если автомат «читает» букву из , то он переходит в состояние . Если автомат теперь «читает» следующую букву из , например , то он переходит в состояние . Следовательно по мере «прочтения» букв алфавита автомат переходит из одного состояния в другое.

Пусть – автомат с алфавитом , множеством состояний , а функция задана таблицей 4.2.

Таблица 4.2

 

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

Приведенный выше автомат можно представить графически, как показано на рис. 4.4. Здесь дуга из вершины в вершину помечена буквой из алфавита , например, буквой , если .

Рис. 4.4.

Если из одного состояния в другое может вести не одна дуга, то такая диаграмма называется мультиграфом.

Слово автомат «читает» слева направо, т.е. начинает с и заканчивает . Автомат допускает или распознает слово , если после «прочтения» он останавливается в финальном состоянии, которое, обычно обозначается двойной окружностью.

Например, для автомата, диаграмма состояния которого изображена на рис. 4.5, состояние – начальное, а состояние – финальное.

Рис. 4.5.

Данный автомат допускает слово , поскольку после прочтения он переходит в состояние ; после прочтения – в состояние ; после прочтения второго , он переходит в состояние , которое является финальным состоянием. Можно убедиться, что автомат допускает также слова и , но не распознает слова , или . Как отмечалось выше, множество слов, допускаемых автоматом, называется языком, допускаемым автоматом.

Пример. Рассмотрим автомат с диаграммой состояния, изображенной на рис. 4.6.

Рис. 4.6.

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

Пример. Рассмотрим автомат с диаграммой состояний, изображенной на рис. 4.7.

 

Рис. 4.7.

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

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

 



<== предыдущая лекция | следующая лекция ==>
Реализация конечных автоматов | Формулировка задачи кодирования.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.