Теория конечных автоматов и примеры. Основные понятия теории автоматов. Общие положения

Вятский Государственный Университет

ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

Кафедра Электронных Вычислительных Машин

Теория автоматов (часть I) Конспект лекций

Теория автоматов (часть I). Конспект лекций /Киров, Вятский государственный университет, 2010, 56с.

В конспекте лекций по курсу «Теория автоматов» (Часть I) приведен необходимый теоретический материал, включающий основы прикладной теории цифровых автоматов, основные определения и правила синтеза абстрактных конечных автоматов, схема дискретного преобразователя В.М. Глушкова и три основных модели конечных автоматов: модель Мили, модель Мура и модель С-автомата. Далее рассмотрены методы кодирования элементов памяти, минимизация автоматов с памятью, канонический метод синтеза структурных автоматов. Особое внимание уделено правилам построения оптимальной комбинационной схемы автомата по каноническим уравнениям с учётом выбранных элементов памяти. Указана соответствующая литература.

Курс лекций предназначен для студентов очного обучения специальности 230101 - "Вычислительные машины, комплексы, системы и сети", а также бакалавров направления 230100.62 – "Информатика и вычислительная техника".

Составитель: к.т.н., доцент каф. ЭВМ В.Ю. Мельцов.

    Вятский государственный университет, 2010

    Мельцов В.Ю.

1. Введение 4

2. Задачи анализа и синтеза 4

3. Абстрактный управляющий автомат 7

4. Синтез абстрактных автоматов 9

5. Синхронный автомат 10

6. Асинхронные автоматы 11

7. Автоматы Мили и Мура 12

8. Способы задания автоматов 14

8.1 Табличный способ задания автоматов 15

8.2. Задание автомата с помощью графа 17

8.3. Матричный способ задания автоматов 19

9. Переход от автомата Мили к автомату Мура и обратно 19

10. Этапы синтеза автоматов 23

11. Минимизация числа внутренних состояний автомата 26

12. Минимизация полностью определённых автоматов. 27

13. Совмещённая модель автомата (C-автомата) 31

14. Структурный синтез автомата 32

14.1. Канонический метод структурного синтеза автомата 32

14.2. Структурный синтез С-автомата 35

15. Кодирование состояний автомата 41

15.1. Метод противогоночного кодирования состояний автомата 42

15.2. Соседнее кодирование состояний автомата 45

15.3. Кодирование состояний автомата для минимизации комбинационной схемы 47

16. Элементарные автоматы памяти 50

17. Синтез автоматов на ПЛМ и ПЗУ 54

1. Введение

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

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

Составной частью теории систем является теория автоматов. Она имеет дело с математическими моделями, предназначенными для в той или иной степени приближенного отображения физических явлений. Применение модели теории автоматов не ограничивается какой-либо частной областью, а возможно для решения проблем практически в любой области исследования.

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

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

  • 1 Терминология
  • 2 Применение
    • 2.1 Типовые задачи
  • 3 См. также
  • 4 Литература
  • 5 Ссылки

Терминология

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

  • Слово - строка символов, создаваемая через конкатенацию (соединение).
  • Алфавит - конечный набор различных символов (множество символов)
  • Язык - множество слов, формируемых символами данного алфавита. Может быть конечным или бесконечным.


Автоматы

Автоматы могут быть детерминированные и недетерминированные.

Детерминированный Конечный Автомат (ДКА)
  • - функция перехода, такая что
  • - начальное состояние
Недетерминированный Конечный Автомат (НКА) - последовательность (кортеж) из пяти элементов, где:
  • - множество состояний автомата
  • - алфавит языка, который понимает автомат
  • - отношение перехода, где - пустое слово. То есть, НКА может совершить скачок из состояния q в состояние p, в отличие от ДКА, через пустое слово, а также перейти из q по a несколько состояний (что опять же в ДКА невозможно)
  • - множество начальных состояний
  • - множество конечных состояний.
