Теория автоматов - это изучение абстрактных машин и автоматов, а также вычислительные задачи, которые можно решить с их помощью. Это теория из теоретической информатики. Слово «автоматы» (множественное число от «автомат») происходит от греческого слова αὐττματα, что означает «самотворение».
На рисунке справа показан конечный автомат, который принадлежит к хорошо известному типу автоматов. Этот автомат состоит из состояний (обозначенных на рисунке кружками) и переходов (обозначенных стрелками). Когда автомат видит символ ввода, он выполняет переход (или перескакивает) в другое состояние в соответствии со своей функцией перехода , которая принимает текущее состояние и последний символ в качестве входных данных.
Теория автоматов тесно связана с теорией формального языка. Автомат - это конечное представление формального языка, которое может быть бесконечным множеством. Автоматы часто классифицируются по классу формальных языков, которые они могут распознать, как правило, это иллюстрируется иерархией Хомского, которая описывает отношения между различными языками и видами формализованных логик.
Автоматы играют важную роль в теории вычислений, построении компиляторов, искусственном интеллекте, синтаксическом анализе и формальная проверка.
Ниже приводится вводное определение одного типа автоматов, которое пытается помочь одному понять основные концепции, связанные с теорией / теориями автоматов.
Автомат - это конструкция, состоящая из состояний, предназначенная для определения того, следует ли принять ввод или отклонить. Это очень похоже на простую настольную игру, где каждое место на доске представляет состояние. Каждое состояние содержит информацию о том, что делать, когда машина получает ввод (опять же, это похоже на то, что делать, когда вы попадаете в точку Go To Jail в популярной настольной игре). Когда машина получает новый ввод, она смотрит на состояние и выбирает новое место на основе информации о том, что делать, когда он получает этот ввод в этом состоянии. Когда больше нет входов, автомат останавливается, и пространство, которое он занимает, когда он завершает, определяет, принимает ли автомат этот конкретный набор входов или отклоняет.
Автомат запускается, когда ему задана некоторая последовательность входов в дискретных (индивидуальных) временных шагах или шагах. Автомат обрабатывает один ввод, выбранный из набора символов или букв, который называется алфавитом. Символы, получаемые автоматом в качестве входных данных на любом шаге, представляют собой конечную последовательность символов, называемых словами. У автомата есть конечное множество состояний. В каждый момент работы автомата автомат находится в одном из своих состояний. Когда автомат получает новый ввод, он переходит в другое состояние (или переходы) на основе функции, которая принимает текущее состояние и символ в качестве параметров. Эта функция называется функцией перехода. Автомат считывает символы входного слова один за другим и переходит из состояния в состояние в соответствии с функцией перехода, пока слово не будет прочитано полностью. Считается, что после считывания входного слова автомат остановился. Состояние, в котором автомат останавливается, называется конечным состоянием. В зависимости от конечного состояния говорят, что автомат либо принимает, либо отклоняет входное слово. Существует подмножество состояний автомата, которое определяется как набор принимающих состояний. Если конечным состоянием является состояние принятия, то автомат принимает слово. В противном случае слово отклоняется. Набор всех слов, принимаемых автоматом, называется языком, распознаваемым автоматом.
Короче говоря, автомат - это математический объект, который принимает слово в качестве входных данных и решает, принять его или отклонить. Поскольку все вычислительные проблемы сводятся к вопросу о приеме / отклонении входных данных (все экземпляры проблем могут быть представлены в виде символов конечной длины), теория автоматов играет решающую роль в теории вычислений.
Σ, δ,q0,F>, где:
Автоматы определены для изучения полезных машин в рамках математического формализма. Итак, определение автомата открыто для вариаций в соответствии с «машиной реального мира», которую мы хотим смоделировать с помощью автомата. Люди изучили множество разновидностей автоматов. Самый стандартный вариант, описанный выше, называется детерминированным конечным автоматом. Ниже приведены некоторые популярные варианты определения различных компонентов автоматов.
Различные комбинации вышеуказанных вариантов создают множество классов автоматов.
Теория автоматов - это предмет, изучающий свойства различных типов автоматов. Например, изучаются следующие вопросы о данном типе автоматов.
Теория автоматов также изучает наличие или отсутствие каких-либо эффективных алгоритмов для решения задач, подобных следующему:
Ниже приводится неполный список типов автоматов.
Автомат | Узнаваемый язык |
---|---|
Недетерминированный / детерминированный конечный автомат (FSM) | обычные языки |
Детерминированный автомат выталкивания (DPDA) | детерминированный контекстно-свободный язык |
Автомат выталкивания (КПК) | контекстно-свободный язык |
Линейный ограниченный автомат (LBA) | контекстно-зависимые языки |
машина Тьюринга | рекурсивно перечислимые языки |
Детерминированный автомат Бюхи | ω-предельные языки |
Недетерминированный автомат Бюхи | ω-регулярные языки |
автомат Рабина, автомат Стритта, автомат четности, автомат Мюллера |
Обычно теория автоматов описывает состояния абстрактных машин, но существуют аналоговые автоматы или / или гибридные дискретно-непрерывные автоматы, которые используют аналоговые данные, непрерывное время. e или оба.
Ниже представлена неполная иерархия с точки зрения полномочий различных типов виртуальных машин. Иерархия отражает вложенные категории языков, которые машины могут принимать.
Автомат |
---|
Детерминированный конечный автомат (DFA) - наименьшая мощность. (такая же мощность) (та же степень). Недетерминированный конечный автомат (NFA). (вверху слабее) (ниже более сильный). Детерминированный автомат выталкивания вниз (DPDA-I). с 1 магазином опускания вниз. . (NPDA-I). с 1 расширяемым магазином. . Линейный ограниченный автомат (LBA). . Детерминированный автомат выталкивания вниз (DPDA-II). с 2 сохраняющими нажатиями вниз. . (NPDA-II). с 2 открывающимися магазинами. . Детерминированная машина Тьюринга (DTM). . Недетерминированная машина Тьюринга (NTM). . Вероятностная машина Тьюринга (PTM). . Многоленточная машина Тьюринга (MTM). . Многомерная машина Тьюринга |
Каждая модель теории автоматов играет важную роль в нескольких прикладных областях. Конечные автоматы используются в обработке текста, компиляторах и проектировании оборудования. Контекстно-свободные грамматики (CFG) используются в языках программирования и искусственном интеллекте. Первоначально CFG использовались при изучении человеческих языков. Клеточные автоматы используются в области биологии, наиболее распространенный пример - Джон Конвей Игра жизни. Некоторые другие примеры, которые можно объяснить с помощью теории автоматов в биологии, включают рост и пигментацию моллюсков и сосновых шишек. Некоторые ученые отстаивают теорию, предполагающую, что вся вселенная вычисляется каким-то дискретным автоматом. Идея зародилась в работе Конрада Цузе и была популяризирована в Америке Эдвардом Фредкиным. Автоматы также появляются в теории конечных полей: множество неприводимых многочленов, которые можно записать как композицию многочленов второй степени, на самом деле является регулярным языком. Другая проблема, для решения которой могут быть использованы автоматы, - это введение в регулярные языки.
Симуляторы автоматов - это педагогические инструменты, используемые для обучения, изучения и исследования теории автоматов. Имитатор автомата принимает в качестве входных данных описание автомата, а затем моделирует его работу для произвольной входной строки. Описание автомата можно ввести несколькими способами. Автомат может быть определен на символическом языке , или его спецификация может быть введена в заранее разработанной форме, или его диаграмма переходов может быть нарисована, щелкнув и перетащив мышь. Хорошо известные имитаторы автоматов включают Turing's World, JFLAP, VAS, TAGS и SimStudio.
Можно определить несколько различных категорий автоматов, следуя классификации автоматов. на разные типы, описанные в предыдущем разделе. Математическая категория детерминированных автоматов, или последовательных автоматов, и машин Тьюринга с гомоморфизмами автоматов, определяющими стрелки между автоматами, является декартовой замкнутой категорией, она имеет как категориальные пределы, так и копределы. Гомоморфизм автоматов отображает пятерку автомата A i на пятерку другого автомата A j. Гомоморфизмы автоматов также можно рассматривать как преобразования автоматов или гомоморфизмы полугрупп, когда пространство состояний S автомата определяется как полугруппа Sg. Моноиды также считаются подходящей средой для автоматы в моноидальных категориях.
Можно также определить автомат с переменными в смысле Норберта Винера в его книге Использование человека людьми через эндоморфизмы . Затем можно показать, что такие гомоморфизмы переменных автоматов образуют математическую группу. В случае недетерминированных или других сложных видов автоматов последний набор эндоморфизмов может, однако, стать автоматом переменных группоидом. Следовательно, в самом общем случае категории автоматов с переменными любого вида - это или. Более того, категория обратимых автоматов тогда является 2-категорией, а также подкатегорией 2-категории группоидов или категорией группоидов.
Теория автоматов была разработана в середине 20 века в связи с конечными автоматами.