Слово Автомат читает конечную строку символов a1,a2,…., an , где ai ∈ Σ, которая называется входным словом.Набор всех слов записывается как Σ*. Принимаемое слово Слово w ∈ Σ* принимается автоматом, если qn ∈ F.

Говорят, что язык L читается (принимается) автоматом M, если он состоит из слов w на базе алфавита таких, что если эти слова вводятся в M, по окончанию обработки он приходит в одно из принимающих состояний F:

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

Применение

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

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

Другое важнейшее применение теории автоматов - математически строгое нахождение разрешимости и сложности задач.

Типовые задачи

  • Построение и минимизация автоматов - построение абстрактного автомата из заданного класса, решающего заданную задачу (принимающего заданный язык), возможно, с последующей минимизацией по числу состояний или числу переходов.
  • Синтез автоматов - построение системы из заданных «элементарных автоматов», эквивалентной заданному автомату. Такой автомат называется структурным. Применяется, например, при синтезе цифровых электрических схем на заданной элементной базе.

См. также

  • Лемма о накачке
  • Абстрактный автомат
  • Игра «Жизнь»
  • Минимальная форма автомата
  • Теорема Шеннона - Лупанова

Литература

  • Джон Хопкрофт, Раджив Мотвани, Джеффри Ульман. Введение в теорию автоматов, языков и вычислений = Introduction to Automata Theory, Languages, and Computation. - М.: Вильямс, 2002. - С. 528. - ISBN 0-201-44124-1.
  • Касьянов В. Н. Лекции по теории формальных языков, автоматов и сложности вычислений. - Новосибирск: НГУ, 1995. - C. 112.

Ссылки

  • Применение теории автоматов

теория автоматов

АВТОМАТОВ ТЕОРИЯ, раздел дискретной математики, изучающий математические модели преобразователей дискретной информации, называемых автоматами. Примерами таких преобразователей являются как реальные системы (вычислительные машины, технические автоматы, живые организмы), так и абстрактные системы (абстрактные вычислительные машины, аксиоматические теории). Автоматов теория возникла в середине 20 века в связи с изучением автоматов как математических моделей биологических систем и вычислительных машин. В дальнейшем проблематика автоматов теории существенно расширилась.

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

Автомат можно охарактеризовать как устройство, имеющее входной и выходной каналы и находящееся в каждый дискретный момент времени в одном из внутренних состояний. По входному каналу в такой момент поступают сигналы-воздействия. В те же моменты по выходному каналу устройство выдаёт сигналы-реакции. Состояния автомата, сигналы-воздействия и сигналы-реакции задаются буквами соответствующих алфавитов: алфавита состояний, а также алфавитов входных и выходных сигналов. Законы взаимодействия букв этих алфавитов задаются двумя функциями - функцией переходов и функцией выходов, отображающими пары (состояние - входная буква), в состояния и выходные буквы соответственно. Входной средой для автомата является множество слов во входном алфавите, а внутренней и выходной его средами являются множества слов в алфавите состояний и выходном алфавите. Автомат побуквенно перерабатывает слова из входной среды в слова двух других сред. Этот процесс называется поведением автомата. Свойства алфавитов и функций определяют различные типы автоматов. В случае, когда все алфавиты конечны, получают конечный автомат, в противном случае автомат называют бесконечным. Замена функций на отношения приводит к частичным и недетерминированным автоматам; использование случайных функций приводит к вероятностному автомату. При интерпретации входной среды термами или графами приходят к автоматам над термами и автоматам в лабиринтах.

Большинство задач автоматов теории являются общими для основных видов управляющих систем, к ним относятся задачи анализа и синтеза автоматов, задачи о полноте, минимизации, а также задачи, связанные с эквивалентными преобразованиями автоматов. Задача анализа состоит в том, чтобы по заданному автомату описать его поведение или по неполным данным об автомате и его функционированию установить те или иные его свойства. Задача синтеза состоит в построении автомата с заданным поведением, или функционированием. К этой задаче примыкают проблемы, связанные с оценкой сложности автоматов, обладающих заданным поведением, а также с построением оптимальных в определённом смысле автоматов. Задача о полноте состоит в том, чтобы выяснить, можно ли данное множество автоматов получить из меньшего множества с помощью некоторых операций над автоматами. Задача минимизации автоматов состоит в минимизации значений параметров автоматов (например, числа состояний), при которой получается автомат, эквивалентный в том или ином смысле исходному. Помимо задач, общих для основных видов управляющих систем, в автоматов теории рассматриваются специфические проблемы, характерные для автоматов. Так, в зависимости от условий задачи поведение автоматов удобно задавать на разных языках (регулярные выражения, канонические уравнения, язык логики предикатов и т.п.), в связи, с чем важными задачами являются выбор достаточно удобного адекватного языка и перевод с одного языка на другой. С задачами синтеза и эквивалентных преобразований связана задача минимизации числа состояний автомата. В связи с моделированием поведения автоматов одного класса автоматами другого класса возникают задачи минимизации моделирующих автоматов и оценки их сложности. Специальный раздел автоматов теории связан с так называемыми экспериментами с автоматами. Основная задача этого раздела состоит в том, чтобы получить определённые сведения о строении автомата путём наблюдения его реакции на те или иные внешние воздействия. При этом возникают задачи, связанные с классификацией экспериментов и с вопросами разрешимости задач определёнными видами экспериментов, а также с оценками длин минимальных экспериментов, достаточных для решения тех или иных задач. Понятие эксперимента с автоматами используется также в задачах контроля автоматов. Специальными разделами автоматов теории являются игры автоматов и поведение автоматов в случайной среде, в которых рассматриваются вопросы взаимодействия автоматов друг с другом и с определёнными внешними средами. Многие из перечисленных выше задач могут рассматриваться как массовые проблемы (смотри Алгоритмическая проблема). Для конечных автоматов большинство из них имеет положительное решение.

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

Лит.: Кудрявцев В. Б., Алешин С. В., Подколзин А. С. Введение в теорию автоматов. М., 1985.

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ»

Кафедра ИТ-4 «Персональные компьютеры и сети»

«УТВЕРЖДАЮ»

Заведующий кафедрой ИТ-4

Михайлов Б.М.

«___»__________________2007г.

ЛЕКЦИИ

По дисциплине 1425 «Теория автоматов»

Для студентов 2 курса факультета ИТ

Специальности 230101

«Вычислительные машины, комплексы, системы и сети»

Обсуждены на заседании кафедры

«___»________________2007г.

Протокол № _____

Москва 2007

^ Общие положения

Цели и задачи дисциплины

Целью дисциплины является изложение принципов организации программных и аппаратных средств, в рамках персональных ЭВМ с использованием теории автоматов, овладение навыками разработки программного обеспечения и аппаратных средств ЭВМ.

^ Требования к уровню освоения содержания дисциплины

Знания, приобретенные в результате освоения дисциплины:


  • Принципы и основные понятия теории автоматов;

  • Применение теории автоматов для построения трансляторов алгоритмических языков;

  • Применение теории автоматов при разработке устройств и дискретной аппаратуры в рамках персональных ЭВМ;
Умения и навыки, приобретенные в результате освоения дисциплины:

  • Применение теории автоматов для решения прикладных задач;

  • Проектирование дискретных устройств;

  • Проектирование трансляторов;

Основная литература

1. Савельев А.Я. Основы информатики: учебник для вузов.-М.:Издательство МГТУ им. Н.Баумана,2001.-328с.

2. Карпов Ю.Г.Теория автоматов:СПб.:Питер,2003.-224 с.:ил.

3. Зайцев Е.И. Теория автоматов: Учебное пособие.-М.:МГАПИ,2002.-59с.

Дополнительная литература

1. Хопкрофт Д., Мотвани Р., Введение в теорию автоматов, языков и вычислений: пер с англ.-М.:Издат. Дом Вильямс,2002.-528с.

Лекция №1.

Основные понятия и определения

Продолжительность: 2 часа (90) минут

1.1. Ключевые (основные) вопросы (моменты)

Место дисциплины «Теория автоматов» в ряду дисциплин, читаемых на кафедре

Объекты Теории автоматов

Задачи Теории автоматов

Основные понятия и определения.

^ ТЕОРИЯ АВТОМАТОВ.

1.2.1. Основные положения теории автоматов. До 20 минут

Автомат (от греческого   - самодействующий) - управляющая система , являющаяся конечным автоматом или некоторой его модификацией, полученной путем изменения его компонент или функционирования. Основное понятие - конечный автомат - возникло в середине 20 века в связи с попытками описать на математическом языке функционирование нервных систем, универсальных вычислительных машин и других реальных автоматов. Характерной особенностью такого описания является дискретность соответствующих математических моделей и конечность областей значений их параметров, что приводит к понятию конечного автомата.

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

Большинство задач теории автоматов - общие для основных видов управляющих систем. К ним относятся задачи анализа и синтеза автоматов, задачи полноты, минимизации, эквивалентных преобразований автоматов и другие. Задача анализа состоит в том, чтобы по заданному автомату описать его поведение или по неполным данным об автомате и его функционированию установить те или иные его свойства. Задача синтеза автоматов состоит в построении автомата с наперед заданным поведением или функционированием. Задача полноты состоит в выяснении, обладает ли множество M" M автоматов свойством полноты, т.е. совпадает ли с M множество всех автоматов, которые получаются путем конечного числа применений некоторых операций к автоматам из заданного подмножества автоматов M" . Задача эквивалентных преобразований в общем виде состоит в том, чтобы найти систему правил преобразований (так называемую полную систему правил) автоматов, которые удовлетворяют определенным условиям и позволяют преобразовать произвольный автомат в любой эквивалентный ему автомат (два автомата эквивалентны, если они имеют одинаковое поведение автомата. Поведение автомата - математическое понятие, описывающее взаимодействие автомата с внешней средой. Примером внешней среды конечного автомата является множество входных слов, а поведением - словарная функция, реализуемая автоматом, или событие, представимое автоматом.)

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

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

^ 1.2.2. Проблемы и задачи, решаемые теорией автоматов. До 30 минут

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

В этой теории достаточно четко выявляются ее направления, обусловленные:


  1. выбором изучаемых типов автоматов (конечные, бесконечные, детерминированные, вероятностные, автономные, комбинационные, без выхода)

  2. принятым уровнем абстракции (абстрактные и структурные автоматы)

  3. спецификой применяемых математических (алгебраическая теория автоматов)
При этом в дискретных моделях рассматриваемых объектов учитывается лишь логика происходящих процессов изменений автомата без учета количественных характеристик.

Центральными проблемами читаемой теории являются проблемы синтаксиса и анализа (т.е. разработка функциональной схемы автомата по заданному его поведению и описание поведения автомата по известной его структуре). С этими проблемами тесно связаны задачи полноты, эквивалентности, минимизации числа состояний автоматов.

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

Все рассмотренные выше устройства относятся к классу комбинационных схем, то есть дискретных устройств без памяти. Наряду с ними в цифровой технике широкое распространение получили последовательностные автоматы, или, иначе, комбинационные схемы, объединенные с элементами памяти.

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

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

В соответствии с этим принято различать две модели автоматов: структурную и абстрактную. Абстрактная модель применяется при теоретическом рассмотрении автоматов. Структурная модель служит для построения схемы автомата из логических элементов и триггеров и предназначена для выполнения функции управления.

Абстрактный автомат – это математическая модель цифрового автомата, задаваемая шестикомпонентным вектором S=(A,Z,W,d,l,a 1), где А={a a ,…,a m } – множество внутренних состояний абстрактного автомата; Z=}